0x00 节点类型
在Fabric中,尽管所有对等节点都是相同的,但它们可以根据网络的配置方式承担多个角色:(①②是主要的节点类型)
1、提交节点:
通道中的每个对等节点都是一个提交节点。它们接收生成的交易区块,随后这些区块在被提交到节点的账本副本之前先被验证。
2、背书节点:
具有智能合约的每个对等节点都可以是背书节点。要真正成为一个背书节点,客户端应用程序必须使用对等节点上的智能合约来生成经过数字签名的交易响应。智能合约的背书策略标识了哪些组织中的节点应该在交易被提交节点的账本副本接受之前对交易进行背书。
3、领导(leader)节点:
当一个组织在一个通道中有多个节点时,领导节点负责将交易从排序节点分发到组织中的其它节点。一个节点可以选择参与静态或动态的领导选举。从领导的角度考虑,两组节点是有帮助的——一组是静态的领导者选举,另一组是动态的领导者选举。对于静态集,可以将0个或多个对等节点设置为leader。对于动态集合,仅一个节点会被推选为leader,并且在动态集合中,如果leader peer发生故障,那么其余的peer将重新选举leader。这意味着一个组织可以有一个或多个领导节点连接到排序服务。这有助于在处理大量交易的大型网络中提高弹性和可伸缩性。
4、锚节点:
如果一个节点需要与其他组织中的节点进行通信,它可以使用在该组织的通道配置中定义的锚节点。一个组织可以有0个或多个锚节点;锚节点可以用于许多不同的跨组织通信场景。
注意:一个节点可以同时是以上的四种节点。只有锚节点是可选的——出于实际目的,总会有一个领导节点,并且至少有一个背书节点和一个提交节点。
0x01 交易流程
一笔交易的完整流程:
- 发送交易提案到背书节点,进行背书。(背书节点在链码实例化的时候指定)
- 背书节点模拟交易,并生成背书签名。
- 收集交易的背书,构造交易请求发送给排序服务节点。
- 排序服务节点对交易进行排序,并生成区块。然后广播给组织的主节点。
- 记账节点验证区块内容并写入区块。
- 在组织内部同步区块。