区块链学习7:超级账本项⽬Fabric中的背书、背书节点、背书
策略、背书签名
☞░░
在Hyperledger Fabric区块链中,有背书节点进⾏背书,Hyperledger Fabric 使⽤背书策略来定义哪些节点需要执⾏交易。
Hyperledger Fabric在区块链交易⽅⾯采取了⼀个新颖的思路,将智能合约的执⾏与账本的更新分开使它可以提⾼交易吞吐量,⽀持更细粒度的隐私控制,实现更灵活强⼤的智能合约。⽽这些特性得以实现的⼀个关键因素就是在交易加⼊账本之前进⾏显式地交易背书。
1、背书
背书”这个词源来⾃银⾏票据业务,传统意义上的背书是指请具有⼀定公信⼒的⼈在票据背⾯签字以表达对信⽤的加强和⽀持,就是让别⼈提供信誉以及影响⼒进⾏⽀持,让被背书(endorsed)⼈或者事物提升可信度,更加具有公信⼒。需要注意的是背书不是担保,⽽是证明或声明的意思。
⽼猿认为在区块链中背书可以理解为承担背书任务的节点为区块链交易进⾏交易信息验证,对验证通过的交易声明此交易合法的过程和机制。
并不是所有区块链都采⽤了背书机制,⽐特币和以太坊等公有链⼀般都不采⽤背书机制,联盟链中Hyperledger Fabric采⽤了背书机制。2、背书节点(endorsement、endorsor)
关于python的书在区块链中承担背书任务的节点即是背书节点。背书节点必须通过有效证书的预期信息的有效签名来证明其合法性。
3、背书策略
背书策略(endorsement policy)可以理解为是对交易进⾏背书必须满⾜的条件,即要得到背书成功的结论,必须满⾜背书策略中给出的条件。
区块链节点有预先指定的背书策略集,这些背书的条件判断在链码(Chaincode)中实现,所有的交易都必须依据背书策略进⾏交易,因为只有经过背书处理的交易才是合法、被认可的交易。因此背书策略也可以说就是⽤来指导被选中的节点(背书节点)如何决策交易是否正确的条件。
由于背书策略是链码,只要能进⾏链码开发的语⾔都可以进⾏背书策略的开发,同⼀区块链中的链码可以使⽤多种语⾔进⾏开发。
⼀些背书策略样例:
节点A、B、C和F都需要对类型为T的交易进⾏背书
通道中的⼤部分节点必须对类型为U的交易进⾏背书
A、B、C、D、E、F、G中的⾄少3个节点必须对类型为V的交易进⾏背书
4、背书验证过程
Fabric交易需要⾸先通过节点的背书,然后再进⾏交易排序,最后才利⽤有序交易进⾏账本的更新。下⾯是Fabric背书策略验证过程:
1. 发起交易的时候,发起端应⽤⼀般调⽤SDK指定交易提议发给⼀个或多个背书节点进⾏背书验证,接收提议的背书节点在SDK的交易
提议请求中指定,如果未指定,则会将交易提议请求发送给加⼊该通道的所有节点,发送后客户端应⽤等待背书节点的返回
2. 背书节点收到提议后,⾸先进⾏⼀些检查和签名的验证,包括⽤客户端(SDK)的公钥验证它的签名、核实客户端是否可以在该
channel进⾏操作、交易是否已被提交、交易提议组织是否正确。验证通过后模拟执⾏chaincode(不会将结果写⼊到账本⾥),⽣成⼀个提议结果,并对结果进⾏背书,即在结果中添加数字签名并利⽤私钥对结果进⾏签名
3. 客户端(SDK)收到⾜够多(背书策略要求)的背书节点的结果后,表⽰这个交易已经正确背书,然后将交易提议、模拟结果和背书
信息打包发给orderer排序节点;如果客户端没有收集到⾜够多的背书节点反馈的背书信息,这个交易就会被舍弃
4. Orderer节点对来⾃客户端(SDK)的信息进⾏排序,并创建区块,然后在通道channel上进⾏⼴播;
5. channel上的peer节点接收到交易区块后,验证背书策略是否满⾜,然后更新账本,⾄此,背书策略的验证过程完成。
参考:
1、《》
2、《》
3、《》
关于⽼猿的付费专栏
⽼猿的付费专栏《》专门介绍基于Python的PyQt图形界⾯开发基础教程,付费专栏《》详细介绍moviepy⾳视频剪辑合成处理的类相关⽅法及使⽤相关⽅法进⾏相关剪辑合成场景的处理,两个专栏加起来只需要19.9元,都适合有⼀定Python基础但⽆相关专利知识的⼩⽩读者学习。这2个收费专栏都有对应免费专栏,只是收费专栏的⽂章介绍更具体、内容更深⼊、案例更多。
付费专栏⽂章⽬录:《》、《》。
关于Moviepy⾳视频开发的内容,请⼤家参考《》的导览式介绍。
对于缺乏Python基础的同仁,可以通过⽼猿的免费专栏《》从零开始学习Python。如果有兴趣也愿意⽀持⽼猿的读者,欢迎购买付费专栏
☞░░
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论