客户端将交易预提案(Transaction Proposal)通过 gRPC 发送给支持 Endorser 角色的 Peer 进行背书. 这些交易提案可能包括链码的安装.实例化.升级.调用.查询:以及 Peer 节点加入和列出通道操作. Peer 接收到请求后,会调用 core/endorser/endorser.go 中 Endorser 结构体 的ProcessProposal(ctx context.Context, signedProp *pb.SignedProposal) (*pb.…
Transaction Flow 本文概述了在标准资产交换过程中发生的事务机制.这个场景包括两个客户,A和B,他们在购买和销售萝卜(产品).他们每个人在网络上都有一个peer,通过这个网络,他们发送自己的交易,并与Ledger(账本总账)进行交互. 假设,这个flow有一个channel被设置并运行.应用程序客户端已经注册并注册了该组织的证书颁发机构(CA),并获得了必要的加密材料,用于对网络进行身份验证. chaincode(包含一组表示萝卜市场的初始状态的键值对)被安装在peers上,并在c…
排序服务在超级账本 Fabric 网络中起到十分核心的作用.所有交易在发送给 Committer 进行验证接受之前,需要先经过排序服务进行全局排序. 在目前架构中,排序服务的功能被抽取出来,作为单独的 fabric-orderer 模块来实现,代码主要在 fabric/orderer 目录下. 下面以 Kafka 作为共识插件为例,讲解 Orderer 节点的核心过程. 工作原理 Orderer 节点(Ordering Service Node,OSN)在网络中起到代理作用,多个 Orderer…
简述 在搭建HyperLedger Fabric环境的过程中,我们会用到一个configtx.yaml文件(可参考Hyperledger Fabric 1.0 从零开始(八)--Fabric多节点集群生产部署),该配置文件主要用于构建创世区块(在构建创世区块之前需要先创建与之对应的所有节点的验证文件集合),其中在配置Orderer信息中有一个OrdererType参数,该参数可配置为"solo" and "kafka",之前博文所讲的环境配置皆是solo,即单节点共…
简述 在搭建HyperLedger Fabric环境的过程中,我们会用到一个configtx.yaml文件(可参考Hyperledger Fabric 1.0 从零开始(八)——Fabric多节点集群生产部署),该配置文件主要用于构建创世区块(在构建创世区块之前需要先创建与之对应的所有节点的验证文件集合),其中在配置Orderer信息中有一个OrdererType参数,该参数可配置为"solo" and "kafka",之前博文所讲的环境配置皆是solo,即单节点共…
Ledger Ledger(账本)即所有的state transitions(状态切换),是有序且不可篡改的.state transitions(状态切换)是由参与方提交的chaincode(智能合约)调用(“transactions/事务”)的结果.每个事务都将产生一组资产键值对,这些键值对作为创建.更新或删除而提交给Ledger(账本). Ledger(账本)由blockchain(区块链)(“chain”)组成,区块则用来存储有序且不可篡改的记录,以及保存当前状态的state databa…
在这篇文章中,使用fabric-samples/first-network中的文件进行fabric网络(solo类型的网络)启动全过程的解析.如有错误欢迎批评指正. 至于Fabric网络的搭建这里不再介绍,可以参考这一篇文章Hyperledger Fabric环境搭建过程 fabric网络:单机,solo类型,两个组织,分别有两个节点 首先看一下该文件夹内有哪些文件: base connection-org2.json docker-compose-cli.yaml docker-compose…
如果把区块链比作一个只能读写,不能删改的分布式数据库的话,那么事务和查询就是对这个数据库进行的最重要的操作.以比特币来说,我们通过钱包或者Blockchain.info进行区块链的查询操作,而转账行为就是Transaction的处理.而HyperLedger Fabric在1.0对系统架构进行了升级,使得事务的处理更加复杂. 一.架构 让我们来看看Fabric 0.6到1.0的架构图: 这个图来自IBM微课堂第三讲,我们可以看到原来单一的peer节点在1.0中进行了拆分,分为peer(背书节点和…
安装过程参照Hyperledger Fabric的官方文档,文档地址:http://hyperledger-fabric.readthedocs.io/en/latest/prereqs.html 0x00 环境介绍,升级系统软件 搭建了一个vm,操作系统版本: [root@fd240 ~]# cat /proc/versionLinux version 4.11.5-200.fc25.x86_64 (mockbuild@bkernel02.phx2.fedoraproject.org) (gc…
前言 在基于Debian搭建Hyperledger Fabric 2.4开发环境及运行简单案例中,我们已经完成了Fabric 2.4的环境搭建及fabric-samples/test-network官方案例的运行.毫无疑问test-network是一个优秀的入门项目,让我们仅仅通过几行命令就能搭建起…