Fabric 1.0交易流程

最新内容会更新在主站深入浅出区块链社区
原文链接:Fabric1.0 交易流程

这篇文章详细介绍fabric的交易流程,以图片加文字的形式呈现。

Fabric 1.0交易流程

fabric中的所有交易都是通过chaincode执行
在这里插入图片描述
1.应用程序客户端通过SDK调用证书服务(CA)服务,进行注册和登记,并获取身份证书。

2.应用程序客户端通过SDK创建好交易提案(Proposal),交易提案把带有本次交易要调用的合约标识、合约方法和参数信息以及客户端签名等信息发送给背书(Endorser)节点。

3.背书(Endorser)节点收到交易提案(Proposal)后,开始进行验证,验证的内容如下:

  • 交易预案是完好的
  • 该预案以前没有提交过(防止重放攻击)
  • 携带的签名是合法的
  • 交易发起者是否满足区块链写策略, 即ACL 权限检查

满足以上要求后,背书节点把’交易预案’作为输入参数,调用chaincode中的函数,chaincode根据当前的账本状态计算出一个’交易结果’,该结果包括返回值,读写集。此时,区块链账本并不会被更新。’交易结果’在被签名后与一个是/否的背书结果一同返回,称之为’预案回复’。

4.应用程序客户端收到背书(Endorser)节点返回的信息后,判断提案结果是否一致,以及是否收到足够多的背书节点返回的结果(参照指定的背书策略执行),如果没有足够的背书,则中止处理,这个交易就会被舍弃。否则,将交易提案、模拟交易结果和背书信息打包组成一个交易并签名发给Orderer节点(一个排序服务)。

5.Orderer节点对来自客户端(SDK)的交易信息进行共识排序,分通道对’交易消息’按时间排序,并按通道将交易打包成块,发送给提交(Committer)节点。

6.提交(Committer)节点收到区块后,会对区块中的每笔交易进行校验,检查交易依赖的输入输出是否符合当前区块链的状态,验证背书策略是否满足,验证完成后将区块追加到本地的区块链,更新账本,并修改世界状态。具体过程如下:

  • 运行验证逻辑(VSCC检查背书策略)
  • 在区块中指明哪些交易是有效和无效的。
  • 在内存或文件系统上把区块加入区块链
  • 将区块内的有效交易写入状态数据库。
  • 发出Event消息,使得客户端通过SDK监听知道哪些交易是有效的或无效的。
posted @   Tiny熊  阅读(724)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示