我是 bigchaindb 的新手,我有一个问题。如果单个公司想要将数据作为资产存储在 bigchaindb 上并与其他公司共享,那么 bigchaindb 相对于 mongodb 有什么优势?
去中心化——由于相关公司将拥有所有 bigchaindb 节点,因此系统不会去中心化。
不变性——他们可以使用代码来实现。
转移资产——这也可以通过使用 mongo db 和代码来完成。
我是 bigchaindb 的新手,我有一个问题。如果单个公司想要将数据作为资产存储在 bigchaindb 上并与其他公司共享,那么 bigchaindb 相对于 mongodb 有什么优势?
去中心化——由于相关公司将拥有所有 bigchaindb 节点,因此系统不会去中心化。
不变性——他们可以使用代码来实现。
转移资产——这也可以通过使用 mongo db 和代码来完成。
BigchainDB 的优势是去中心化。如果一家公司拥有所有节点,那么您还不如使用一台服务器,没有太大区别(除非您希望组织内的多个位置独立)。如果您正在与多个半可信参与者打交道,这些参与者正试图写入共享数据库,同时确保其透明度、可审计性和完整性,您应该只使用 BigchainDB - 或一般意义上的区块链。
因此,在您的用例中(存储所有数据以与他人共享的单个组织):不,使用 BigchainDB 与自定义 MongoDB 实现相比没有明显的优势。
编辑:我刚刚在Medium上看到 Troy McConaghy(BigchainDB 的创建者)回答了这个问题。由于他的回答略有不同,我将其包括在这里:
去中心化不是一个全有或全无的财产,它是一个连续统一体。例如,即使一家公司运行所有节点,它们也可以让每个节点由不同的员工、不同的业务部门、不同的国家/地区操作。
使用代码向 MongoDB 添加不变性有两种通用方法。一种是在应用层尝试去做。问题在于 MongoDB 数据库是一个逻辑数据库,因此任何设法在一个节点上获得类似管理员权限的人都可以更改或删除整个数据库的记录:存在单点故障,使其“去中心化”可疑。(在 BigchainDB 中,每个节点都有一个独立的 MongoDB 数据库,因此破坏一个不会影响其他节点。)另一种方法是分叉 MongoDB 以使其无法更改或删除现有记录。继续吧,这将需要数百个编码小时才能完成,最终你所拥有的只是类似于 Datomic 或 HBase 的东西。为什么不只使用其中之一呢?当然,那些仍然有中央管理问题,
是的,几乎任何数据库都可用于跟踪和管理资产转移。您必须添加只有资产的真正所有者才能进行转移的事情(通过提供有效的加密签名),但这在应用程序级代码(或者可能在数据库的内部脚本语言)中是完全可行的。这一切都需要时间,而 BigchainDB 开箱即用。