当前位置: 代码迷 >> 综合 >> Hyperledger Fabric 中的世界状态和区块链
  详细解决方案

Hyperledger Fabric 中的世界状态和区块链

热度:99   发布时间:2023-10-19 12:58:48.0

目录

  • 参考
  • 账本
  • 世界状态
  • 区块链
    • 区块
    • 交易
  • 命名空间

参考

Hyperledger Fabric 官方文档

账本

在 Hyperledger Fabric 中,账本由两个不同但相关的部分组成——世界状态和区块链。所谓世界状态,就是保存了一组当前值的数据库(世界状态的实现就是通过 levelDB 或者 CouchDB 这两个可选,可插拔的数据库);而区块链则是记录导致当前世界状态的所有更改的事务日志。
Hyperledger Fabric 中的世界状态和区块链

世界状态

世界状态就是存储的当前值,其目的是,因为当前值往往存在频繁的操作,如果通过遍历的方式获取,那么就太麻烦了。
同时世界状态还有一个版本号,用于反应状态的更新。

【注】我的理解是,世界状态就是一个全局的临时变量,如果你了解一点操作系统或者计算机体系结构的知识的话,你会发现它的作用和 CPU 中的寄存器是很类似的,无非是加上了一个版本管理,而这又不过是 git 的功能。

区块链

区块链在超级账本中以文件的方式实现。
Hyperledger Fabric 中的世界状态和区块链
和其他区块链基本相同,不过在超级账本的区块链中,创世区块包含的是该区块链的一些配置信息。

区块

Hyperledger Fabric 中的世界状态和区块链

交易

Hyperledger Fabric 中的世界状态和区块链
上图中,Proposal(提议)的作用是作为智能合约调用是的输入参数,这些参数与当前的世界状态结合,形成新的世界状态(用于更新数据)。

而 Response 用于输出,如果交易成功了,则用于更新世界状态。

Endorsements 这是来自每个所需组织的签名交易响应列表,足以满足背书策略。如果不满足背书策略,则不会更新。

命名空间

事实上,在超级账本中并不是只有一个区块链,更确切的说,这是一个区块网,超级账本的另一个概念 channel 是一个区块网中的一个子网络(子账本)。而子账本中装载的智能合约(链码)拥有一个世界状态,同一链码中的数据位于相同的命名空间。
Hyperledger Fabric 中的世界状态和区块链

  相关解决方案