超级账本(Hyperledger Fabric)共识

简介: 超级账本(Hyperledger Fabric)共识

由于fabric是分布式的系统,因此需要共识机制来保障各个节点以相同的顺序状态保存账本,达成一致性。fabric 广义的共识机制为三个阶段:交易背书,交易排序,交易验证。而有些认为“交易排序”是属于共识,在当前fabric1.4版本中,存在三种共识机制,分别是solo,kafka,etcdraft。交易排序图:
排序节点收到该交易以后会按照通道进行拆分,拆分以后再进行排序,也就是说排序并不是全局排序,而是按照每一个通道单独排序,最后分别组装成区块发往主节点,通道之间是相互隔离的,它们并不会知道彼此的存在,但是每一个组织的节点都可以订阅多个通道。
Solo共识模式:指网络环境中只有一个排序节点,从Peer节点发送来的消息由一个排序节点进行排序和产生区块,由于排序服务只有一个排序节点为所有Peer节点服务,没有高可用性和可扩展性,不适合用于生产环境,通常用于开发和测试环境。
Kafka 共识模式:对所有交易信息进行排序(如果系统存在多个channel,则对每个channel分别排序)。Kafka是一个分布式的流式信息处理平台,目标是为实时数据提供统一的、高吞吐、低延迟的性能。
Etcdraft 共识模式:它是一种基于 etcd 的崩溃容错(CFT)排序服务。遵循 “领导者和追随者” 模型,其中领导者在通道中的orderer节点之间动态选出,该领导者将消息复制到跟随者节点。由于系统可以承受节点(包括领导节点)的丢失,只要剩下大多数排序节点(即所谓的“仲裁”),Raft就被称为“崩溃容错”(CFT)。换句话说,如果一个通道中有三个节点,它可以承受一个节点的丢失(剩下两个节点)。

相关文章
|
开发框架 .NET 区块链
Hyperledger fabric部署链码(五)初始化与链码升级
fabric部署chaincode-go(智能合约)系列之五
206 0
|
测试技术 Go 区块链
Hyperledger fabric 测试环境部署
Hyperledger fabric 测试环境部署及相关问题解答
271 3
Hyperledger fabric 测试环境部署
|
JavaScript 测试技术 Go
Hyperledger fabric部署链码(一)打包链码
fabric部署chaincode-go(智能合约)系列之一
248 0
|
存储 JSON 安全
Hyperledger fabric智能合约编写(一)
本篇文章主要对链码编写的主要思路和部分API进行梳理。
174 1
|
区块链
Hyperledger fabric部署链码(二)安装链码到fabric
fabric部署chaincode-go(智能合约)系列之二
148 1
|
Go API 区块链
Hyperledger Fabric相关概念介绍
在学习Hyperledger Fabric的过程中,初步对相关概念的了解。
264 0
Hyperledger Fabric相关概念介绍
|
JSON 区块链 数据格式
Hyperledger fabric部署链码(四)提交链码定义到channel
fabric部署chaincode-go(智能合约)系列之四
|
测试技术 API 区块链
Hyperledger fabric部署链码(三)批准链码定义
fabric部署chaincode-go(智能合约)系列之三
135 0
|
消息中间件 Java Kafka
Hyperledger Fabric 通道配置文件和容器环境变量详解
Fabric 节点的主配置路径为 FABRIC_CFG_PATH 环境变量所指向路径(默认为 /etc/hyperledger/fabric)。在不显式指定配置路径时,会尝试从主配置路径下查找相关的配置文件。
359 0
|
安全 区块链 数据库
联盟链 Hyperledger Fabric 应用场景
本文主要通过一个例子分享以Hyperledger Fabric为代表的联盟链应用场景。
735 0
联盟链 Hyperledger Fabric 应用场景