我们使用了15台本地服务器,通过1 Gbit/s交换机连接。每台服务器配备两个2.10GHz的Intel R Xeon R CPU E5-2620 v2处理器,总共24个硬件线程和64 GB RAM。...在Fabric1.2中,由于向Kafka发送大消息的开销,交易吞吐量随着负载大小的增加而降低。...p-iii,与我们对未改性织物1.2的测量结果相比。 我们设置了一个使用三个zookeeper服务器和三个kafka服务器(默认主题复制因子为三)的集群的单个排序节点,并将其连接到Peer。...最后,客户机安装在自己的服务器上;该客户机从五个背书服务器请求背书,并将背书事务发送到排序服务。这总共使用15台服务器连接到本地数据中心的同一个1 Gbit/s交换机。...ID•替换现有的加密计算库,提供更有效率的库 •通过分配一个单独的每个通道的排序和快速Peer服务器 •使用分布式框架,如apache spark[23] 引用 [1] V.
本文将介绍Kfaka的基本工作原理,以及在Hyperledger Fabric中使用Kafka和zookeeper实现共识的原理,并通过一个实例剖析Hyperledger Farbic中Kafka共识的达成过程...在Hyperledger Fabric中的Kafka实际运行逻辑如下: 对于每一条链,都有一个对应的分区 每个链对应一个单一的分区主题 排序节点负责将来自特定链的交易(通过广播RPC接收)中继到对应的分区...定时交易是另一个交易,由上面描述的定时器生成 每个排序节点为每个链维护一个本地日志,生成的区块保存在本地账本中 交易区块通过分发RPC返回客户端 当发生崩溃时,可以利用不同的排序节点分发区块,因为所有的排序节点都维护有本地日志...三、Hyperledger Fabric Kafka实例解析 考虑下图,假设排序节点OSN0和OSN2时连接到广播客户端,OSN1连接到分发客户端。 ?...因此OSN1将4#区块返回客户端,处理结束 Kakfa的高性能对于Hyperledger Fabric有很大的帮助,多个排序节点通过Kafka实现同步,而Kafka本身并不是排序节点,它只是将排序节点通过流连接起来
Hyperledger fabric是Linux Foundation主办的超级账本项目下的开源项目之一,旨在提供一个模块化的区块链解决方案的支撑平台。...2.共识机制(Consensus Protocol):fabric v1.0以后使用的是交易背书、交易排序和交易验证共同构成的共识机制,不过目前的kafka排序节点集群仅能保证崩溃故障容错(CFT),不能实现拜占庭容错...Hyperledger fabric是联盟链的优秀实现,更适合于企业区块链的场景。它具有有完备的权限控制,成员通过身份验证才能加入网络,且兼顾数据共享和隐私保护,更具安全性。...3.区块文件管理器创建的文件名以“blockifle_”为前缀,6位数字位后缀,比如blockfile_000000,默认的区块文件大小为64MB,如果当前文件大小超过该值,则区块写入下一个文件中。...5.交易验证并提交 每个节点会对区块中的所有交易进行验证,包括验证背书策略以及版本冲突验证(防止双花),验证不通过的交易会被标记会无效(Invalid) 账本更新:节点将读写集更新到状态数据库 ,将区块提交到区块链上
Hyperledger Fabric之前版本的核心共识算法通过Kafka集群实现,简单来说,就是通过Kafka对所有交易信息进行排序(如果系统存在多个通道,则对每个通道分别排序)。...其实,Hyperledger Fabric在1.4.1版本以前,它的核心共识算法通过Kafka集群实现,但是在1.4.1版本之后,Fabric推荐使用Raft算法实现节点的共识。...其实从提供服务的视角来看,基于Raft和Kafka的排序服务是类似的,他们都是基于CFT(crash fault tolerant)模型的排序服务,并且都使用了主从节点的设置。...鉴于此,当有多个组织使用基于Kafka排序服务的时候,其实没有实现去中心化,因为所有的节点连接的都是由一个组织单独控制的Kafka集群。...而且Kafka和Zookeeper的支持相关的issue要通过apache来处理,而不是Hyperledger Fabric。Raft的实现是包含在Fabric社区的,开发支持更加便利。
客户端节点 客户端或者应用程序代表有最终用户操作的实体。 它必须连接到某一个Peer节点或者排序服务节点上与区块链网络进行通信。...排序服务提供的是原子广播(Atomic Broadcast),保证同一个链上的节点接收到相同的消息,并且有相同的逻辑顺序。...可以实现不同级别的容错处理,目前正式发布的1.0版本只支持Apache Kafka集群,提供交易排序的功能,只实现CFT(Crash Fault Tolerance,崩溃故障容错),不支持BFT(Byzantime...现在是通过Kafka/ Zookeeper实现的CFT,未来将提供基于 etcd/Raft 的Raft共识订购服务以及完全分散的BFT订购服务 ##CA节点 CA节点是Hyperledger Fabric1.0...参考资料 《深度探索区块链:Hyperledger Fabric技术与应用》 Pluggable Consensus
是一个可视化区块链的操作工具,可以用于创建对用户友好的 Web 应用程序;是首个Hyperledger的区块链浏览器,用户可以查看/调用/部署/查询交易、网络、智能合约、存储等信息。...(只限于开发) Kafka(一种消息平台) Raft(相比 Kafka 更中心化) 网络协议 那Fabric网络中各个节点的状态分发又是怎么进行的呢?...优势总结 Fabric通过将企业应用的各个复杂环节分配到各个逻辑角色节点(背书、排序等),不需要所有节点都承担如排序这样资源消耗较大的操作,消除了网络瓶颈;分配了角色后某些交易只在特定的节点部署和执行,...OSN),排序节点接收到交易后,会打包成 blocks 并按照配置中的规则进行排序,在此过程中,只执行排序操作,而不进行任何执行或验证,排序完成后发送至所有节点。...排序服务用来对全网交易达成一致,只负责对交易顺序达成一致,避免了整个网络瓶颈,更容易横向拓展以提升网络效率,目前支持Kafka和Raft两种,Fabric区块链网络的统一/完整性依赖于排序节点的一致性。
正如Fabric是有权限控制的,所有参与网络的节点都带有身份,通过一个模块化的成员服务提供者(MSP)(4.1节)。...这使得共识尽可能模块化,并实现了实现排序服务的共识协议生态系统。 3.4 验证阶段 通过直接连接到排序服务或通过八卦将块交付给Peer节点。...实际的原子广播功能由Apache Kafka(http:// kafka.apache.org)的实例提供,该实例基于ZooKeeper提供可扩展的发布 - 订阅消息传递和节点崩溃的强一致性。...Kafka可以在与OSN分开的物理节点上运行。OSN充当Peer和Kafka之间的代理。 OSN直接将新接收的交易注入原子广播(例如,向Kafka broker)。...八卦的另一个任务是将状态转移到新连接的节点和长时间断开连接的节点。他们需要接收链中的所有块。该特征依赖于每个节点存储的最大块序列号与成员资格数据一起传播的事实。
在 Hyperledger Fabric 中,Node 是区块链的通信实体。Node 仅仅是一个逻辑上的功能,多个不同类型的 Node 可以运行在同一个物理服务器中。...Ordering Service 会接收交易信息,并将其排序后打包成区块,然后,写入区块链中,最后将结果返回给 committing peers。 共识层基于 Kafka、SBTF 等共识算法实现。...Hyperledger Fabric 利用 Kafka 对交易信息进行排序处理,提供高吞吐、低延时的处理能力,并且在集群内部支持节点故障容错。...相比于 Kafka,SBFT(简单拜占庭算法)能提供更加可靠的排序算法,包括容忍节点故障以及一定数量的恶意节点。...在区块链中,每个节点既是数据的发送方,又是数据的接收方。可以说每个节点既是客户端,又是服务端,因此需要基于长连接来实现。
之前我分享过一篇文章《HyperLedger Fabric在携程区块链服务平台的应用实战》介绍了一些携程对于HyperLedger Fabric的落地经验,并重点分享了Fabric框架在代码结构灵活性上的一些认识和在...二、fabric orderer服务过程分析 我们先以最简单的solo为例,看一下Fabric的orderer节点接收排序请求后的主要处理逻辑。...kafka排序与上述例子中solo排序的区别是:可以支持多个orderer节点,所有的交易可以请求任何一个orderer节点,请求的orderer节点本地排序出块后会通过kafka集群将数据同步给其他的...四、基于tendermint的abci实现fabric排序服务 Tendermint提供了一个高性能、一致的、安全的BFT共识引擎,严格的分叉问责保证能够控制作恶者的行为。...这就为许多其他技术栈甚至不同语言的区块链底层的集成提供了思路。关于更多tendermint的介绍这里不再赘述。 这里,我们通过tendermint的abci来实现fabric的orderer服务。
Using Private Data in Fabric:已经更新演示如何通过新的链码生命周期来使用隐私数据集合。...FabToken Fabric 2.0 Alpha还为用户提供了在Fabric通道上轻松将资产转化为token的功能。...FabToken是一种token管理系统,它使用Unspent Transaction Output(UTXO)模型,利用Hyperledger Fabric提供的身份和成员服务基础设施来发布传输和兑换...和基于Kafka的排序服务相比,基于Raft的排序服务将变得更容易设置和管理,并且它的设计允许遍布全球的组织成为分散的排序服务贡献节点。...The Ordering Service:描述Fabric中排序服务的作用以及三种排序服务实现的概述:Solo、Kafka和Raft。
1.Kafka排序服务原理 官方文档在google doc上 参考翻译 https://www.jianshu.com/p/db006359133d ?...2. kafka 排序服务安装 所有的代码已分享在 https://github.com/zealzeng/kafka-orderer-demo 2.1 安装环境 官方文档有一些简单的描述 https:...//hyperledger-fabric.readthedocs.io/en/release-1.4/kafka.html kafka节点需要3f+1, 最少需要4个节点; zookeeper节点2f+....example.com 192.168.31.231 kafka4,peer1.org2.example.com Hyperledger fabric 1.4年前已正式发布, 是一个长期维护的版本,...小结 提供的代码只用于学习, 不适合用于生产。持久化配置, 记账本使用couchdb, kafka, zookeeper网络安全设置, 系统参数, 容器参数等都需要按照实际情况调整。
联盟链究竟有何“魅力”,能得到如此多大企业的青睐?今天,小编将通过介绍一个基于联盟链的项目—Hyperledger Fabric,为大家抛砖引玉。...目前,Hyperledger已有140多个成员,其中1/4来自中国。中国技术组主要由万达、华为、IBM构成,职责包括中国地区及中国会员的需求提供,以及代码的推进。...下面,我们直接通过1.0版本进入Fabric的世界。 ? 图1. Fabric 1.0 架构图 ? 图2. 运行时架构 ➤Identity,也就是身份管理。...➤排序 Orderer的排序分Solo和Kafka两种模式; Solo:单节点排序功能,实验性质,不具备可扩展性和容错,不能够在生产环境使用;Kafka:集群排序,支持CFT容错,支持可持久化和可扩展性...而Fabric作为准入型网络,节点具有很大的可信度和目的性,自然代币就不是很必要。 ➤Block打包 Fabric出块可配置时间、大小,甚至交易的上限大小,非常灵活。
而HyperLedger Fabric在1.0对系统架构进行了升级,使得事务的处理更加复杂。...排序节点)。...的大小达到了设定的大小,而另一种情况是Transaction很少,没有达到设定的大小,那么Orderer就会等,等到大小足够大或者超时时间。...五、小结 通过对这个Transaction过程的分析,我们可以得出以下结论: Fabric不支持对同一个数据的并发事务处理,也就是说,如果我们同时运行了a->b 10元,b->a 10元,那么只会第一条...之外的地方标识该Transaction是无效的。
一、Hyperledger Fabric是什么 Hyperledger Fabric是面向企业应用场景的开源分布式账本平台。...Hyperledger Fabric基于模块化设计,各个模块实现特定的功能。企业之间可以组建Fabric联盟链,将相关业务数据通过智能合约方式写入链上,通过背书策略来保证各个企业数据的一致性。...Fabric-orderer, fabric-kafaka, fabric-zookeeper主要是提供orderer服务,用户将请求提交给orderer, orderer对用户的请求进行排序,通过排序从而保证分布式业务的顺序...,区块通过PreviousHash连接成链式结构,交易信息里面包含了交易的读集和写集。...e) 对于区块存储文件,单个文件大小是否有限制。 目前在fabric里,区块是存在一个个文件里的,单个文件的大小是64M。
Hyperledger Fabric v2.0 Alpha引入两大新功能,新的Fabric链码生命周期和FabToken....使用新的链码生命周期 官方提供了新的操作手册和例子: Chaincode for operator https://hyperledger-fabric.readthedocs.io/en/latest...Using FabToken https://hyperledger-fabric.readthedocs.io/en/latest/token/FabToken.html 官方提供了对应操作文档...Raft实现的排序服务 1.4.1引入的etcd实现的raft(CFT)容错排序服务,以前编写的一致性文章有提到过,跟zookeeper的协议有点类似。比以前的kafka排序服务更容易搭建。...排序服务是可插拔的,华为等大厂都有自己实现的XFT排序服务。 小结 总体上还是继续稳定优化,让开发更好编写和部署链码,让运维更方便管理系统。
Java的基本只能看TestCase代码, 所以说Hyperledger Fabric也属于成长完善阶段。...更新的第四步应用需要收集所有的背书响应,最后打包请求到orderer排序节点,排序节点发送到网络中的其它节点, 这些节点会验证打包信息,通过后更新本地账本拷贝,最后异步通知应用。...节点与组织 区块链网络由一个或多个组织管理,peer节点则是网络中这些组织的连接点。 ? 每个组织可以通过自己开发不同的应用,接入各自的接入点,为网络对应的通道提供资源和数据,没有中心化的资源。...阶段2 - 打包 Orderer节点是主角, 它会收到阶段1中交易提议响应的内容, 把批量的交易打包到区块,当生成的区块到了一定大小或者一定的时间内,orderer分发到连接它的所有Peer节点。...如果验证通过,节点会做账本状态的一致性检查,即使背书验证通,但由于此时可能另外的交易已更新对应资源的状态,这个交易也是无效的。
1.1之后peer event做了完全不同的设计,消息的监听不在peer节点了,而是基于channel,这样设计提供了对Peer数据更细粒度的采访控制和提供了接收消息的可靠性。...(官方文档是这么扯,我也有点疑惑) 主要提供两种服务,Deliver(通知提交到记账本的整个区块内容) 和DeliverFiltered(过滤一些区块减少消息通知返回的区块大小) 有点晦涩, 找了下Java...everyOther; } Fabric-SDK在设计的时候,无论是查询,更新,大多操作都是基于org.hyperledger.fabric.sdk.Channel作为入口, 例如...Orderer大多例子都是SOLO配置的,Kafka如何配置? 老实说要用好Kafka里面蛮多参数需要考量,毕竟Orderer集群是共识实现的重点,后面我们专门探讨下kafka实现的共识和配置。...暂时先参考官方文档 https://hyperledger-fabric.readthedocs.io/en/release-1.2/kafka.html?highlight=kafka
====> hyperledger/fabric-kafka:0.4.18 0.4.18: Pulling from hyperledger/fabric-kafka ====> hyperledger...5 months ago 276MB hyperledger/fabric-kafka 0.4 caaae0474ef2 5 months...ago 270MB hyperledger/fabric-kafka 0.4.18 caaae0474ef2 5 months ago.../byfn.sh down 3 开发测试 以下将使用VSCode远程开发模式,连接我们前面启动的Fabric网络进行远程开发。...提供Go、Java、Node的SDK,本节使用Go的SDK开发客户端程序调用前面部署好的链码。
官方docker非常慢,请一定在阿里云等提供docker仓库加速器的网站注册好帐户(比如https://cr.console.aliyun.com/#/accelerator),配置好加速器。...cd /opt/gopath/src/github.com/hyperledger git clone https://github.com/hyperledger/fabric.git 请切换到最新的...可以看到,默认安装了:4个peer(2个是org1的,2个是org2的)节点、4节点构成的kafka集群、3节点构成的zookeeper集群、1个orderer节点。...这是因为:fabric提供的共识机制,PBFT目前还未达到生产级别的应用,只能靠kafka+zookeeper实现PAXOS算法下的共识机制(不能有作恶结点)。...在fabric里,所有的交易必须通过智能合约才能操作,而chaincode链码就是智能合约。
领取专属 10元无门槛券
手把手带您无忧上云