在Hyperledger结构中存储JSON文档

在Hyperledger结构中存储JSON文档,json,hyperledger-fabric,blockchain,Json,Hyperledger Fabric,Blockchain,我需要一个私有区块链系统,在其中存储复杂的数据结构,如JSON文档 其思想是,每个事务都是一个JSON文档(具有可能不同的模式) Hyperleadger面料似乎非常适合,因为它可以使用CouchDB运行。虽然,根据我的理解(如果我错了,请纠正我),在Fabric中,CouchDB应该用作包含区块链最新状态的状态数据库。此外,存储在CouchDB中的数据实际上不是区块链的一部分,这意味着它不支持拜占庭式容错。因此,我只能在可信的共识中使用该系统。如果是这样的话,那么在分布式数据库系统上使用区块链

我需要一个私有区块链系统,在其中存储复杂的数据结构,如JSON文档

其思想是,每个事务都是一个JSON文档(具有可能不同的模式)

Hyperleadger面料似乎非常适合,因为它可以使用CouchDB运行。虽然,根据我的理解(如果我错了,请纠正我),在Fabric中,CouchDB应该用作包含区块链最新状态的状态数据库。此外,存储在CouchDB中的数据实际上不是区块链的一部分,这意味着它不支持拜占庭式容错。因此,我只能在可信的共识中使用该系统。如果是这样的话,那么在分布式数据库系统上使用区块链就变得无关紧要了

我错过什么了吗


我是否可以通过事务将异类JSON文档存储在分类账中,以提高拜占庭式容错能力?如果是这种情况,此时是否可以查询区块链?

区块链分类账由两个不同但相关的部分组成——世界状态和区块链

首先,有一个世界状态——一个保存一组分类账状态当前值的数据库。世界状态使程序很容易获得这些状态的当前值,而不必通过遍历整个事务日志来计算它们。默认情况下,分类账状态表示为键值对,不过我们稍后将看到Hyperledger结构在这方面提供了灵活性。世界状态可以频繁更改,因为可以创建、更新和删除状态

其次,还有一个区块链——一个记录所有决定世界状态的变化的交易日志。交易在附加到区块链的区块内收集–使您能够了解导致当前世界状态的变化历史。区块链数据结构与世界状态非常不同,因为一旦写入,就无法修改。它是一个不可变的块序列,每个块包含一组有序事务

我们正在使用分类账获取区块链的当前状态/数据。如果没有账本,我们将不得不遍历每个区块以获取交易日志并计算当前状态

我可以通过交易在分类账中存储我的异构JSON文档吗

是的,您可以在分类账中存储JSON文档并创建复合键