Hyperledger Fabric Peer的内部工作原理和实现方法
在每个组织内部跑的几个模块
(1)CA:为组织内的成员(用户和节点)签发证书(一对公私钥以及能标识身份相应的证书),节点与用户使用各自的私钥与证书,作为身份标识参与到网络当中;
(2)节点:fabric中的节点分为Peer,Orderer;
① Orderer节点(Ordering-Service):排序服务节点,接收包含背书签名的交易,对未打包的交易进行排序生成区块;
② Peer节点:
1.根据在交易中的不同角色,可分成背书节点(Endorser)和记账节点(Committer);
1.背书节点(Endorsers peer):背书节点是模拟执行交易的节点;
2.记账节点(Committing peers):记账节点只负责记账,来维护账本和Worldstate状态;
2.根据功能的不同peer可分为:
1.领导节点(Leader Peer):当有新的交易产生的时候,领导节点就会与Orderer排序服务节点通信,从排序服务节点处获取最新的区块,并随机的传播给其他的记账节点(Committer Peer),记账节点获取到之后也会继续的往外散播;
领导节点(Leader Peer)的选举方式有2种:静态指定Static,动态指定Dynatic;
2.锚节点(Anchor Peer):每个组织可以指定Anchor Peer,其他组织的节点就可以将Gossip消息发送到这个Anchor Peer上,进而Anchor Peer将获得整个网络信息,区块广播到本组织内;
Peer在Fabric中承担了维护账本,背书签名,验证交易,执行链码等重要功能。本讲深入Fabric Peer这个模块内部,从主要功能入手,剖析Peer的工作原理和实现方法:
1、peer节点:是账本和智能合约的载体,通过智能合约,账本会以不可篡改的方式记录交易的全过程
2、fabric的交易流程(Hyperledger Fabric Transaction Flow)
背书节点(Endorsers peer):背书节点是模拟执行交易的,当收到交易请求的时候它会去模拟执行这个交易请求,执行结果不管是同意还是拒绝,都会把这个执行结果加密,签名返给Client端;
记账节点(Committing peers):记账节点只负责记账,来维护账本和Worldstate状态;
(1)Application proposes transaction:Client端提出一个交易请求;
(2)Endorsers Execute Proposals:背书节点收到交易请求后,会模拟执行这个交易;
(3)Application receives responses:背书节点会把模拟执行这个交易的结果加密,签名,返回给Client端;
(4)Responses submitted for ordering:Client端收到返回结果以后会把这个,交易模拟执行结果,提交给Orderer节点;
(5)Orderer delivers to committing peers:Orderer节点收到提交上来的,交易模拟执行结果,会把它打包到block里,然会把它发送给记账节点;
(6)Committing peers validate transactions:记账节点收到请求之后,就会做一系列validate工作,验证工作结束之后,就会把这个交易transaction,记到账本里,更新区块链DB,更新Worldstate数据;
(7)Committing peers notify application:记账节点committing peers,通知Client端交易成功还是失败;
3、Endorsers Policy背书策略背书策略语法(Endorsement Policy Syntax):背书策略是在chaincode实例化的时候指定
Endorsement Policy Syntax
============================
$ peer chaincode instantiate
# channel名
-C mychannel
# chaincode名
-n mycc
# 版本
-v 1.0
# 初始化数据的内容
-c '{"": ["init","a", "100", "b","200"]}'
# 指定条件,这里表达式的意思-这个交易只要是Org1的member签名,签字认可了,我们就认为这个交易合法
-p "AND(Org1MSP.member)"
============================
-p 后面跟的表达式举例,AND-与,OR-或:
AND('Org1.member', 'Org2.member', 'Org3.member')
OR('Org1.member', 'Org2.member')
OR('Org1.member', AND('Org2.member', 'Org3.member'))
4、Fabric账本和状态数据数据库(Fabric Ledger and State DB)
Fabric账本:有序的,不可修改的历史交易记录;
Fabric账本由两部分组成(Fabric Ledger):
(1)区块部分(Blockchain)
通道的配置信息(Channel configurations);
历史交易记录打包成的Block,串成的串;
每个块的组成:
① Block header区块头由3部分组成:
区块号,block number;
CH2,当前区块的hash码,(通过对data里的所有的交易transaction数据进行加密处理,计算出一个hash码保存在CH2里);
PH1,上一个块的hash码;
② Block data:交易数据;
Header-区块头:存着chaincode的名字,version等信息;
Signature-签名:client端的签名,谁发的请求,谁签的名;
Proposal:client端发送的一些输入参数,背书节点用来模拟执行交易使用;
Response: 智能合约执行的结果(执行前的数据,执行后的数据都会存在Response里);
Endorsements:每个背书节点返回的结果,是个list(如果你在背书策略里指定3个公司,这个里面就存着3个Endorsements);
③ Block Metadata:这个区块写入的时间,写入的人以及签名;
(2)Worldstate:维护账本的当前状态,它是key-value的形式,方便Application快速查询;
Hyperledger Fabric Peer的内部工作原理和实现方法相关推荐
- 前端必读:浏览器内部工作原理
前端必读:浏览器内部工作原理 作者: Tali Garsiel 发布时间: 2012-02-09 14:32 阅读: 2133 次 原文链接 全屏阅读 [收藏] http://kb.c ...
- WEB HTTP:浏览器HTTP协议漫谈、请求对象Httprequest、响应对象HttpResponse、浏览器内部工作原理(待完善)
0 系列目录 WEB请求处理 WEB请求处理一:浏览器请求发起处理 WEB请求处理二:Nginx请求反向代理 WEB请求处理三:Servlet容器请求处理 WEB请求处理四:Tomcat配置实践 WE ...
- 增量式编码器的工作原理与使用方法
增量式编码器的工作原理与使用方法 1.工作原理 旋转编码器是一种采用光电等方法将轴的机械转角转换为数字信号输出的精密传感器,分为增量式旋转编码器和绝对式旋转编码器. 光电增量式编码器的 ...
- redis介绍以及使用 ppt_光纤收发器的工作原理以及使用方法介绍
关于光纤收发器的工作原理以及使用方法这块,在这里飞畅科技的小编做了专门的整理,首先,我们来了解下什么是光纤收发器,光纤收发器是一种将短距离的双绞线电信号和长距离的光信号进行互换的以太网传输媒体转换单元 ...
- 光纤收发器的工作原理以及使用方法
关于光纤收发器的工作原理以及使用方法这块,在这里飞畅科技的小编做了专门的整理,首先,我们来了解下什么是光纤收发器,光纤收发器是一种将短距离的双绞线电信号和长距离的光信号进行互换的以太网传输媒体转换单元 ...
- 负压电路_通风设备之负压风机的工作原理与安装方法是怎样的?
点击上方蓝字关注我吧! 作为通风设备之一的负压风机在厂房车间通风换气降温的过程中也发挥了比较重要的作用,常见的车间通风降温方案有工业大风扇+环保空调的"扇机组合",也有环保空调+负 ...
- 科沃斯扫地机器人电路原理图_科沃斯扫地机器人的工作原理及维修方法
对很多人来说,扫地机器人一点都不陌生.随着科技的发展,经济的增长,很多家庭都会使用扫地机器人代替手工打扫.今天小编和大家讲讲一个国产品牌--科沃斯.科沃斯的扫地机器人的工作原理和维修方法您知道吗?下面 ...
- 光纤收发器的原理及应用_光纤收发器的工作原理以及使用方法详解!
原标题:光纤收发器的工作原理以及使用方法详解! 关于光纤收发器的工作原理以及使用方法这块,在这里飞畅科技的小编做了专门的整理,首先,我们来了解下什么是光纤收发器,光纤收发器是一种将短距离的双绞线电信号 ...
- 光纤收发器的原理及应用_光纤收发器的工作原理及使用方法介绍
关于光纤收发器的工作原理以及使用方法这块,在这里飞畅科技的小编做了专门的整理,首先,我们来了解下什么是光纤收发器,光纤收发器是一种将短距离的双绞线电信号和长距离的光信号进行互换的以太网传输媒体转换单元 ...
- FBAR滤波器的工作原理及制备方法
近年来,随着无线通信技术朝着高频率和高速度方向迅猛发展,以及电子元器件朝着微型化和低功耗的方向发展,基于薄膜体声波谐振器(Film Bulk Acoustic Resonator,FBAR)的滤波器的 ...
最新文章
- html 点击空白关闭浮层,js中点击空白区域时文本框与隐藏层的显示与影藏问题...
- 第一百零四期:搞清这些陷阱,NULL和三值逻辑再也不作妖
- Matlab常见问题处理——错误使用 xlswrite (line 219),调用错误,调度异常: 参数错误。
- html显示当前时间_HTML基础教程:超链接的使用
- mysql 表2符合表1,MySQL:表tbl_2_1_15已满
- 软件设计师--面向对象技术
- Mppt光伏最大功率点跟踪控制matlab仿真
- 打开ps显示计算机内存不足怎么办,如何解决PS内存不足的问题
- css使用box-shadow实现泛光效果
- 远程监控系统中关于TP-Link路由器的设置方法
- java学习0701(前端内容知识)
- Html5 学习笔记 【PC固定布局】 实战5 咨询页面 侧栏
- VR,AR,MR的区别与联系
- selenium安装及在python中简单使用
- [地质学笔记]粒度概率累积曲线
- Android--打造流行的无数据空布局页面
- 五子棋双人对战c语言课程设计,五子棋(双人对战) C语言课程设计.doc
- ThinkPHP Lang多语言本地文件包含漏洞(QVD-2022-46174)漏洞复现
- CT值及CT常用窗宽、窗位
- VMware vSphere 超融合架构