1. Fabric 架构

总体架构核心部分由成员管理(Membership services)、共识服务(Consensus services)和智能合约(Chain-code Services)三部分, 加上安全和加密服务(Security and Crypto Services)贯穿于其他各个组件,应用端通过接口(APIs、Events、SDKs)调用身份(IDENTITY)、账本(LEDGER)、交易(TRANSACTIONS)、智能合约等信息,架构图如下:

详细解释如下:

1)、成员管理(Membership services):提供成员服务功能,包括注册、登记、申请证书等功能;考虑到商业应用对安全、隐私、监管、审计和性能的要求,节点、成员只有获得证书才能加入到区块链网络中,在1.0版本以后单独由可插拔的Fabric CA组件来处理。
2)、共识服务(Consensus services):负责分布式账本的计算和存储(Distrbuted Ledger)、节点间的共识服务(Ordering Service)、背书验证管理(Endorsement Validation)以及节点间的网络传输协议(Network Protocol)功能的实现,是区块链的核心组成部分,为区块链的主体功能提供了底层支撑。
3)、智能合约(Chain-code Services):智能合约(SMART CONTRACT)称为链码(chaincode), 是基于标准的一段代码,实现具体业务逻辑。链码和底层账本是解偶的,链码的更新不影响到原有的数据。链码目前官方提供可以使用GO、Java、Node.js语言来编写,通过Docker容器来运行chaincode,安装和实例化后通过gRPC与同一通道内的Peer节点进行连接。
4)、安全和加密服务(Security and Crypto Services):节点或成员必须被许可才能进入网络,通过证书、加密和签名等手段保证安全,通过多通道隔离功能,保证只有参与交易的节点能访问到数据,其他的节点看不到,真正实现了逻辑与数据的分离。
5)、接口(APIs, Events, SDKs):提供API方式给第三方应用调用,方便二次开发,目前已提供Node.js和Java SDK两种语言接口;可以通过SDK或CLI方式进行安装、测试链码,还可以查询交易状态和数据等功能,同时通过Events监听区块链网络中发现的事件,方便第三应用系统调用和处理。

2.交易流程:

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

Fabric交易流程图如下所示:

交易过程详细流程:
     1) 应用程序客户端通过SDK调用证书服务(CA)服务,进行注册和登记,并获取身份证书;
     2) 应用程序客户端通过SDK向区块链网络发起一个交易提案(Proposal),交易提案把带有本次交易要调用的合约标识、合约方法和参数信息以及客户端签名等信息发送给背书(Endorser)节点。

3) 背书(Endorser)节点收到交易提案(Proposal)后,验证签名并确定提交者是否有权执行操作,同时根据背书策略模拟执行智能合约,并将结果及其各自的CA证书签名发还给应用程序客户端。

4) 应用程序客户端收到背书(Endorser)节点返回的信息后,判断提案结果是否一致,以及是否参照指定的背书策略执行,如果没有足够的背书,则中止处理;否则,应用程序客户端把数据打包到一起组成一个交易并签名,发送给Orderers(排序服务节点)。
     5) Orderers对接收到的交易进行共识排序,然后按照区块生成策略,将一批交易打包到一起,生成新的区块,发送给提交(Committer)节点;
     6) 提交(Committer)节点收到区块后,会对区块中的每笔交易进行校验,检查交易依赖的输入输出是否符合当前区块链的状态,完成后将区块追加到本地的区块链,并修改世界状态。

