Hyperledger Fabric Network中的角色

在Hyperledger中,由三种类型的角色:

Client:应用客户端,用于将终端用户的交易请求发送到区块链网络;

Peers:负责维护区块链账本,分为endoring peers和committing peers,其中,endorser为交易做背书(验证交易并对交易签名),committer接收打包好的区块,然后写入区块链中。Peers节点是一个逻辑的概念,endorser和committer可以同时部署在一台物理机上。

Ordering Service:接收交易信息,并将其排序后打包成区块,放入区块链,最后将结果返回给committer peers。

Hyperledger交易流程

1、客户端通过SDK接口,向endorsing peer节点发送交易信息:

2、每个endorsing peer节点模拟处理交易,此时并不会将交易信息写入账本。然后,endorser peer会验证交易信息的合法性,并对交易信息签名后,返回给client。此时的交易信息只是在client和单个endorser peer之间达成共识,并没有完成全网共识,各个client的交易顺序没有确定,可能存在双花问题,所以还不能算是一个“有效的交易”。同时,client需要收到“大多数”endorser peer的验证回复后,才算验证成功,具体的背书策略由智能合约代码控制,可以由开发者自由配置。

3、client将签名后的交易信息发送给order service集群进行交易排序和打包。Order service集群通过共识算法,对所有交易信息进行排序,然后打包成区块。Order service的共识算法是以组件化形态插入Hyperledger系统的,也就是说开发者可以自由选择合适的共识算法。

4、ordering service将排序打包后的区块广播发送给committing peers,由其做最后的交易验证,并写入区块链。ordering service只是决定交易处理的顺序,并不对交易的合法性进行校验,也不负责维护账本信息。只有committing peers才有账本写入权限。

Hyperledger交易流程的更多相关文章

  1. [转] 深度探索Hyperledger技术与应用之超级账本的典型交易流程

    转自: https://blog.csdn.net/HiBlock/article/details/80212499 个人感觉对交易流程描述的比较清楚,转载以备查看. 1 典型交易流程 下图所示为Hy ...

  2. HyperLedger Fabric 1.4 交易流程(6.3)

    区块链最主要的特性之一是去中心化,没有了中心机构的集中处理,为了达成数据的一致性,就需要网络中全民参与管理,并以某种方法达成共识,所以区块链的交易流程也就是共识的过程.       在Fabric中, ...

  3. QPBOC扩展应用交易流程

    1 Q扩展部分数据 增加3个DGI,分别为:A001,8020,9020 9103中增加DF60(9F38中),DF61 增加DF62,DF63 1.1  A001扩展应用配置 DGI 长度 值(示例 ...

  4. Fabric 1.0交易流程

    这篇文章详细介绍fabric的交易流程,以图片加文字的形式呈现. Fabric 1.0交易流程 fabric中的所有交易都是通过chaincode执行 1.应用程序客户端通过SDK调用证书服务(CA) ...

  5. PBOC电子现金的交易流程

    做一个电子现金的交易: 第一步当然是选中当前的应用, 方法是调用select命令, 传入当前的应用AID号, 如果卡片的状态码返回9000,则表示选中成功. 下面举一个例子: 发送: 00 a4 04 ...

  6. 详细讲解:零知识证明 之 ZCash 完整的匿名交易流程

    作者:林冠宏 / 指尖下的幽灵 博客:http://www.cnblogs.com/linguanh/ 掘金:https://juejin.im/user/587f0dfe128fe100570ce2 ...

  7. 架构设计 | 基于电商交易流程,图解TCC事务分段提交

    本文源码:GitHub·点这里 || GitEE·点这里 一.场景案例简介 1.场景描述 分布式事务在业务系统中是十分常见的,最经典的场景就是电商架构中的交易业务,如图: 客户端通过请求订单服务,执行 ...

  8. 区块链Fabric 交易流程

    1. 提交交易预案 1)应用端首先构建交易的预案,预案的作用是调用通道中的链码来读取或者写入账本的数据.应用端使用 Fabric 的 SDK 打包交易预案,并使用用户的私钥对预案进行签名. 应用打包完 ...

  9. PBOC2.0中消费交易流程

    消费交易允许持卡人使用电子存折或电子钱包的余额进行购物或获取服务.此交易可以在销售点终端(POS)上脱机进行.使用电子存折进行的消费交易必须提交个人识别码(PIN),使用电子钱包则不需要. 1.1 终 ...

随机推荐

  1. [19/10/16-星期三] Python中的模块和包、异常、操作文件

    一.模块 # 模块(module) # 模块化,模块化指将一个完整的程序分解为一个一个小的模块 # 通过将模块组合,来搭建出一个完整的程序 # 不采用模块化,统一将所有的代码编写到一个文件中 # 采用 ...

  2. mock.js的运用

    一:概念 Mock.js是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试.提供了以下模拟功能: 根据数据模板生成模拟数据 模拟 Ajax 请求,生成并返回模拟数据 基于 H ...

  3. python day2-爬虫实现github登录

    GitHub登录 分析登录页面 开发者工具分析请求 从session请求分析得知: 1.请求的URL为:https://github.com/session 2.该请求为post请求,即需要上传dat ...

  4. Python 入门之 文件

    Python 入门之 文件 1.文件操作 找到文件位置 双击打开 进行一些操作 r-read(读) w-write(写) a-追加 rd--读字节 wd--清空写,写字节 ad --追加写(字节) r ...

  5. 卸载OpenIV

    最近把 GTA5 卸载了,于是也想把用来修改 MOD 的 OpenIV 也卸载了. 结果在设置中,进行卸载的时候,弹出这个窗口 解决方案 1.首先打开 文件所在位置 2.右键,选择 属性,打开文件所在 ...

  6. 关于“如何只用2GB内存从20亿,40亿,80亿个整数中找到出现次数最多的数?”的一种思路

    小弟不才,只懂一些c#的皮毛,有一些想法, int32值范围大概在-20亿——20亿,按hashtable一个keyvalue占8B的设定来说,最大可以存储大约2.5亿个 数字-次数对. 那么,可以将 ...

  7. python 查询Neo4j多节点的多层关系

    需求:查询出满足3人及3案有关系的集合 # -*- coding: utf-8 -*- from py2neo import Graph import psycopg2 # 二维数组查找 def fi ...

  8. java创建对象的5种方法

    java是面向对象的,所以在使用中经常会去创建对象,而我们一般创建对象只会使用new关键字去创建,这里给大家总结一下在java中创建对象的5中方法: 使用new关键字 } → 调用了构造函数 使用Cl ...

  9. /proc/sys/fs/file-max

    Linux的/proc/sys/fs/file-max决定了当前内核可以打开的最大的文件句柄数. 查看当前的值: cat /proc/sys/fs/file-max 这个值在kernel的文档里是这样 ...

  10. 机器学习分类算法之K近邻(K-Nearest Neighbor)

    一.概念 KNN主要用来解决分类问题,是监督分类算法,它通过判断最近K个点的类别来决定自身类别,所以K值对结果影响很大,虽然它实现比较简单,但在目标数据集比例分配不平衡时,会造成结果的不准确.而且KN ...