Fabric 中的 Raft 实现基于 etcd/raft 库,其中 etcd/raft 作为底层的 raft 状态机,fabric raft 作为上层的应用端,并负责消息通讯和数据存储。本文将对 fabric raft 的实现源码进行简单和阅读分析,理解 raft 共识在 fabric 中是如何运作的。调动顺序是chain.go <-> etcdraft/node.go <-&
目录一、概述二、共识流程(一)提议阶段(二)打包阶段(三)验证阶段三、小结一、概述Fabric中提供了Orderer排序节点,作为区块链网络的一种共识机制,提供对交易进行排序的服务。目前,Fabric已发布的版本中提供了一种基于崩溃容错(Crash Fault-Tolerant, CFT)等排序机制。这种机制是通过Kafka实现的,后续版本中会提供基于Raft共识的排序机制。本文不具体关注Orde
fabric的 hyperledger共识算法代码全部都在consensus文件夹里,consensus文件夹里主要分为controller,executor,helper,noops,pbft,util文件模块。 其中consensus.Go 主要包含了算法插件内部对外部暴露的接口和hyperledger外部对算法内部暴露的接口。controller:共识算法模块是
1.共识机制介绍交易背书:客户端节点根据背书策略,选择背书节点,发送交易提案,背书节点调用智能合约执行模拟交易,执行完成后,经过签名背书,返回给客户端节点,整个过程是模拟的交易排序:排序节点接收已经签名背书的交易,确定交易顺序,将排好序的交易打包成区块,分发给其他组织主节点,排序节点不会去关心交易是否正确,只负责排序和打包区块交易验证:区块存储和交易验证不冲突,区块存储前进行交易验证,fa...
原创
2021-07-14 09:54:55
646阅读
fabric 共识机制由于fabric是分布式的系统,因此需要共识机制来保障各个节点以相同的顺序状态保存账本,达成一致性。 在当前fabric1.4版本中,存在三种共识机制,分别是solo,kafka,etcdraft。交易的共识包括3个阶段的处理:提议阶段、打包阶段和验证阶段。1.Solo 共识模式Solo共识模式指网络环境中只有一个排序节点,从Peer节点发送来的消息由一个排序节点进行排序和产
1.共识机制介绍交易背书:客户端节点根据背书策略,选择背书节点,发送交易提案
原创
2022-02-04 14:20:24
297阅读
本文适用于linux环境。先放文档地址:官方文档:http://hyperledger-fabric.readthedocs.io/en/latest/中文文档:https://hyperledgercn.github.io/hyperledgerDocs/一、准备条件需要安装的软件:git、cURL、docker和docker-compose、go语言、nodejs和npm、python,网上有
Fabric共识排序排序服务在超级账本 Fabric 网络中起到十分核心的作用。所有交易在发送给 Committer 进行验证接受之前,需要先经过排序服务进行全局排序。在目前架构中,排序服务的功能被抽取出来,作为单独的 fabric-orderer 模块来实现,代码主要在 fabric/orderer 目录下。orderer service的实现有一下几种,但是无论是哪一种共识,都不会产生分叉,因
Fabric 的网络节点本质上是互相复制的状态机,节点之间需要保持相同的账本状态。为了实现这个目的,各个节点需要通过共识( consensus )过程,对账本状态的变化达成一致性的认同。Fabric 的共识过程包括 3 个阶段:背书、排序和校验。背书在背书( endorsement )阶段中,背书节点对客户端发来的交易预案进行合法性检验,然后模拟执行链码得到交易结果,最后根据设定的背书逻辑判断是否
共识算法(consensus)#peer节点启动的时候根据配置文件core.yaml文件配置项peer.validator.consensus.plugin选择采用哪种共识算法。目前Fabric实现了两种共识算法NOOPS和PBFT,默认是NOOPS:NOOPS:是一个供开发和测试使用的插件,会处理所有收到的消息。PBFT:PBFT算法实现。0x01 插件接口Consenter// Executi
信息的特征(11个):客观性、普遍性、无限性、动态性、相对性、依附性、变换性、传递性、层次性、系统性、转化型。信息质量的特性:精确、完整、可靠、及时、经济、可验证、安全性 精确性:对事物状态描述的精确程度。完整性:对事物状态描述的全面程度,完整信息应包括所有重要事实。可靠性:指信息的来源、采集方法等都是可以信任的,符合预期。及时性:指信息获得的时刻与事件发生的时刻之短(时间
本文得益于上述两篇文章,同时再结合自己的实际搭建、配置心得,详细的描述将pbft共识算法添加至fabric1.4的步骤,为后来人提供学习参考。一、前言众所周知,pbft共识算法的实现仅存在于hyperledger fabric v0.6的版本中。在v0.6之后的版本,如fabric v2.x 采用的是kafka、solo、raft共识算法。从官方文档来看,bft类共识算法的开发仍在进行中,截至到本
什么是共识 什么是一致性? 分布式系统中,一致性是指对于系统中的多个服务节点,给定一系列操作,在协议(往往通过某种共识算法) 保障下,试图使得它们对处理结果达成某种程度的一致。如果分布式系统能实现“一致”,对外就可以呈现是一个功能正常的,性能和稳定性都要好很多的“虚处理节点”一致性并不代表结果正确与否,而是系统对外呈现的状态一致与否,例如,所有节点都达成失败状态也是一种一致 ,分布式系统实现了一致
HyperLegerFabric开发(四)——HyperLegerFabric共识机制一、Fabric共识过程1、Fabric共识过程Fabric区块链的网络节点本质上是互相复制的状态机,节点之间需要保持相同的账本状态。为了实现分布式节点的一致性,各个节点需要通过共识过程,对账本状态的变化达成一致性的认同。Fabric区块链的共识过程包括3个阶段:背书、排序和校验。2、背书在背书(endorsem
原创
2018-11-12 19:57:11
10000+阅读
点赞
Hyperledger fabric是Linux Foundation主办的超级账本项目下的开源项目之一,旨在提供一个模块化的区块链解决方案的支撑平台。概述一、区块链的共有特性1.分布式存储(Distributed Ledger): 所有节点共同维护完全一致的账本数据,区块以保存前一个区块Hash值的方式顺序相连,组成了链式数据结构,保证了数据的不可篡改。2.共识机制(Consensus Prot
Raft!Ordering service implementationsWhile every ordering service currently available handles transactions and configuration updates the same way, there are nevertheless several different implementations for achieving consensus on the strict ordering
原创
2021-11-19 15:59:22
303阅读
注意:本文是以centOS7.4 为操作系统进行的测试,记得使用之前需要手动联网,否则无法继续1. 升级内核下面是升级步骤: 1.1导入key rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 1.2安装yum源,使用elrepo源 rpm -Uvh http://www.elrepo.org/elrepo-release-7.0
一.什么是fabric 其实,超级账本也仅仅只是账本而已。叫账本或许有一些不合 理。因为只要是我们认为有必要进行存储的数据。我们均可以使用超 级账本进行存储。仅仅是一个将数据存到区块链的分布式记录簿而 已,当然这是很浅显的理解,但本质就是这样。二.为什么会存在超级账本 一个东西总不会平白无故的产生,没有相应的需求,超级账本也 不会发展至今。现在绝大多数区块链项目均为公有链,数据虽然被加
Raft!Ordering service implementationsWhile every ordering service currently available handles transactions and configuration updates the same way, there are nevertheless several different im
原创
2022-01-25 10:09:20
166阅读
一、前言
本文是一篇针对的是区块链的共识机制的序言,也可以说是“杂烩”。之后,还会详细地针对共识机制描述的博文。提及共识机制,我们不得不说到中本聪的在《Bitcoin: A peer-to-peer electronic cash system》文章中涉及的工作量证明(POW)。这种共识机制在去中心化的思想下解决了节点间相互信任的问题,使得区块链能在众多的节点上达到一种较为平衡的状态。区块