区块链最主要的特性之一是去中心化,没有了中心机构的集中处理,为了达成数据的一致性,就需要网络中全民参与管理,并以某种方法达成共识,所以区块链的交易流程也就是共识的过程.       在Fabric中,本由一个节点处理的过程,在逻辑上被分解为不同的角色,每个角色承担不同的功能:节点(Peer)分解为背书节点(Endorser peer)和提交节点(Committer peer),为了达到处理的顺序性,提炼出排序(Orderer)角色.       Fabric是应用于联盟链的场景,在处理每一笔交易…
这篇文章详细介绍fabric的交易流程,以图片加文字的形式呈现. Fabric 1.0交易流程 fabric中的所有交易都是通过chaincode执行 1.应用程序客户端通过SDK调用证书服务(CA)服务,进行注册和登记,并获取身份证书. 2.应用程序客户端通过SDK创建好交易提案(Proposal),交易提案把带有本次交易要调用的合约标识.合约方法和参数信息以及客户端签名等信息发送给背书(Endorser)节点. 3.背书(Endorser)节点收到交易提案(Proposal)后,开始进行验证…
Transaction Flow 本文概述了在标准资产交换过程中发生的事务机制.这个场景包括两个客户,A和B,他们在购买和销售萝卜(产品).他们每个人在网络上都有一个peer,通过这个网络,他们发送自己的交易,并与Ledger(账本总账)进行交互. 假设,这个flow有一个channel被设置并运行.应用程序客户端已经注册并注册了该组织的证书颁发机构(CA),并获得了必要的加密材料,用于对网络进行身份验证. chaincode(包含一组表示萝卜市场的初始状态的键值对)被安装在peers上,并在c…
一个超级账本区块链网络里每个channel的共享配置都是存储在一个配置交易里.每个配置交易通常被简称为configtx. Channel 配置有以下重要属性: 1.有版本标识:配置里的所有元素都有一个关联版本.每次更新配置,版本号都维持最新.另外,每个提交的配置会获得一个序列号. 2.有权限:配置里的每个元素都有一个关联策略,用来管理是否允许对这个元素进行修改.每一个保存有当前配置副本的实例,都会按照关联策略的内容对新收到的配置改动进行验证权限. 3.层次性:一个配置根组包含多个子组,并且层次中…
Ledger Ledger(账本)即所有的state transitions(状态切换),是有序且不可篡改的.state transitions(状态切换)是由参与方提交的chaincode(智能合约)调用(“transactions/事务”)的结果.每个事务都将产生一组资产键值对,这些键值对作为创建.更新或删除而提交给Ledger(账本). Ledger(账本)由blockchain(区块链)(“chain”)组成,区块则用来存储有序且不可篡改的记录,以及保存当前状态的state databa…
首先,我们在安装前,要考虑一个问题 Hyperledger Fabric,通过指定的节点进行背书授权,才能完成交易的存储 延伸开来,就是为了实现容错.高并发.易扩展,需要zookeeper来选择排序引擎处理记账的唯一性 我们这里选择kafka排序引擎并通过Kafka集群和zookeeper集群保证数据的一致性,实现排序功能 同时,为了排序服务器的稳定,采取多Orderer集群实现容错空间, 为此,我们采用了最基础的配置方案:两个组织,四个节点 两个CA服务器,三个Zookeeper服务器,四个K…
运行fabric-samples项目中的一个例子:first-network,创建第一个网络(Building Your First Network). 该网络共有4个peer节点,划分为2个组织(organizations),以及1个单独的orderer节点,另外还需要一个容器来执行创建和加入channel.部署和执行chaincode等命令. 运行该例子需要下载的文件有:fabric-samples项目,特定的平台二进制文件,所需的镜像文件. 准备 项目下载 在已设置的GOPATH路径下从g…
转自: https://blog.csdn.net/HiBlock/article/details/80212499 个人感觉对交易流程描述的比较清楚,转载以备查看. 1 典型交易流程 下图所示为Hyperledger Fabric 1.0典型的交易流程图. 从上一节的网络节点架构中,我们已经了解到基于Hyperledger Fabric 1.0的区块链应用中涉及几个节点角色:应用程序.背书节点.排序服务节点和主节点.在图3-4中,假定各节点已经提前颁发好证书,且已正常启动,并加入已经创建好的通…
 一  checkConfig  Before     1.1  private static final TestConfig testConfig = TestConfig.getConfig();          这里加载一个配置文件(test路径/src/test/java/org/hyperledger/fabric/sdk/testutils.properties,文件不存在就加载代码中写死的默认配置),     配置文件需要设置peer,orderer,ca,eventhub的地…
Hyperledger Fabric Network中的角色 在Hyperledger中,由三种类型的角色: Client:应用客户端,用于将终端用户的交易请求发送到区块链网络: Peers:负责维护区块链账本,分为endoring peers和committing peers,其中,endorser为交易做背书(验证交易并对交易签名),committer接收打包好的区块,然后写入区块链中.Peers节点是一个逻辑的概念,endorser和committer可以同时部署在一台物理机上. Orde…