多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
> 区块链的交易流程就是共识的过程,下面我们一起来探讨一下fabric中的共识过程。 **fabric中的交易可以分为两类:** 1. **查询交易**,用于账本查询,不需要更新数组 2. **更新交易**,用于修改账本数据 > 很显然,查询交易只需要单个Peer节点参与即可,不需要进行排序共识,而更新交易通常需要多个Peer参与(同一个Channel中),在这种情况下,排序共识就会起到作用。 fabric的交易共识包括三个阶段:提议阶段、打包阶段、验证阶段 在fabric中,整个交易的处理过程在逻辑上备份成不同的角色,每个角色承担不同的功能,fabric中的角色包括: **节点(peer)**:分为背书节点(Endorser peer)和提交节点(Committer peer)以及排序节点(Orderer) **证书服务**:由独立的fabric-ca承担证书的颁发、吊销、管理等。 fabric是应用于联盟链的基础架构平台,为联盟链提供技术支持,在处理每一笔交易时,每个环节上都需要对交易信息进行权限校验,交易流程图如下: ![](https://img.kancloud.cn/1c/1c/1c1c74f2032fb1b3b46e2e7ff0e15f19_1096x500.jpg) 交易过程详细解释: 1. 应用程序客户端通过SDK调用证书(CA)服务,进行注册和等级,并获取身份证书。 2. 应用程序客户端通过SDK想区块链网络发起一个交易提案(Proposal),交易提案把带有本次交易要调用的合约表示、合约方法和参数信息以及客户端签名等信息发送给背书(Endorser)节点。 3. 背书(Endorser)节点收到交易提案(Proposal)后,验证签名并确定提交者是否有权执行操作,同时根据背书策略模拟执行智能合约,并将结果及其各自的CA证书签名发还给应用程序客户端。 4. 应用程序客户端收到背书(Endorser)节点返回的信息后,判断提案结果是否一致,以及是否参照指定的背书策略执行,如果没有足够的背书,则中止处理,否则,应用程序客户端吧数据打包到一起组成一个交易签名,发送给Orderers。 **以上是提议阶段** 5. Orderers对接受的交易进行共识排序,然后按照区块生成策略,将一批交易打包到一起,生成新的区块,发送给提交(Committer)节点。 **以上是打包阶段** 6. 提交(Committer)节点收到区块后,会对区块中的每笔交易进行校验,检查交依赖的输入输出是否符合当前区块链的状态,完成后将区块追加到本地的区块链,并修改世界状态。 **以上是验证阶段**