本文内容精选自华章鲜读专栏《Hyperledger-Fabric-源代码分析与深入解读》一书第二章“架构分析”。《Hyperledger-Fabric-源代码
本文内容精选自华章鲜读专栏《Hyperledger-Fabric-源代码分析与深入解读》一书第二章“架构分析”。
《Hyperledger-Fabric-源代码分析与深入解读》纸书预计出版时间:2018年9月
华章鲜读上线:2018年7月(按章更新,纸书出版前更完本书全部内容)
背书策略,是背书一个交易的条件。区块链peer节点有一组预先确定的背书策略,它被安装特定链码的部署交易引用。背书策略能参数化,这些参数能被部署交易指定。
为了保证区块链和安全特性,背书策略组应该是一组验证过的策略,具有有限功能,为了保证有限的执行时间(终止),决定、性能和安全保证。
背书策略的动态添加(即,在链码部署时间由部署交易添加)是对背书评估时间限制(终止)、决定、性能和安全保证非常敏感的。因此,动态添加背书策略是不允许的,但将来能支持。
(1)针对背书策略的交易评估
交易只有经过根据背书策略的背书才会宣布有效。对于链码的调用交易首先需要的到一个满足链码策略的背书,或不提交。这通过在提交客户端和背书peer节点之间的互动发生。
正式的背书策略是以背书为基础,以及潜在的进一步评估为真假状态。对于部署交易,获得背书的依据是系统系统范围策略(例如,来自系统链码)。
背书策略断言引用一定的变量。潜在可能引用的是:
1.与链码有关的钥匙或身份(在链码元数据中能发现),例如,一组背书者;2.链码进一步的元数据;3.endorsement and endorsement.tran-proposal的元素;4.其它更多。上面的列表根据表现和复杂性排序,意思是说,它将会是相对简单的支持策略,只引用node节点的钥匙和身份。
背书策略断言的评估必须被确定。背书应当被每个peer节点本地评估,这样这个peer节点就不需要和其它peer节点在这件事情上交互,但所有正确的peer节点都以相同的方式评估背书策略。
(2)背书策略例子
断言可以包含逻辑表达式和评估真假。通常情况会对背书节点为链码发出的交易请求使用数字签名。
假定链码指定背书者集E={Alice,Bob,Charlie,Dave,Eve,Frank,George}.一些例子策略如下:
● 一个有效签名来自全体E的成员的同样的交易提案。● 一个有效签名来自E的任一单个成员。● 从背书peer节点来的同一交易提案的有效签名条件是:(Alice OR Bob)AND(any two of:Charlie,Dave,Eve,Frank,George).● 同一提案的有效签名为7名背书者的任意5名。(更常用的,链码n>3f背书者,n名背书者有任意2f+1有效签名,或任意大于(n+f)/2背书者小组有效签名● 假定背书者有一个“股份”或“权重”的任务,像{Alice=49,Bob=15,Charlie=15,Dave=10,Eve=7,Frank=3,George=1},其中全部股份是100:策略需要一组占大多数股份的有效签名(即,一组合并股份完全超过50),像{Alice,X},X只要不是George的任何人,或{除去Alice以外的所有人},等等。● 假定前面例子中的股权条件是静态的(固定在链码的元数据中)或动态的(例如,取决于链码的状态和在执行中修改)。● 交易提案1的有效签名来自(Alice OR Bob)和交易提案2有效签名来自(Charlie,Dave,Eve,Frank,George中的任何两个),其中交易提案1和交易提案2的不同只在它们的背书peer节点和状态更新。如何使用这些策略取决于应用、失败或恶意背书者的恢复能力和各种其它特性。
华章鲜读专栏用户特权:
一、作者写作开始,以“章”为单位更新电子书,真正边写边读;二、专属社群,随时向作者、编辑提问,有问必答;三、免费获赠一本作者签名版纸书;四、纸书出版后作者仍将不断扩充、更新电子书内容;马上订购本书鲜读专栏
(巴比特资讯经“华章鲜读”独家授权转载,本文未经华章鲜读授权严禁转载,违者必究)
关键词: 策略HyperledgerFabric