所有交易在发送给 Committer 进行验证接受之前,需要先经过排序服务进行全局排序。

在目前架构中,排序服务的功能被抽取出来,作为单独的 fabric-orderer 模块来实现,代码主要在 fabric/orderer 目录下。

下面以 Kafka 作为共识插件为例,讲解 Orderer 节点的核心过程。

工作原理

Orderer 节点(Ordering Service Node,OSN)在网络中起到代理作用,多个 Orderer 节点会连接到 Kafka 集群,利用 Kafka 的共识功能,完成对网络中交易的排序和打包成区块的工作。

Fabric 网络提供了多通道特性,为了支持这一特性,同时保障每个 Orderer 节点上数据的一致性,排序服务进行了一些特殊设计。

对于每个通道,Orderer 将其映射到 Kafka 集群中的一个 topic (topic 名称与 channelID 相同)上。由于 Orderer 目前并没有使用 Kafka Topic 的多分区负载均衡特性,默认每个 topic 只创建了一个分区(0 号分区)。

此外,Orderer 还在本地维护了针对每个通道的账本(区块链)结构,其中每个区块包括了一组排序后的交易消息,并且被分割为独立区块。

核心过程

核心过程如下所示。

  • 客户端(client)通过 gRPC 连接发送交易信息到 Orderer 节点(OSN)的 Broadcast() 接口。
  • Orderer 节点收到请求后,提取消息进行解析(parse)、检查(Validation),通过检查后封装为 Kafka 消息,通过 Produce 接口发送到 Kakfa 集群对应的 topic 分区中。当前消息数达到 BatchSize.MaxMessageCount 或消息尺寸过大,或超时时间达到 BatchTimeout,则发送分块消息 TTC-X 到 Kafka。
  • Kafka 集群维护多个 topic 分区。Kakfa 通过共识算法来确保写入到分区后的消息的一致性。即一旦写入分区,任何 Orderer 节点看到的都是相同的消息队列。
  • Orderer 节点在启动后,还默认对本地账本对应的 Kafka 分区数据进行监听,不断从 Kafka 拉取(Consume)新的交易消息,并对消息进行处理。满足一定策略情况下(收到 TTX-C 或配置消息)还会将消息打包为区块。

分块决策

收到分块消息 TTC-X,或收到配置交易,则切分消息为区块。

Hyperledger Fabric 排序服务核心原理和工作过程

https://blog.csdn.net/yeasy/article/details/78798506

区块链 Hyperledger fabric 排序服务Kafka相关推荐

  1. Hyperledger Fabric 排序服务核心原理和工作过程

    Hyperledger 源码分析之 Fabric 排序服务在超级账本 Fabric 网络中起到十分核心的作用.所有交易在发送给 Committer 进行验证接受之前,需要先经过排序服务进行全局排序. ...

  2. 基于区块链/Hyperledger Fabric的商品交易溯源系统搭建步骤

    原项目链接:https://github.com/togettoyou/fabric-realty 此项目链接:https://gitee.com/real__cool/fabdeal 演示链接:ht ...

  3. 区块链 HyperLedger Fabric安装

    前提条件 centos 7.4 64位 安装docker并配置阿里云加速器 安装docker compose 安装golang 由于被禁的关系,是没有办法直接访问golang.org网站的, 不过国内 ...

  4. 基于区块链/Hyperledger Fabric的商品交易溯源系统开发模式搭建

    搭建该项目的开发模式主要有链码的开发模式和前后端的开发模式. 以下内容暂时没有核验,可能有bug 链码开发模式 窗口1:开启dev组件 cd /home/real/project/fabric-sam ...

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

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

  6. 了区块链开放平台baas_区块链开放平台 BaaS 系统开发,区块链智能合约撰写服务...

    区块链开放平台 BaaS 系统开发,区块链智能合约撰写服务 什么是区块链即服务? 区块链即服务是一种独特的经济模型,允许消费者使用基于云的服务来开发,使用和托管其区块链应用,功能和智能合约.  源中瑞 ...

  7. 万向区块链“汽车供应链物流服务平台”获评“2018金融区块链创新应用优秀案例”...

    点击上方"蓝色字"可关注我们! 作者:万向区块链 近日,在由中国信通院联合中国支付清算协会金融科技专业委员会发起的"2018金融区块链创新应用优秀案例评选活动" ...

  8. 技术解读|马云见证!蚂蚁金服推出全球首个区块链跨境汇款服务

    摘要: 小蚂蚁说: 区块链的应用场景迎来新突破!6月25日,全球首个基于区块链的电子钱包跨境汇款服务在香港上线.港版支付宝AlipayHK的用户可以通过区块链技术向菲律宾钱包Gcash汇款. 第一笔汇 ...

  9. 云周刊】第177期:马云见证!蚂蚁金服推出全球首个区块链跨境汇款服务

    阅读全文请点击 本期头条 技术解读|马云见证!蚂蚁金服推出全球首个区块链跨境汇款服务 区块链的应用场景迎来新突破!6月25日,全球首个基于区块链的电子钱包跨境汇款服务在香港上线.港版支付宝Alipay ...

  10. 区块链+汽车供应链物流服务平台“运链盟”正式上线,已有融资款发放

    点击上方"蓝色字"可关注我们! 作者:万向区块链 2018年11月30日,上海万向区块链股份公司(以下简称"万向区块链").中都物流有限公司(以下简称" ...

最新文章

  1. 第四周项目三-随机数函数应用于游戏(小学生算术能力测试系统)
  2. python如何调用图片-python调用图片
  3. insert ... on duplicate key update产生death lock死锁原理
  4. oracle 48小时内_缺血性脑梗死后48小时内使用阿替普酶能够降低脑损伤程度
  5. backtype.storm.generated.InvalidTopologyException:null问题的解决
  6. linux下卸载 dev sd*下硬盘,Linux 磁盘管理(示例代码)
  7. (46)HTML网页开发流程
  8. django 学习-13 Django文件上传
  9. CSDN博客——修改字体、字号与颜色
  10. 数学建模--因子分析模型
  11. Linux下安装vim编辑器
  12. 微信语音技术原理_语音控制智能家居系统的实现过程和技术详解
  13. iOS 日本日历、佛教日历取date的问题及公历转换,时间戳获取不准确
  14. SQL查询执行某条SQL语句所花费的时间
  15. ​万邦医药在创业板过会:上半年收入约1亿元,陶春蕾母子为实控人​
  16. redis五种类型的经典使用场景
  17. 【Mac】快捷键锁屏
  18. app 嵌套h5页面问题
  19. 论架构师的自我修养--8荣
  20. Visual Studio 6.0 安装失败 解决办法

热门文章

  1. 【超详细转】VMware 9 安装 Mac OS X 10.8 Mountain Lion 图文全程
  2. [转帖]onInterceptTouchEvent和onTouchEvent调用时序
  3. ios手机Safari本地服务连不上
  4. kickstart-F
  5. RMAN 数据库克隆文件位置转换方法
  6. 软件工程专业学python_笨办法学Python(0)
  7. rpa打开浏览器_免费开源RPA财务机器人Taskt入门
  8. 拓端tecdat|用R对Twitter用户的编程语言语义分析
  9. 拓端tecdat|R语言基于ARMA-GARCH过程的VaR拟合和预测
  10. (2) python 使用pd.read_excel 读取excel时,选取某一列为索引