继续HyperLeger Fabric中文文档的学习。
分布式账本
区块链账本通常被定义为去中心化,这是因为在整个网络中,每个参与者都保存着一个区块链账本的副本,所有参与者通过协作共同维护着账本。
个人理解:因为账本是共同维护的了,所以,不会存在银行间或行业间的对账服务了。将验证进行前置,在记账的时候进行验证。
区块链的不同点
不同于目前的系统——参与者使用私有的程序对私有的账本进行更新,而区块链系统使用共享的程序对共享的账本进行更新。
个人理解:账本本身和记账过程透明,从而增强了信任。
Hyperledger Fabric是什么?
Hyperledger Fabric与其他区块链系统最大的不同体现在私有和许可。与开放无需许可的网络系统允许未知身份的参与者加入网络不同(需要通过工作量证明协议来保证交易有效并维护网络的安全),Hyperledger Fabric通过Membership Service Provider(MSP)来登记所有的成员。
本质上说,公链是无需许可链;而HyperLeger Fabric是许可链;节点的进入需要通过协议或标准来获取许可加入到链中的。
共享账本
Hyperledger Fabric包含一个账本子系统,这个子系统包含两个组件:世界状态(world state)和交易记录。在Hyperledger Fabric网络中的每一个参与者都拥有一个账本的副本。
世界状态组件描述了账本在特定时间点的状态,它是账本的数据库。交易记录组件记录了产生世界状态当前值的所有交易,它是世界状态的更新历史。那么,账本则是世界状态数据库和交易历史记录的集合。
这个描述有点绕。[疑问] 账本特定时间点的状态,都包含哪些状态?交易记录有事世界状态的所有交易,可以理解为对世界状态的修改的所有历史。
账本的世界状态存储数据库是可更换的。默认配置下,这是一个key-value存储数据库。交易记录模块不需要被接入。只需要记录在区块链网络中账本数据库被使用时之前和之后的值就可以了。
[疑问] 为什么世界状态存储数据库可以更换?在节点运行起来之后也是可以更换吗?还是说世界状态不是区块链中的区块,链中最重要的部分?
智能合约
大多数情况下,chaincode只会访问账本的数据库组件和世界状态(world state)(比如查询),但不会查询交易记录。
[疑问] 账本的数据库组件又是什么?前面不是说账本有世界状态和交易记录两部分嘛。