Hyperledger Fabic中的Transaction流程

Transaction处理流程时从client发起proposal到背书节点,背书节点发返回背书结果。client再将proposal及其返回打包成成transaction,并将transaction发送到ordering-service排序并打包成block,广播到commit-peer。最后commit-peer验证交易并更新账本。

1. Endorsement

该过程由Client向endorse-peer(背书节点)发出proposal消息,背书节点会验证该消息,并模拟执行。需要注意,此时模拟执行的结果并不会写入ledger中。之后,背书节点会向Client发送对应该proposal的response。

Proposal的消息结构如下所示,其中包含一个Header(identifer、metadata、ID of chain等)、Payload。

endorse-peer会验证proposal的如下内容:

  • proposal格式
  • 该proposal是否之前收到过,防止replay-attack.
  • 用MSP检查签名是否正确
  • 提交者是否符合当前channel的权限要求

proposal_response的消息如下,其中包含是否成功的code、payload、signature等。payload中会包含proposal的hash值,以便将response与特定的proposal对应。

2. Ordering

client收到proposal的response之后,会将这些通过endorse的proposal及其response组成一个transaction。什么条件表示endorse通过是由背书策略决定的。

然后,client将transaction发送给Ordering-Service,经过ordering-service的排序后,order-peer会将排序后的transaction打包成block,然后将这些block广播到所有commit-peer(记账节点)。

3. validate

commit-peer收到block后会验证其中的transaction,当验证通过后,会将根据block信息更改ledger,并产生一个propriate event事件。

Hyperledger Fabic中的Transaction流程的更多相关文章

  1. Hyperledger项目中使用的工具

    Hyperledger作为一个众多IT厂商参与的项目,全球化的开源社区,其项目的组织形式.流程.工具,都值得借鉴.好工匠离不开好工具,我注意到Hyperledger项目中使用了大量的好工具,包括项目管 ...

  2. 通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[下]:管道是如何构建起来的?

    在<中篇>中,我们对管道的构成以及它对请求的处理流程进行了详细介绍,接下来我们需要了解的是这样一个管道是如何被构建起来的.总的来说,管道由一个服务器和一个HttpApplication构成 ...

  3. [.net 面向对象编程基础] (7) 基础中的基础——流程控制语句

    [.net 面向对象编程基础] (7) 基础中的基础——流程控制语句 本来没有这一节的内容,后来考虑到既然是一个系列文章,那么就尽可能写的详细一些,本节参考了网上朋友所写的例子,为的是让更多小伙伴学习 ...

  4. fir.im Weekly - iOS开发中的Git流程

    本期 fir.im Weekly 收集了微博上的热转资源,包含 Android.iOS 开发工具.源码等好用的轮子,还有一些 APP 设计的 Tips,希望对你有用. 精仿知乎日报 iOS 端 @我偏 ...

  5. u-boot中nandflash初始化流程分析(转)

    u-boot中nandflash初始化流程分析(转) 原文地址http://zhuairlunjj.blog.163.com/blog/static/80050945201092011249136/ ...

  6. AppScan在项目中的使用流程

    AppScan在项目中的使用流程 http://www.docin.com/p-829022229.html

  7. Core管道中的处理流程3

    通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[下]:管道是如何构建起来的? 在<中篇>中,我们对管道的构成以及它对请求的处理流程进行了详细介绍,接下 ...

  8. zigbee学习:示例程序SampleApp中按键工作流程

    zigbee学习:示例程序SampleApp中按键工作流程 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:IAR8. ...

  9. SELECT中的if_case流程函数

    DQL中常用的流程函数if_case ---流程函数在一个SQL语句中实现条件选择 模拟对职员薪水进行分类: mysql> create table salary_tab(userid ,)); ...

随机推荐

  1. transfer function

    线性变化后,往往希望进行非线性变化,常用的非线性变化函数有Sigmoid,Tanh,ReLU.会发现,经过这三个函数变化后,Tensor的维度并不发生变化. tanh(双曲正切函数):

  2. net::ERR_CONNECTION_RESET 报错原因

    1>  向tomcat 服务器上上传视频, 谷歌浏览器控制台报出: 打开信地址栏后 发现: net::ERR_CONNECTION_RESET 错误, 但是此视频以经过mp4转码(注: 浏览器支 ...

  3. java.lang.NoClassDefFoundError: org/apache/ibatis/mapping/DatabaseIdProvider

    我用的方案是:maven+struts2+spring+mybatis 出现上述错误的原因是: <dependency>            <groupId>org.myb ...

  4. oracle 基本知识点

    //创建临时表空间create temporary tablespace test_temp tempfile 'E:\oracle\product\10.2.0\oradata\testserver ...

  5. P2196 挖地雷

    题目背景 NOIp1996提高组第三题 题目描述 在一个地图上有N个地窖(N<=20),每个地窖中埋有一定数量的地雷.同时,给出地窖之间的连接路径.当地窖及其连接的数据给出之后,某人可以从任一处 ...

  6. Visual Studio 2010 Express for Windows Phone 永久免费序列号

    Visual Studio 2010 Express for Windows Phone 永久免费序列号:YDK44-2WW9W-QV7PM-8P8G8-FTYDF

  7. BZOJ4543 Hotel加强版

    题面 $\text{BZOJ}$间接权限题 洛谷的弱化版 题解 三点距离两两相等要满足以下条件: 有一个相同的$\text{LCA}$ 所以如果存在一个点,使得另外两个点在它子树中,距离为$d$,且$ ...

  8. wannafly 17D 01序列2

    水题. 假设有两个二进制数a,b,c=a+b(a,b拼接起来) 那么显然如果b长度为偶数\(c\mod 3=(b\mod 3+a\mod 3)\mod 3\) 否则\(c\mod 3=(b\mod 3 ...

  9. LUOGU3278 [SCOI2013]多项式的运算

    一次AC.吼啊. BZOJ权限QAQ 区间加和乘打标记,区间乘x就是区间移动,平衡树解决即可. 查询直接遍历一遍然后算出来 // It is made by XZZ #include<cstdi ...

  10. sqlyog 可视化查看数据库关系并创建外键

    + 一个架构设计器,把表拖进来即可查看数据库关系 如果要建立外键,需要在两个要被建立的外键之间进行操作(经过验证不需要都为主键),然后从用鼠标把子外键拖到父外键中,就可以关联上了. 参考: https ...