Hyperledger Fabric源码分析之Gossip】的更多相关文章

Gossip算法正如它的名字,小道消息只需要有人传播一次,那么过一段时间,所有人都会知道,就像新冠病毒一样,所以Gossip算法也有其它的别名"传染病扩散算法"."谣言传播算法"等等.在Fabric中Gossip算法用于区块的传播,即共识后将得到的区块广播给组织内和其它组织.本节会介绍Gossip算法的设计原理.数据结构和部分核心源码的实现,例如Push算法.Pull算法等. 1. 设计原理 Gossip协议可以抽象成广播,即发送节点向其它节点传播同样的消息.在节点…
死磕hyperledger fabric源码|Order节点概述 文章及代码:https://github.com/blockchainGuide/ 分支:v1.1.0 前言及源码目录 Orderer排序节点这块内容主要包括了节点启动流程.Broadcast广播交易服务.Orderer共识排序服务以及Deliver区块分发服务.其相关源码目录文件如下: /orderer |-common ​ |-blockcutter:交易切割打包模块 ​ |-bootstrap:引导启动模块,生成创世块 ​…
Hyperledger Fabric开源于2015年12月,截至2018年2月初有185个公司/组织成员加入.最初由IBM和DAH的工程师贡献,现在约有70名的代码贡献者,4000+代码提交,代码行数12万行左右.应用开发者使用SDK与Fabric平台交互,目前提供Node, Java和Python SDK,在Github上都可以搜索到.代码贡献方式介绍:https://hyperledger-fabric.readthedocs.io/en/release/CONTRIBUTING.html…
2:Fabric源码及镜像文件处理 2.1下载Fabric源码 下载Fabric源码是因为要用到源码中提到的列子和工具,工具编译需要用到go语言环境,因此需要把源码目录放到$GOPATH下.通过1.3中go的安装配置,$GOPATH设置为/opt/gopath. 我们可以使用Git命令下载源码,也可以使用go get命令,偷懒一点,我们直接用go get命令获取最新的Fabric源码: go get github.com/hyperledger/fabric [注:使用离线环境或者内网环境的朋友…
Fabric 1.4 源码分析 区块同步 本文主要从源码层面介绍fabric peer同步区块过程,peer同步区块主要有2个过程: 1)peer组织的leader与orderer同步区块 2)peer组织间peer同步区块. 1. peer leader和orderer同步区块 首先,orderer对外主要是broadcast和deliver两个服务orderer服务介绍.并且我们知道peer和orderer同步区块肯定是deliver服务实现的,但是到底是peer从orderer拉还是ord…
Fabric 1.4 源码分析peer节点启动 peer模块采用cobra库来实现cli命令. Cobra提供简单的接口来创建强大的现代化CLI接口,比如git与go工具.Cobra同时也是一个程序, 用于创建CLI程序 peer支持的命令如下所示: Usage: peer [command] Available Commands: chaincode Operate a chaincode: install|instantiate|invoke|package|query|signpackag…
Fabric 1.4 源码分析 committer记账节点 本文档主要介绍committer记账节点如何初始化的以及committer记账节点的功能及其实现. 1. 简介 记账节点负责验证交易和提交账本,包括公有数据(即区块数据,包括公共数据和私密数据hash值)与私密数据.在提交账本前需要验证交易数据的有效性,包括交易消息的格式.签名有效性以及调用VSCC验证消息的合法性及指定背书策略的有效性,接着通过MVCC检查读写集冲突并标记交易的有效性,最后提交区块数据到区块文件系统,建立索引信息并保存…
Fabric 1.4 源码分析 Endorser背书节点 本文档主要介绍fabric背书节点的主要功能及其实现. 1. 简介 Endorser节点是peer节点所扮演的一种角色,在peer启动时会创建Endorser背书服务器,并注册到本地gRPC服务器(7051端口)上对外提供服务,对请求的签名提案消息执行启动链码容器.模拟执行链码.背书签名等流程.所有客户端提交到账本的调用交易都需要背书节点背书,当客户端收集到足够的背书信息之后,再将签名提案消息.模拟执行的结果以及背书信息打包成交易信息发给…
Fabric 1.4源码分析 kafka共识机制 本文档主要介绍kafka共识机制流程.在查看文档之前可以先阅览raft共识流程以及orderer服务启动流程. 1. kafka 简介 Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统,一种高吞吐量的分布式发布订阅消息系统.kafka详细介绍可以参考这一篇博客.kafka介绍 2. kafka共识 kafka共识当中,每个orderer节点即是生产者Producer也…
引言 Hyperledger Fabric是当前比较流行的一种联盟链系统,它隶属于Linux基金会在2015年创建的超级账本项目且是这个项目最重要的一个子项目.目前,与Hyperledger的另外几个子项目Hyperledger Iroha,Hyperledger Indy和Hyperledger Sawtooth一样,Hyperledger Fabric正处于生命周期中的活跃(active)阶段,它的架构设计正在不断地完善并持续为开发者和用户提供更强大,更便捷的区块链服务. 与主流的区块链系统…