Hyperledger Fabric 官方文档
账本 在 Hyperledger Fabric 中,账本由两个不同但相关的部分组成——世界状态和区块链。所谓世界状态,就是保存了一组当前值的数据库(世界状态的实现就是通过 levelDB 或者 CouchDB 这两个可选,可插拔的数据库);而区块链则是记录导致当前世界状态的所有更改的事务日志。
世界状态就是存储的当前值,其目的是,因为当前值往往存在频繁的操作,如果通过遍历的方式获取,那么就太麻烦了。
同时世界状态还有一个版本号,用于反应状态的更新。
区块链在超级账本中以文件的方式实现。
和其他区块链基本相同,不过在超级账本的区块链中,创世区块包含的是该区块链的一些配置信息。
上图中,Proposal(提议)的作用是作为智能合约调用是的输入参数,这些参数与当前的世界状态结合,形成新的世界状态(用于更新数据)。
而 Response 用于输出,如果交易成功了,则用于更新世界状态。
Endorsements 这是来自每个所需组织的签名交易响应列表,足以满足背书策略。如果不满足背书策略,则不会更新。
命名空间 事实上,在超级账本中并不是只有一个区块链,更确切的说,这是一个区块网,超级账本的另一个概念 channel 是一个区块网中的一个子网络(子账本)。而子账本中装载的智能合约(链码)拥有一个世界状态,同一链码中的数据位于相同的命名空间。