假设我想开发一个Dapp,我需要存储关于用户的不同信息。此信息不得公开,因为并非所有用户都可以查看存储的所有信息。使用集中式数据库是一种糟糕的解决方案吗?Dapp所有者是否应该使用DB运行服务器,以确保没有人能够访问所有存储的数据?
有什么完全分散的方法来解决这个问题?
发布于 2018-07-23 10:40:28
三个月前我也有同样的问题。我用IPFS商店开发了PoC。使用IPFS的优点是使用弹性搜索来查询它提供的功能。
发布于 2018-03-01 03:05:55
我会说是的。
理想的DAPP可能如下所示:
( a)用于存储的指规数(分散文件系统)
b)以太智能合同(分散的智能合同)
c) BigChainDB作为数据库(分散数据库)
现实情况是,在这个体系结构中有许多未知因素(例如,-oracles用于从BigChainDB到Ethereum的通信)。截至2018年3月,一个典型的DAPP并没有完全分散。
因此,数据库组件是一个更传统的数据库(NoSql或Sql),智能契约大多只存储部分数据库模式的主键。Ethereum公共网络上的存储非常非常昂贵(订单为1000's美元/Mb)
成本因素促使人们开始研究一种“多链”架构,以获得更便宜的存储成本,并使私人Ethereum更具吸引力。
发布于 2018-03-01 05:35:53
正如我在您的相关问题"您在哪里保存Dapp的应用程序数据?“中所写的,如果每个用户运行自己的数据库,其中包含自己的数据和管理对这些数据访问的服务外观的实例,您就可以实现分散化。链上您可以管理权限、关系和数据指纹。服务外观连接到区块链,以检查用户授权。DAPP连接到区块链,并且还能够聚合来自不同私有用户数据库的数据。此外,DAPP还可以通过IPFS提供服务。
无论如何,让DAPP所有者管理集中DB中的所有数据不是一个好主意。这将与DAPP的概念相矛盾。
您是否应该使用SQL或NoSQL数据库的问题取决于使用情况,实际上与分散化方面无关。
https://ethereum.stackexchange.com/questions/41298
复制相似问题