Fabric 1.4.1引入Raft排序服务, 运维界比较出名的etcd实现的orderer服务。...后生可畏, etcd是中国一个年轻人的作品, 实现了raft协议, 在k8s等容器化, 虚拟化, 集群化有官方应用。...快速看下1.4.1的fabric-samples/first-network里面的raft排序服务如果使用。 运行....文件是docker-compose-etcdraft2.yaml, 基于orderer-base覆盖 orderer-base: image: hyperledger/fabric-orderer...SnapDir: /var/hyperledger/production/orderer/etcdraft/snapshot 把东西做简单是不简单的事情 , 给raft排序服务点赞。
新的模型在之前的生命周期上进行了改进: 多个组织必须同意链码的参数:在Fabric 1.x版本中,一个组织能够为所有其他通道成员设置链码参数(例如背书策略)。...Raft 排序服务 Raft是v1.4.1中引入的,它是一种基于etcd的崩溃容错(CFT)排序服务。...和基于Kafka的排序服务相比,基于Raft的排序服务将变得更容易设置和管理,并且它的设计允许遍布全球的组织成为分散的排序服务贡献节点。...Configuring and operating a Raft ordering service:展示部署基于Raft的排序服务时所需注意的配置参数和注意事项。...Building Your First Network:已经更新,允许使用基于Raft的排序服务来构建样本网络。
在Hyperledger Fabric最新版本中,Fabric系统的共识模块中实现了三种共识算法,其中包括Solo,Kafka以及Raft算法。...Raft共识:Raft是Hyperledger Fabric在1.4.1版本中引入的,它是一种基于 etcd 的崩溃容错(CFT)排序服务。...其实,Hyperledger Fabric在1.4.1版本以前,它的核心共识算法通过Kafka集群实现,但是在1.4.1版本之后,Fabric推荐使用Raft算法实现节点的共识。...其实从提供服务的视角来看,基于Raft和Kafka的排序服务是类似的,他们都是基于CFT(crash fault tolerant)模型的排序服务,并且都使用了主从节点的设置。...如果使用Raft算法,每个组织可以贡献排序节点,共同组成排序服务,可以更好的去中心化。第三点,Raft是原生支持的,而Kafka需要经过复杂的步骤部署,并且需要单独学习成本。
前面的文章都是在讲解Fabric网络的搭建和ChainCode的开发,那么在ChainCode开发完毕后,我们就需要使用Fabric SDK做应用程序的开发了。...由于我们想基于官方Example的e2e_cli里面的Fabric网络来写程序,关于Fabric网络的搭建我就不多说,大家可以参考我之前的博客。...TLS,所以是grpcs,如果没有启用TLS,那么就是grpc privateKeyFolder:'/home/studyzy/go/src/github.com/hyperledger/fabric...4.总结 我们以上的query和Invoke都是参照了官方的fabcar示例,该示例在https://github.com/hyperledger/fabric-samples/tree/release.../fabcar 这只是简单的测试Node SDK是否可用,如果我们要做项目,那么就会复杂很多,可以参考官方的两个项目: https://github.com/hyperledger/fabric-samples
Hyperledger Fabric被设计成支持不同的模块组件直接拔插启用,并能适应在经济生态系统中错综复杂的各种场景。.../network.sh up 如下图所示,已成功启动一个 orderer节点 和两个 peer节点: 至此一个基于 Hyperledger Fabric 的测试网络就搭建完成了。...创建Channel 现在我们的机器上正在运行对等节点和排序节点, 我们可以使用脚本创建用于在Org1和Org2之间进行交易的Fabric通道。...在Fabric中,智能合约作为链码以软件包的形式部署在网络上。链码安装在组织的对等节点上,然后部署到某个通道,然后可以在该通道中用于认可交易和区块链账本交互。.../bin:$PATH 还需要将fabric-samples代码库中的FABRIC_CFG_PATH设置为指向其中的core.yaml文件: export FABRIC_CFG_PATH=$PWD/..
前言 因为毕业 Case Study 的项目主要是基于Ethereum公链,也没有面向企业的应用场景,所以之前对Hyperledger Fabric的了解大多只是停留在它的权限管理机制、通道、灵活的智能合约编写等几个特色的概念...优势总结 Fabric通过将企业应用的各个复杂环节分配到各个逻辑角色节点(背书、排序等),不需要所有节点都承担如排序这样资源消耗较大的操作,消除了网络瓶颈;分配了角色后某些交易只在特定的节点部署和执行,...Fabric 支持多种背书策略,Client 在提交至排序节点前会验证是否满足背书要求,值得注意的是如果只做了查询账本操作,Client 不会提交至 OSN。...对于一个链码交易来说,背书策略是在链码实例化的时候指定的,一笔有效交易必须是背书策略相关组织签名才能生效,本质上Fabric区块链中的交易验证是基于对背书节点的信任,这也是称Fabric并不是严格意义上的去中心化的原因之一...验证环节 当节点接收到由排序节点发送来的区块时,会对区块中的所有交易进行验证并标记是否可信,主要验证两个方面:1.是否满足背书策略。
Hyperledger Fabric CA 是 Hyperledger Fabric 的证书颁发机构 (CA)。...一、功能: 身份注册,或作为用户注册表连接到 LDAP 颁发注册证书 (ECerts) 证书更新和撤销 二、组成 1.Hyperledger Fabric CA服务器 2.Hyperledger Fabric...-b admin:adminpw -b选项为引导程序管理员提供注册 ID 和密码;如果未使用“ldap.enabled”设置启用 LDAP,则这是必需的。...在本地目录中创建一个名为fabric-ca-server-config.yaml的默认配置文件,可以自定义。...:adminpw' 在与docker-compose.yml文件相同的目录中打开终端并执行以下命令: docker-compose up -d 3.创建自己的Fabric CA镜像 cd $GOPATH
Hyperledger Fabric基于模块化设计,各个模块实现特定的功能。企业之间可以组建Fabric联盟链,将相关业务数据通过智能合约方式写入链上,通过背书策略来保证各个企业数据的一致性。...,相关组织选择peer安装智能合约 6.其中一个组织,实例化智能合约,主要是在特定的通道创建特定业务的命名空间并且写入此命名空间的初始化数据,在实例化智能合约的过程中,指定智能合约的背书策略 7.相关组织通过调用智能合约和链上数据进行交互...peer节点 5.Peer节点检查区块中的交易,并生成最终的区块 五、Hyperledger Fabric的常见问题 a)区块结构以及交易信息 下图主要是列出了Hyperledger中区块链中单个区块的结构...tlscacerts 存放着这个组织tls的根证书。...e) 对于区块存储文件,单个文件大小是否有限制。 目前在fabric里,区块是存在一个个文件里的,单个文件的大小是64M。
本系列学习笔记以阅读《深度探索区块链:Hyperledger Fabric技术与应用》一书的笔记为蓝本,故默认Hyperledger Fabric 1.0,期间可能会追加最新版本的内容,到时会在里面注明...可扩展性 Hyperledger Fabric 1.0在0.6版本的基础上,对Peer节点的角色进行了拆分,有背书节点(Endorser)、排序服务节点(Orderer)、记账节点(Committer)...该图是从不同角度来划分的:上层从应用层程序的角度,提供了标准的gRPC接口,在API的基础上封装了不同语言的SDK,包括Golang、Node.js、Java、Python等,开发人员可以利用SDK开发基于区块链的应用...区块链强一致性要求各个节点之间达成共识需要较长的执行时间,也是采用异步通信模式进行开发的,事件模块可以在触发区块事件或者链码事件的时候执行预先定义的回调函数。...注册的证书分为注册证书(ECert)、交易证书(TCert)和TLS证书(TLS Cert),它们分别用于用户身份、交易签名和TLS传输。
Hyperledger Fabric v2.0 Alpha引入两大新功能,新的Fabric链码生命周期和FabToken....新的链码生命周期 2.0支持链码的去中心化的治理,引入新的流程在节点上安装链码,在通道上启动实例。新的链码生命周期允许多个组织对链码的参数协同达成一致,例如链码的背书策略。...(2) 更安全的链码升级流程 老版本的升级由单独一个组织发起,存在一些风险,例如通道的成员升级时可能未安装好最新的链码。新的模型需要足够多的组织成员同意后才能升级。 ...使用新的链码生命周期 官方提供了新的操作手册和例子: Chaincode for operator https://hyperledger-fabric.readthedocs.io/en/latest...Raft实现的排序服务 1.4.1引入的etcd实现的raft(CFT)容错排序服务,以前编写的一致性文章有提到过,跟zookeeper的协议有点类似。比以前的kafka排序服务更容易搭建。
/tls ports: - 7051:7051 - 7052:7052 - 7053:7053 在Peer的配置中,主要是给Peer分配好各种服务的地址,以及TLS...3.3配置CLI CLI在整个Fabric网络中扮演客户端的角色,我们在开发测试的时候可以用CLI来代替SDK,执行各种SDK能执行的操作。CLI会和Peer相连,把指令发送给对应的Peer执行。...CLI的配置在docker-compose-cli.yaml中,我们看看其中的内容: cli: container_name: cli image: hyperledger/fabric-tools...【注意:请注释掉cli中command这一行,我们不需要CLI启动的时候自动执行脚本,我们在步骤4,5要一步步的手动执行!】...)的org2,是否会看org1的更改呢?
之前我分享过一篇文章《HyperLedger Fabric在携程区块链服务平台的应用实战》介绍了一些携程对于HyperLedger Fabric的落地经验,并重点分享了Fabric框架在代码结构灵活性上的一些认识和在...所以我们认为,无论是官方正在开发的raft排序还是我们做的pbft排序,最重要的目的就是首先要允许orderer节点部署到不同的企业,每个企业都参与到fabric的排序服务,而不是像kafka排序一样需要将排序服务部署到一个中心化的机构...fabric的排序方式,需要peer节点将交易proposal 发送给任一orderer节点,kafka排序是orderer节点借助kafka消息队列,而raft排序是orderer节点借助etcd实现区块传递给其他...abci中也创建了一个tendermint的基于leveldb的账本。...以上整个过程,没有动过tendermint的源代码,只需要扩展一个新的实现fabric的consensus接口的类,在类中同时实现tendermint的abci接口即可。
运行fabric-samples中的示例:创建第一个网络(Building Your First Network)。...工具生成网络成员的证书和秘钥,排序服务创世区块,通道配置交易,并且更新Org1和Org2的锚节点。.../byfn.sh -m down 手动分步运行 为了更好理解fabric网络创建的具体过程,可以手动一步步完成上述脚本中包含的所有操作。.../crypto-config.yaml 2.生成创世区块 会创建channel-artifacts目录,并在该目录下生成genesis.block,创世区块用于启动网络中的排序节点。...首先进入cli容器中,之后的所有命令都是在该容器内部进行的: docker exec -it cli bash 执行以下命令创建通道,其中--cafile参数制定了orderer节点的TLS根CA证书的路径
题外话:以上这些技能除了在 fabric 区块链体系中需掌握,在如今火热的云原生技术下也一样是基础。...排序节点负责接受交易并排序(排序算法有: SOLO,KAFKA,RAFT,PBFT),最后将排序好的交易按照配置中的约定整理为区块之后提交给记账节点进行处理。...# 排序节点类型用来指定要启用的排序节点实现,不同的实现对应不同的共识算法 OrdererType: solo # 共识机制 Addresses: # Orderer 的域名(用于连接)...由于这些节点之间需要互相通信,所以我们需要将这些节点都放入到一个 Docker 网络中,以 fabric_network 为例。...最后 关于对 fabric 的了解程度,我已经尽可能地毫无保留了,但是对于真正想要进入区块链这一领域的读者来讲,fabric 技术只是区块链中的冰山一角,更多的还需要你们自己去探索。
/channel-artifacts/channel.tx -o:与某个排序节点连接; -c:通道名称; -f:使用通道配置文件; --tls:是否开启TLS加密传输协议; --cafile:服务端的证书文件.../channel-artifacts/Org1MSPanchors.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric.../channel-artifacts/Org2MSPanchors.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric...:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations...; -l:链码编程语言,使用golang; --tls:是否开启TLS加密传输协议; -v:链码版本号,默认1.0; --cafile:服务端的证书文件; -c:传输给链码的参数; -C:通道名称
但是如果你想了解BYFN是如何工作的,你可以参考: 1.Hyperledger Fabric官方BYFN教程 2.我之前关于BYFN的文章 基于帐户的钱包模型 基于帐户的钱包模型是交易系统的实现之一,一般而言系统中存在一些钱包...[可选] Hyperledger Fabric中有两个数据库选项用于保存超级账本的world state:LevelDB和CouchDB,在本教程中,为了简单起见,我将使用LevelDB。...上面的AccountBasedChaincode(.java)是我们在Java中编写Chaincode的地方。 第2步——需求分析 在我们开始编码之前,让我们组织我们需要编码的内容。...第5步——在BYFN中运行Chaincode 5.1 安装相关项目 我们在本教程中使用Hyperledger Fabric v1.4。...这里是原文通过Java Chaincode实例学习交易系统中基于Hyperledger Fabric帐户的钱包模型 (adsbygoogle = window.adsbygoogle || [
该网络支持自动配备对等节点和订购者组织的加密材料,自动配备渠道工件,以及邀请组织对等节点加入渠道。 在区块链术语方面需要帮助?...在 区块链基础:术语表和用例 中适当了解,然后在 Hyperledger Fabric 术语表 中更深入钻研。...在本教程中,我们将展示如何将第三个组织添加到一个应用程序渠道,将它自己的对等节点添加到一个已在运行的 Hyperledger Fabric 区块链网络,然后将它加入该渠道。...configtxlator 工具简介 configtxlator 工具提供了一个与 SDK 独立的真正无状态的 REST API,以简化 Hyperledger Fabric 区块链网络中的配置任务。...它还修复了 v1.0.4 中未解决的 configtxlator 工具中的错误。)其他选项包括手动收集签名或让客户端应用程序借助 NodeSDK 支持以编程方式收集需要的签名。
1.Kafka排序服务原理 官方文档在google doc上 参考翻译 https://www.jianshu.com/p/db006359133d ?...2. kafka 排序服务安装 所有的代码已分享在 https://github.com/zealzeng/kafka-orderer-demo 2.1 安装环境 官方文档有一些简单的描述 https:...一个比较重要的配置项是CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE, 这里注意到的${COMPOSE_PROJECT_NAME}是在.env文件中配置了值为net, 漏了会出问题...这个配置项从注释上来看好像是让chaincode实例化时新起的容器与所在的peer节点在同一个桥接网络中。...笔者的环境不这样配就无法实例化链码,也需要设置peer, orderer,cli在同一个byfn网络内。 也有可能peer节点和orderer节点单独在不同机器就不需要这样配置, 请大家尝试。
回顾一下我之前的一篇博客,在Fabric 1.0中,我们存在3种类型的数据存储,一种是基于文件系统的区块链数据,这个跟比特币很像,比特币也是文件形式存储的。...HyperLedger在Docker Hub上也发布了CouchDB的镜像,为了能够深入研究CouchDB和Fabric的集成,我们就采用官方发布的CouchDB来做。...如果要基于这个yaml文件启用CouchDB的Peer,则打开该文件,并编辑其中的Peer节点,改为如下的形式: peer0.org1.example.com: container_name: peer0...把4个Peer的配置都改好后,保存,我们试着启用Fabric: ....可能会遇到的问题 虽然区块链是一个只能插入和查询的数据库,但是我们的业务数据是存放在State Database中的,如果我们直接修改了CouchDB的数据,那么接下来的查询和事务是直接基于修改后的CouchDB
领取专属 10元无门槛券
手把手带您无忧上云