Fabric V1 交易的生命周期

Fabric v1 Transaction Lifecycle
1 Client application creates tran proposeal (chinacode function and arguments) and sends to endorsing peer(s).
2 Endorsing peer executes chinacode,generates ReadWriteSet based on keys that were read and written.
3 Endorsing peer(s) send back proposal response(including ReadWriteSet) to client application
4 Client application may or may not submit as a transaction to ordering service.Transaction includes ReadWriteSet from proposal response
5 If client application submitted as transaction,ordering service packages the transaction into a block of ordered transactions.
6 Blocks are delivered to committing peers(including the original endorsing peers).
7 Committing peer
-runs validation logic(VSCC to check endorsement policy,and MVCC to check that ReadSet versions haven't changed in State DB since simulation time)
-indicates in block which trans are valid and invalid.
-commits block to blockchina on file system,and commits valid transactions within block to state database 'atomically'
-fires events so that application client listening via SDK knows which transactions were valid/invalid
1 、客户端应用 创建一个交易标的(链码方法和参数) 并且发送到认证节点;
2、 认证节点执行链码,生成基于密钥的读写设置操作。
3、 认证节点返回标的信息(包括读写设置)给客户端,
4、 客户端可以采取 提交或者不提交交易到订阅服务。交易信息包括 从上述返回答复的读写设置。
5、如果客户端提交了交易,订阅服务将交易包装成一个交易块。
6、将快传递给提交者节点(包括原始认证节点)。
7、提交节点
-运行校验逻辑(VSSCC 校验认可担保协议,MVCC去校验读写版本时还没有改变区域数据库直到模拟时间)
-指示那些块是有效还是无效
-提交块到区块链的文件系统,提交有效的交易到块里从而自动改变数据库
-触发事件,以便应用程序侦听器通过SDK知道哪些事务是有效的/无效的
Fabric V1 交易的生命周期的更多相关文章
- Facebook libra开发者文档- 3 -Life of a Transaction交易生命周期
Life of a Transaction交易的生命周期 https://developers.libra.org/docs/life-of-a-transaction 为了更深入地了解Libra交易 ...
- Facebook币Libra学习-2.交易生命周期
交易生命周期 为了更加深入的理解Libra的交易生命周期,我们将跟随一个交易的全过程,从其被提交到Libra validator始,直至其被添加到区块链上止.我们将“放大”来看每个validator逻 ...
- Libra教程之:Transaction的生命周期
文章目录 Transaction的生命周期 提交一个Transaction 交易入链的详细过程 接收Transaction 和其他Validators共享这个Transaction 区块Proposi ...
- MVC网址路由与生命周期
这篇写得比较详细,所以我收藏一下. 转载自: http://www.cnblogs.com/Eleanore/archive/2012/11/23/2783061.html 一.网址路由 1.1 比 ...
- [转]JAVA虚拟机的生命周期
JAVA虚拟机体系结构 JAVA虚拟机的生命周期 一个运行时的Java虚拟机实例的天职是:负责运行一个java程序.当启动一个Java程序时,一个虚拟机实例也就诞生了.当该程序关闭退出,这个虚拟机实例 ...
- Android开发--Activity生命周期回顾理解
Activity和Servlet一样,都用了回调机制.我们通过类比servlet来学习Activity.当一个servlet开发出来之后,该servlet运行于Web服务器中.服务器何时创建servl ...
- 从实践谈iOS生命周期
从实践谈iOS生命周期 个人感觉生命周期无论在Android,还是iOS都是很重要的概念,因为在每个声明周期的状态下我们可以做很多预加载或者处理的操作.因此在这里主要总结下ViewController ...
- JVM 类的生命周期、类加载器
类的加载.连接与初始化 • 1. 加载:查找并加载类的二进制数据 • 2. 连接 – 2.1 验证:确保被加载的类的正确性 ...
- django请求生命周期,FBV和CBV,ORM拾遗,Git
一.django 请求生命周期 流程图: 1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post, ...
随机推荐
- alias别名使用
rhel系列的别名使用,方便操作! 功能说明:设置指令的别名.语 法:alias [别名] = [指令名称]参 数 :若不加任何参数,则列出目前所有的别名设置.举 例 :ermao@lo ...
- JAVA微信扫码支付模式二功能实现完整例子
概述 本例子实现微信扫码支付模式二的支付功能,应用场景是,web网站微信扫码支付.实现从点击付费按钮.到弹出二维码.到用户用手机微信扫码支付.到手机上用户付费成功.web网页再自动调整到支付成功后的页 ...
- Anroid 4大组件之android.app.Service
android.app.Service A Service is an application component representing either an application's desir ...
- Swift下的基于UIView的位置属性扩展
一个比较简单能满足大部分需求的extensin,如下: swift 的基于UIView的位置属性 包含: 上下左右:left.right.top.botom 高宽:height.width 中心点:c ...
- linux解决“XXX is not in the sudoers file”错误
问题:我想在我的Linux系统上使用sudo来运行一些特权命令,然而当我试图这么做时,我却得到了"[我的用户名] is not in the sudoers file. This incid ...
- Comparable 与 Comparator
Comparable & Comparator 都是用来实现集合中元素的比较.排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序 ...
- 如何使用Git上传项目代码到github
这是我第一次应用git,以下仅供git的初学者参考. github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开.这对于一般人来说 ...
- python对文件操作
python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目 ...
- NET MVC全局异常处理(一) 【转载】网站遭遇DDoS攻击怎么办 使用 HttpRequester 更方便的发起 HTTP 请求 C#文件流。 Url的Base64编码以及解码 C#计算字符串长度,汉字算两个字符 2019周笔记(2.18-2.23) Mysql语句中当前时间不能直接使用C#中的Date.Now传输 Mysql中Count函数的正确使用
NET MVC全局异常处理(一) 目录 .NET MVC全局异常处理 IIS配置 静态错误页配置 .NET错误页配置 程序设置 全局异常配置 .NET MVC全局异常处理 一直知道有.NET有相关 ...
- thinkphp导航高亮的方法
因为引入了公共的 header.html,所以需要使用 js来实现向 li 加入active的高亮属性,这里我通过url地址和href的地址进行判断 // 这里对当前页面导航高亮 $(function ...