fabric v1.1 交易流程

file

1. 客户端节点构造好交易提案,提交到背书节点。提交提案的顺序没有要求

2. 背书节点接收到提案,模拟交易并签名

首先会做一些验证,比如:交易提案的格式是否正确,交易是否被重复提交,提案签名是否正确,是否有权限提交提案。
验证通过,会提交到 chaincode隔离模拟执行,将结果返回到客户端。

3.返回执行结果

客户端会对消息进行验证,如果验证通过,才会进行后续操作。
如果是查询交易,就没有对账本产生状态的影响,客户端拿到返回值,作为下一步业务逻辑的判断依据。
如果是写的交易,客户端就要收集到足够的背书结果,然后将交易提案,背书结果,再加上自己的签名合起来,组成一个交易,将其发送给 orderer节点。

4.提交交易(模拟执行结果+签名)

如果客户端提交了背书结果不一致的交易,排序节点也不会发现,因为排序节点并不读取交易的内容,只是负责接收网络中的交易,然后对其进行排序。

5.交易排序并结块

按照指定的排序规则进行排序,并生成区块

6.广播区块

将区块广播给其他组织的主节点

7.保存区块更新交易

主节点接收到区块以后,会在记账的过程中去验证该笔交易是否有效,如果无效的话,会被标记处无效交易。该无效交易并不会被丢弃,只是不会更新到世界状态,所以无效交易只会浪费磁盘空间。

8.同步交易

在组织内部区块同步,通过gossip协议

9.保存区块更新交易

在记账节点保存区块,更新交易

fabric 网络拓扑图

file

本作品采用《CC 协议》,转载必须注明作者和本文链接
不卑不亢,不慌不忙,这才是生活的模样。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!