一、申请交易

角色

1. Endorser

背书节点 ,都是peer节点,E0,E1,E2。

一定要部署链码。

2. Commiter

提交节点,记账节点,没有背书功能,都是peer节点,P3,P4

可以没有部署和执行任何链码。

3. Ledger

账本,保存所有交易信息。

每个节点都有一个自己的账本。

4. Application

客户端

5. Orderer

排序节点

可以是一个分布式的

6. Smart Contract(Chain code)

智能合约,链码

7. Endorsement Policy

背书策略

二、背书节点执行交易

1. 背书节点在收到交易提案后会进行一些验证

  • § 交易提案的格式是否正确
  • § ·交易是否提交过(重复攻击保护)
  • § ·交易签名有效(通过MSP);
  • § ·交易提案的提交者在当前通道上是否已授权有写权限。

2. 验证通过后

背书节点会根据当前账本数据模拟执行链码中的业务逻辑并生成读写集(RwSet),其中包含响应值、读写集等。

在模拟执行时账本数据不会更新。

而后背书 节点对这些读写集进行签名成为提案响应 (Proposal Response),然后返回给应用程 序

三、客户端收到响应

四、客户端发送交易给排序节点

构造交易请求并发送给排序服务节点

应用程序接收到所有的背书节点签名后,根据背书签名调用SDK生成交易,发送给排序服务节点。

生成交易的过程比较简单,确认所有的背书节点的执行结果完全一致,再将交易提案、提 案响应和背书签名打包生成交易

五、Orderer排序并转发交易

1. 排序服务节点以对交易进行排序并生成区块

排序服务不读取交易的内容,如果在生成交易信封内容的时候伪造了交易模拟执行的结果, 排序服务节点也不会发现。

但会在最终的普通peer节点收到区块,交易验证阶段,校验出来并标记为无效交易。

2. 排序服务节点以广播发给各通道的锚点peer

六、记账节点验证交易

记账节点验证区块内容并写入区块

1.交易数据的验证

  • § 是否为合法的交易:交易格式是否正确,是否有合法的签名,交易内容是否被篡改;
  • § ·记账节点是否加入了这个通道。
  • § 基本的验证通过以后会提交给VSCC进行背书策略的验证。

2. 基于状态数据的验证和MVCC检查

3. 无效交易的处理

记录在区块中,但是不执行

七、通知客户端

Hyperledger Fabric教程(12)-- 交易过程相关推荐

  1. Hyperledger Fabric Rest API服务开发教程【含源码】

    Hyperledger Fabric Rest API服务开发教程[含源码] Hyperledger Fabric 提供了软件开发包/SDK以帮助开发者访问fabric网络 和部署在网络上的链码,但是 ...

  2. Hyperledger Fabric 1.4 Kafka集群部署教程

    Hyperledger Fabric 1.4 Kafka集群部署教程 作者:区块链教程 时间:2019/12/08 10:36 标签:Docker ComposeDockerYMLHyperledge ...

  3. Hyperledger Fabric 2.0 官方文档中文版 第6章 教程(上)

    Hyperledger Fabric 2.0 官方文档中文版第6章 教程上 总目录 6.教程(上) 将智能合约部署到通道 启动网络 Logspout设置 打包智能合约 安装链码包 批准链码定义 将链码 ...

  4. Hyperledger Fabric 1.3 官方文档翻译(五)教程 (Tutorials) - 5.2 构建你的第一个网络 (Building Your First Network)

    文章目录 构建你的第一个网络(Building Your First Network) 安装先决条件(Install prerequisites) 想要现在运行吗(Want to run it now ...

  5. Hyperledger Fabric构建第一个网络(官方教程)

    前言 官方英文:Building Your First Network 中文:构建第一个fabric网络 感谢中文翻译!不然这么长的英文以及各种名词解释实在头疼.有一些和官方英文不一样的地方我已经按官 ...

  6. Hyperledger Fabric Java SDK最新教程

    Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK ...

  7. linux使用fabric教程,Hyperledger fabric在Linux下的环境搭建

    本文介绍如何在Ubuntu和CentOS系统下安装部署fabric环境,并在单机上运行一个示例启动fabric网络. 一.Ubuntu cURLsudo apt-get install curl Gi ...

  8. Hyperledger Fabric 2.0 官方文档中文版 第6章 教程(下)

    Hyperledger Fabric 2.0 官方文档中文版 第6章 教程下 总目录 6.教程(下) 使用CouchDB 为什么使用CouchDB? 在Hyperledger Fabric中启用Cou ...

  9. Hyperledger Fabric 官网翻译入门教程--之关键概念(Hyperledger Fabric 模型)

    英文地址:http://hyperledger-fabric.readthedocs.io/en/latest/fabric_model.html Hyperledger Fabric Model/ ...

  10. hyperledger fabric chaincode 教程二

    # 下面将自己写好的chaincode部署并且实例化到fabric: ## 首先把写好的chaincode copy 到 cli ``` 命令参考:docker cp [OPTIONS] SRC_PA ...

最新文章

  1. strcpy与strncpy的区别
  2. Centos7常用操作
  3. rms 公式 有效值_怎样求信号中的RMS值?
  4. 【收集】EJB3.0的各应用服务器提供的JNDI接口
  5. npm升级依赖包_Taro跨端开发之依赖管理
  6. 招银网络笔试java_最新!!招银网络科技Java面经,整理附答案
  7. 宅家办公不宅心,送3本技术好书
  8. 【Swing/文本组件】定义自动换行的文本域
  9. 代理通信设计模式 - 代理模式、桥接模式、中介者模式
  10. 西南林业大学计算机考研,西南林业大学考研难吗
  11. mcgscom口针脚定义_触摸屏制作的速成篇(MCGS入门篇)
  12. Matlab的自相关函数corr
  13. js 文件下载请求两种方式
  14. 跳跳棋(国家集训队,LCA,洛谷P1852,BZOJ[2144])
  15. css选择最后一个元素
  16. 计算机专业背景的大学,不要求专业背景的计算机专业!
  17. matlab_格兰杰因果关系检验
  18. 14nm服务器芯片,Intel最后一代14nm服务器平台仍然杳无踪影 全新10nm Ice Lake具体特性一直未公布...
  19. 母牛python_使用Python解决母牛问题
  20. 简述RC低通滤波原理

热门文章

  1. 用树状数组解决求统计问题:hdu2492
  2. 删除隐藏网卡(本机IP地址被占用)
  3. 2016保持谦卑,继续前行
  4. smack4中文文档
  5. char 数组和 int 之间转化
  6. POJ 1220 高精度进制转换
  7. SilverLight学习之基本图形
  8. 怎样区分现代艺术和幼儿涂鸦
  9. 拓端tecdat|R语言通过伽玛与对数正态分布假设下的广义线性模型对大额索赔进行评估预测
  10. 拓端tecdat|windows中用命令行执行R语言命令