问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

揭秘Fabric交易流程:一文带你深入了解

创作时间:
作者:
@小白创作中心

揭秘Fabric交易流程:一文带你深入了解

引用
CSDN
1.
https://blog.csdn.net/qq_34776150/article/details/138452618

随着区块链技术的日益普及,Hyperledger Fabric作为一种联盟链解决方案,受到了广泛关注。那么,Fabric的交易流程究竟是怎样的呢?本文将为您一一揭晓。

Fabric交易的参与方

  • 客户端:交易流程的发起方,发起交易提案。
  • 背书节点:负责对客户端发起的提案进行验证,确认提案无误后对提案进行签名背书。
  • 排序节点:对背书通过后的交易提案按时间顺序进行排序,排序后将交易提案打包发送给各组织节点。
  • 组织节点:对打包后的区块进行验证,校验无误后打包上链。

Fabric交易流程概览

Fabric的交易流程主要包括以下几个步骤:提案(Proposal)、背书(Endorsement)、提交交易(Submit Transaction)、验证和提交(Validation & Committing)。

2.1. 客户端发起提案

客户端创建交易请求,通过SDK发起向背书节点(endorse peer)发出交易提案,提案并行发送,有多少个背书节点就发送多少次提案。

2.2. 背书节点对提案背书

背书节点对客户端发送的提案进行验证。验证规则包括:

  • 交易提案的格式完整
  • 验证该交易提案之前没有被提交过(重放攻击保护)
  • 验证签名是有效的(使用 MSP)
  • 验证发起者

验证通过后,背书节点会模拟执行提案中的交易,生成交易响应值、读集和写集,然后将这些结果进行签名,将签名和响应值一起作为提案响应返回给客户端SDK,SDK解析响应。

读集和写集都是键值对数组形式,读集中包括本次交易要读取的资产的key和其对应的版本,写集中包括本次交易要插入、更新、删除的资产的key和其对应的value。

2.3. 将提案发送给排序服务

客户端SDK检查背书响应签名是否正确,校验通过后,如果提案只进行查询操作则提案不会发送给排序服务。如果提案中包括了更新操作,则客户端SDK会校验背书响应是否满足了背书策略(策略包括大部分背书节点都通过、全部背书节点都通过等)。

如果满足了背书策略则SDK会将背书后的交易提案发送给排序节点,排序节点会将交易提案按时间顺序排列,打包成交易(交易会包含读写集,背书节点的签名和通道 ID)发送给各组织的peer节点。

2.4. 交易上链

组织peer节点会对交易进行验证,校验交易是否满足了背书策略。交易中背书策略满足,交易中的读集中的变量在交易过程中没有发生变化,则认为本次交易是有效的,否则认为本次交易无效。

2.5. 账本更新

每个 Peer 节点都将区块追加到通道的链上,对于每个有效的交易,写集都提交到当前状态数据库。区块链系统会发出一个事件,通知客户端应用程序本次交易(调用)已被不可更改地附加到链上,同时还会通知交易验证结果是有效还是无效。

交易泳道图

这一流程确保了交易的有序性、安全性和可信度,是Fabric作为联盟链解决方案的核心机制。掌握这些知识,将有助于您更好地理解和应用Fabric技术。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号