Fabric 交易过程

Peer节点类型

    --Endorser背书节点
            用于背书签名
            只有一部分节点是背书节点
    --commit节点
            用于保存区块
            所有节点都是commit节点
    --Leader节点
            获取orderer服务节点生成的区块,广播给本组织中的其他节点
    --Anchor锚节点
            跨组织的数据交换

交易过程:

1、应用首先将交易提案发送给背书节点

2、如果是一个合法的交易提案,背书节点会模拟执行交易

  • 不会对账本中的数据进行更改,也就是说不生成区块

3、模拟执行会产生一个提案响应返回给应用程序

4、应用程序接收到提案响应后,收集到足够的背书

  • 将交易提案及提案响应
  • 打包生成真正的交易请求
  • 将该交易请求发送给orderer服务节点

5、orderer服务节点根据接收到的请求根据时间进行排序,生成区块

6、orderer服务节点将生成的区块通过Gossip协议广播给leader节点

7、Leader节点执行VSCC

  • 验证交易是否合法,提交的请求格式是否正确,版本号是否一致
  • 节点是否在指定的通道中
  • <font color=red>验证区块只在leader节点中验证</font>

8、保存区块至链中

9、通过Gossip协议广播给组织内的其他节点

10、通过anchor节点通知其他组织

交易过程

一些补充:

fabric账本:leverdb、couchdb

fabric中的数据库

  • stateDB:状态数据库 –保存最新的状态数据

  • Block Index:区块索引数据库 –区块编号,交易ID

  • History Index:历史数据库

orderer节点通过Gossip广播时,使用gRPC框架中的protobuf将区块序列化

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