☞ ░ 前往老猿Python博文目录 ░

在Hyperledger Fabric区块链中,有背书节点进行背书,Hyperledger Fabric 使用背书策略来定义哪些节点需要执行交易。

Hyperledger Fabric在区块链交易方面采取了一个新颖的思路,将智能 合约的执行与账本的更新分开使它可以提高交易吞吐量,支持更细粒度 的隐私控制,实现更灵活强大的智能合约。而这些特性得以实现的一个 关键因素就是在交易加入账本之前进行显式地交易背书。

1、背书

背书”这个词源来自银行票据业务,传统意义上的背书是指请具有一定公信力的人在票据背面签字以表达对信用的加强和支持,就是让别人提供信誉以及影响力进行支持,让被背书(endorsed)人或者事物提升可信度,更加具有公信力。需要注意的是背书不是担保,而是证明或声明的意思。

老猿认为在区块链中背书可以理解为承担背书任务的节点为区块链交易进行交易信息验证,对验证通过的交易声明此交易合法的过程和机制。

并不是所有区块链都采用了背书机制,比特币和以太坊等公有链一般都不采用背书机制,联盟链中Hyperledger Fabric采用了背书机制。

2、背书节点(endorsement、endorsor)

在区块链中承担背书任务的节点即是背书节点。背书节点必须通过有效证书的预期信息的有效签名来证明其合法性。

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、《Fabric背书策略相关概念与背书验证过程》
2、《Fabric交易背书原理及流程》
3、《区块链原理之交易背书基本流程(二) 》

关于老猿的付费专栏

老猿的付费专栏《使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,付费专栏《moviepy音视频开发专栏》详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,两个专栏加起来只需要19.9元,都适合有一定Python基础但无相关专利知识的小白读者学习。这2个收费专栏都有对应免费专栏,只是收费专栏的文章介绍更具体、内容更深入、案例更多。

付费专栏文章目录:《moviepy音视频开发专栏文章目录》、《使用PyQt开发图形界面Python应用专栏目录》。

关于Moviepy音视频开发的内容,请大家参考《Python音视频剪辑库MoviePy1.0.3中文教程导览及可执行工具下载》的导览式介绍。

对于缺乏Python基础的同仁,可以通过老猿的免费专栏《专栏:Python基础教程目录》从零开始学习Python。

如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏

☞ ░ 前往老猿Python博文目录 ░

区块链学习8:超级账本项目Fabric中的背书、背书节点、背书策略、背书签名相关推荐

  1. 基于区块链技术的超级账本(Hyperledger) - 从理论到实战

    什么是区块链?简单来说区块链就是一个分布式的记账本,或者分布式的数据库. 区块链的数据结构是一个链表,交易数据被存储到链表的区块中,区块链的第一个区块叫创世区块,除了创世块以外,每个区块还包含前一个区 ...

  2. 基于共识算法和区块链模拟实现超级账本

    基于共识算法和区块链模拟实现超级账本 实验语言:GO 实验环境:GoLand 2022.1 : go 1.13.4.widows-amd64.msi :curl-7.83.1 实验中使用的开源包: h ...

  3. 区块链入门 第九部分 超级账本

    超级账本 超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,加入成员包括:荷兰银行(ABN AMRO).埃森哲(Accenture)等十几个 ...

  4. 区块链必知 -- 超级账本Hyperledger

    比特币.以太坊的成功,推动了区块链行业的飞速发展,从区块链的分类来看,它们都属于公链项目,区块链除了有公链之外.还有私有链和联盟链.公链的完全去中心化是一个美好的未来,但是又和现实存在着很大的冲突,难 ...

  5. 区块链解读6-区块链框架分析+超级账本(Hyperledger Fabric)基础

    解读区块链,区块链框架分析+超级账本(Hyperledger Fabric)基础 写了几篇区块链基础知识点的文章,自己也在尝试搭建环境,本人不是区块链从业者.区块链技术只是出于个人兴趣,现在开始文章分 ...

  6. 区块链与分布式超级帐本技术(Hyperledger Fabric或R3 Corda)

    与分布式超级账本技术(如Hyperledger Fabric或R3 Corda)相比,以太坊区块链保持了相似性和差异性.在对区块链和分布式超级账本平台进行有根据的评估及其为企业带来的价值时,根据平台的 ...

  7. 区块链技术系列(3)- Fabric基础架构原理

    前言 对于区块链方面多技术,我还是建议大家多看英文文档,多利用Google来搜索技术文章. 怎么搭建自己专属V-P-N来访问Google,请看我之前发的文章: 新人如何快速搭建自己的个人网站以及自己专 ...

  8. 区块链学习7:超级账本项目Hyperledger与Fabric以及二者的关系

    ☞ ░ 前往老猿Python博文目录 ░ 一.超级账本(hyperledger) 超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,成员包括 ...

  9. 区块链 Hyperledger - 超级账本项目在centos7环境下的安装与部署

    Hyperledger - 超级账本项目在centos7环境下的安装与部署 Hyperledger 项目是开源界面向开放.标准区块链技术的首个重要探索,在 Linux 基金会的支持下,吸引了众多科技和 ...

最新文章

  1. 最近面试一个6年 Java程序员,一个问题都答不上!
  2. JavaWeb总结(六)
  3. (填坑:SQL打印两次)mybatisplus+p6spy 日志打印
  4. mybatis generator eclipse插件的安装
  5. C 语言笔记: 链表节点实现技巧--struct的妙用
  6. Java中如何使用非阻塞异步编程——CompletableFuture
  7. 集成学习——LightGBM原理理解
  8. CFS调度器(1)-基本原理
  9. 面试记录:题都没答就走了
  10. linux运维常见的故障,Linux运维中遇到的常见问题
  11. 汽车行业准则:自信地采用 AIAG-VDA FMEA 方法
  12. 产品经理必懂的28个心理学效应
  13. macos安装盘第三方工具制作_制作 macOS Mojave U盘USB启动安装盘方法教程 (全新安装 Mac 系统)...
  14. 微信自动跳转浏览器打开APP(APK)下载链接
  15. 微信公众号自动回复消息跳转小程序
  16. xman_2019_format
  17. 五个成人必看的故事!
  18. 联想z5可以刷鸿蒙系统吗,联想Z5线刷刷机教程_联想Z5线刷升级更新官方系统包方法...
  19. 【bzoj4372】烁烁的游戏
  20. 如何使用百度云加速提升网站访问速度

热门文章

  1. 新零售全能商城多商户拼团砍价秒杀周期购分销论坛投票收银台点餐外卖小程序公众号
  2. python排序输出人名_005_015 Python 人名按字母排序,首字母分组 | 学步园
  3. OpenCv图像处理之resize(缩放)、transpose、rotate(旋转)、flip(翻转)介绍
  4. C++坑人游戏(加更)
  5. 芝诺数解|「十」渝味之城,愉味无穷——重庆十一旅游数据分析报告
  6. 傻白探索Chiplet,一些相关术语和问题记录(二)
  7. 删除影响Modern Standby的几个服务
  8. 【转】JPEG压缩原理
  9. msgpack-c 官方文档整理翻译之pack
  10. 转:Google论文之一----Bigtable学习翻译