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. 20155314 2016-2017-2 《Java程序设计》实验二 Java面向对象程序设计

    20155314 2016-2017-2 <Java程序设计>实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UM ...

  2. django自带的登录验证功能

    django自带的验证机制 from django.shortcuts import render, redirect from django.contrib.auth import authenti ...

  3. java xml文件

    xml: 是可扩展的标签语言.其中标签可以自定义. 作用是存储数据,即配置文件. 书写规范: 1:区分大小写,html不区分. 2:应该有根标签(类似html的<html>标签) 3:标签 ...

  4. 论文笔记 M. Saquib Sarfraz_Pose-Sensitive Embedding_re-ranking_2018_CVPR

    1. 摘要 作者使用一个pose-sensitive-embddding,把姿态的粗糙.精细信息结合在一起应用到模型中. 用一个新的re-ranking方法,不需要重新计算新的ranking列表,是一 ...

  5. LeetCode429. N-ary Tree Level Order Traversal

    题目来源:429. N-ary Tree Level Order Traversal https://leetcode.com/problems/n-ary-tree-level-order-trav ...

  6. centos7 支持中文显示(转)

    centos7 支持中文显示 - kingleoric - 博客园https://www.cnblogs.com/kingleoric/p/7517753.html http://www.linuxi ...

  7. 视频直播时的QoS策略

    一.如何判断当前的网络状况 可以以发送一帧视频数据的时间为依据,判断当前网络拥塞情况.    网络中出现丢包和抖动,导致接收端接收数据超时,会激发发送端数据重传,重传机制本身挤占网络带宽,导致send ...

  8. linux学习第十七天(NFS、AUTOFS文件共享配置,DNS配置)

    一.NFS(网络文件系统,实现linux系统上文件共享) 服务器配置 yum install nfs-utils  (安装NFS软件包) iptables -F  (清空防火墙) service ip ...

  9. git更新远程仓库报错

    hint: Updates were rejected because the tip of your current branch is behind hint: its remote counte ...

  10. xgboost: 速度快效果好的boosting模型

    转自:http://cos.name/2015/03/xgboost/ 本文作者:何通,SupStat Inc(总部在纽约,中国分部为北京数博思达信息科技有限公司)数据科学家,加拿大Simon Fra ...