Hyperledger Fabric教程(12)-- 交易过程
2021/6/17 12:26:23
本文主要是介绍Hyperledger Fabric教程(12)-- 交易过程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、申请交易
角色
1. Endorser
背书节点 ,都是peer节点,E0,E1,E2。
一定要部署链码。
2. Commiter
提交节点,记账节点,没有背书功能,都是peer节点,P3,P4
可以没有部署和执行任何链码。
3. Ledger
账本,保存所有交易信息。
每个节点都有一个自己的账本。
4. Application
客户端
5. Orderer
排序节点
可以是一个分布式的
6. Smart Contract(Chain code)
智能合约,链码
7. Endorsement Policy
背书策略
二、背书节点执行交易
1. 背书节点在收到交易提案后会进行一些验证
- § 交易提案的格式是否正确
- § ·交易是否提交过(重复***保护)
- § ·交易签名有效(通过MSP);
- § ·交易提案的提交者在当前通道上是否已授权有写权限。
2. 验证通过后
背书节点会根据当前账本数据模拟执行链码中的业务逻辑并生成读写集(RwSet),其中包含响应值、读写集等。
在模拟执行时账本数据不会更新。
而后背书 节点对这些读写集进行签名成为提案响应 (Proposal Response),然后返回给应用程 序
三、客户端收到响应
四、客户端发送交易给排序节点
构造交易请求并发送给排序服务节点
应用程序接收到所有的背书节点签名后,根据背书签名调用SDK生成交易,发送给排序服务节点。
生成交易的过程比较简单,确认所有的背书节点的执行结果完全一致,再将交易提案、提 案响应和背书签名打包生成交易
五、Orderer排序并转发交易
1. 排序服务节点以对交易进行排序并生成区块
排序服务不读取交易的内容,如果在生成交易信封内容的时候伪造了交易模拟执行的结果, 排序服务节点也不会发现。
但会在最终的普通peer节点收到区块,交易验证阶段,校验出来并标记为无效交易。
2. 排序服务节点以广播发给各通道的锚点peer
六、记账节点验证交易
记账节点验证区块内容并写入区块
1.交易数据的验证
- § 是否为合法的交易:交易格式是否正确,是否有合法的签名,交易内容是否被篡改;
- § ·记账节点是否加入了这个通道。
- § 基本的验证通过以后会提交给VSCC进行背书策略的验证。
2. 基于状态数据的验证和MVCC检查
3. 无效交易的处理
记录在区块中,但是不执行
七、通知客户端
这篇关于Hyperledger Fabric教程(12)-- 交易过程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享