区块链Fabric 技术架构和交易流程相关推荐

  1. 区块链Fabric技术在托管业务中的运用初探

    2019独角兽企业重金招聘Python工程师标准>>> 区块链Fabric技术在托管业务中的运用初探 什么是Fabric技术 HyperLedger是IBM.Intel等多家公司正开 ...

  2. 笔记-信息化与系统集成技术-区块链的技术架构

    区块链技术的模型是由自下而上的数据层.网络层.共识层.激励层.合约层和应用层组成. 第一层"数据层",封装了底层数据区块的链式结构,以及相关的非对称公私钥数据加密技术和时间戳等技术 ...

  3. 专注区块链底层技术突破,「复杂美」用技术开源推动产业未来

    时至今日,区块链已不再是一个陌生事物.公链.STO.去中心化等概念一度冲上行业热词,政府.企业业务与区块链的融合已收到良好实效. 国家发改委近日举行的新闻发布会上,区块链技术正式被纳入「新基建」领域的 ...

  4. 区块链学习——区块链的技术栈

    摘要 我在区块链学习的上一篇博文,链接:区块链学习--区块链技术理念与工作流程中,简单介绍了区块链的技术理念以及工作流程,本文我将继续介绍区块链技术栈. 我们知道,区块链本身只是一个数据的记录格式,就 ...

  5. 区块链架构与交易流程(fabric1.0)

    区块链架构与交易流程 区块链系统架构 节点 网络拓扑 交易流程 1. 提交交易提案 2. 模拟执行提案并签名 3. 返回模拟执行结果 4. 提交交易 5. 交易排序并结块 6. 广播区块 7. 保存区 ...

  6. 【区块链】从一笔交易看区块链运作流程

    出处 一笔交易从产生到完成的流程 搞懂区块链运作原理,可先区分出交易(Transaction)与区块(Block)两个部分,这里我们分别从区块链中一笔交易产生到完成验证的流程,以及图解一个区块,来了解 ...

  7. BlockChain:Python一步一步实现(流程最清楚)区块链底层技术流程图(理解一目了然,值得收藏)

    BlockChain:Python一步一步实现(流程最清楚)区块链底层技术流程图(理解一目了然,值得收藏) 导读 基于Python编程,实现一步一步实现(流程最清楚)区块链底层技术流程图,理解一目了然 ...

  8. 区块链关键技术研究进展

    摘要 区块链是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储.难以篡改.防止抵赖的记账技术,也称为分布式账本技术.近年来,区块链技术的发展对社会产生了重要的影响.本文介绍近年来 ...

  9. 超详细的【区块链】技术介绍整理(七千余字+九大板块)

    区块链:详细介绍 一.什么是区块链(Blockchain)? 1.定义 2.从不同视角认识区块链 3.用生活中的例子理解区块链 二.区块链的来源 三.区块链的发展阶段 1.酝酿期 2.萌芽期 3.发展 ...

最新文章

  1. 查看LINUX发行版的名称及其版本号
  2. 如何通俗的理解面向对象编程
  3. 手把手教你用Python玩转时序数据,从采样、预测到聚类
  4. 解决在Yii2中使用PHPExcel出现Class ‘app\controllers\PHPExcel‘ not found的问题
  5. laplacian算子的运用
  6. This 在 C# 中的含义
  7. 需求分析的20条法则
  8. 专业音频如何把电平转换成dbu_这是我见过最细致的音频系统增益设置指南,跟着学起来!...
  9. 【编程练习】正整数分解为几个连续自然数之和
  10. LFS、BLFS、ALFS、HLFS的区别详解
  11. 【Elasticsearch】Elasticsearch 通信模块的分析
  12. K8S_Google工作笔记0003---K8S核心概念
  13. java注解获取参数_JAVA 自定义注解及参数获取 | 学步园
  14. 安卓使用videoview进行音频、视频播放,及播放控制
  15. 计算机usb端口没反应,usb接口没反应,小编教你电脑usb接口没反应怎么解决
  16. android常用刷机指令,【高级技术】Android刷机常用adb指令集合
  17. 局域网共享问题解决方案----日常经验总结
  18. h5调用第三方app (项目开发思路)
  19. 665. Non-decreasing Array
  20. 龙迅LT6911GX

热门文章

  1. 继电器开关性能简要对比
  2. 每个糙爷们背后都有颗柔软的心
  3. LWP 与 WEB 的基本使用
  4. JS把加号当成连接符
  5. 小红书怎么推广笔记?小红书推广笔记有什么用?
  6. 联想服务器td340安装精简版win10
  7. java 秒表_JAVA计时器秒表程序代码
  8. Java使用GZIP进行压缩和解压缩(GZIPOutputStream,GZIPInputStream)
  9. PT100热电阻及K型热电偶
  10. Switch可以用string做参数吗