> 区块链的交易流程就是共识的过程,下面我们一起来探讨一下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)节点收到区块后,会对区块中的每笔交易进行校验,检查交依赖的输入输出是否符合当前区块链的状态,完成后将区块追加到本地的区块链,并修改世界状态。
**以上是验证阶段**
- 空白目录
- CentOS 7安装配置Shadowsocks客户端
- CentOS 7.3 安装 libsodium 1.0.18
- npm安装(Centos7)——CentOS7常用软件
- Fabric
- Hyperledger Fabric1.4.2 主要更新内容:从Kafka迁移到Raft
- Fabric1.0 交易流程
- v1.4
- Hyperledger Fabric v1.4(LTS) 系列(1) - Fabric 的第一个LTS版本
- Hyperledger Fabric v1.4(LTS) 系列(2) - 简介
- Hyperledger Fabric v1.4(LTS) 系列(3.1) -关键概念
- Hyperledger Fabric v1.4(LTS) 系列(3.2):关键概念-功能性
- Hyperledger Fabric v1.4(LTS) 系列(3.3):关键概念-模型
- Hyperledger Fabric v1.4(LTS) 系列(3.4):关键概念-区块链网络
- HyperLedger Fabric 1.4 智能合约 Helloworld运行(9)
- 常见错误
- hyperledger-fabric的Error: got unexpected status: BAD_REQUEST错误(执行Building Your First Network时)
- 操作指南
- first_network
- 命令
- peer
- peer
- 链码测试
- 交易流程
- fabric共识机制
- etcdraft算法
- 人才发展
- 密码学
- 区块链背后的密码学原理
- 椭圆曲线加密算法
- 共识机制
- pow共识机制
- pos共识机制
- dpos共识机制
- POI共识机制
- pop共识机制
- 共识机制总结
- Bitcoin
- 白皮书
- 网络
- p2p