首页 > 编程语言 >Hyperledger Fabric出块配置详解

Hyperledger Fabric出块配置详解

时间:2024-02-27 19:47:53浏览次数:31  
标签:区块 Fabric messages bytes batch max Hyperledger 出块

Hyperledger Fabric的出块主要是Orderer节点负责,出块配置位于创世区块中,支持定时出块、达到一定交易数出块两种条件。出块配置位于configtx.yaml中,修改出块配置后需要重新生成创世区块。

相关参数

若需要修改fabric的出块机制,则需要调整以下配置参数:

  • BatchTimeout:出块超时时间,最长出块间隔(但缓存中必须含有数据才会出块,否则无法出块,即fabric不会强行产生空块)
  • MaxMessageCount:区块最大交易数量,当交易数量达到此参数后,会立即出块。
  • PreferredMaxBytes:区块首选字节数,正常情况下一个区块中的交易数据大小会小于此参数。
  • AbsoluteMaxBytes:区块最大字节数:所有情况下区块的最大允许字节数,超过此参数的交易将无法打包,直接退回。

出块机制和条件

基于上述指标,orderer会在两种条件下打包区块:

1.定时触发:维护以 BatchTimeout 为间隔的闹钟,定时检测缓存中是否还有未出块的交易,如果有则打包出块;

2.新交易触发:当满足条件的新交易与缓存中的交易大小之和与 PreferredMaxBytes 进行比较,超过此限制则将缓存中的交易进行打包,新交易进入缓存。或者交易数目超过MaxMessageCount,也会进行打包。

默认参数配置

fabric的reslease-2.0分支中默认出块配置如下:

    # Batch Timeout: The amount of time to wait before creating a batch.
    BatchTimeout: 2s

    # Batch Size: Controls the number of messages batched into a block.
    # The orderer views messages opaquely, but typically, messages may
    # be considered to be Fabric transactions.  The 'batch' is the group
    # of messages in the 'data' field of the block.  Blocks will be a few kb
    # larger than the batch size, when signatures, hashes, and other metadata
    # is applied.
    BatchSize:

        # Max Message Count: The maximum number of messages to permit in a
        # batch.  No block will contain more than this number of messages.
        MaxMessageCount: 500

        # Absolute Max Bytes: The absolute maximum number of bytes allowed for
        # the serialized messages in a batch. The maximum block size is this value
        # plus the size of the associated metadata (usually a few KB depending
        # upon the size of the signing identities). Any transaction larger than
        # this value will be rejected by ordering. If the "kafka" OrdererType is
        # selected, set 'message.max.bytes' and 'replica.fetch.max.bytes' on
        # the Kafka brokers to a value that is larger than this one.
        AbsoluteMaxBytes: 10 MB

        # Preferred Max Bytes: The preferred maximum number of bytes allowed
        # for the serialized messages in a batch. Roughly, this field may be considered
        # the best effort maximum size of a batch. A batch will fill with messages
        # until this size is reached (or the max message count, or batch timeout is
        # exceeded).  If adding a new message to the batch would cause the batch to
        # exceed the preferred max bytes, then the current batch is closed and written
        # to a block, and a new batch containing the new message is created.  If a
        # message larger than the preferred max bytes is received, then its batch
        # will contain only that message.  Because messages may be larger than
        # preferred max bytes (up to AbsoluteMaxBytes), some batches may exceed
        # the preferred max bytes, but will always contain exactly one transaction.
        PreferredMaxBytes: 2 MB

标签:区块,Fabric,messages,bytes,batch,max,Hyperledger,出块
From: https://www.cnblogs.com/JasonCeng/p/18037682

相关文章

  • Minecraft Fabric模组开发时遇到报错-Failed download after 3 attempts
    MinecraftFabric模组开发时遇到报错-Faileddownloadafter3attempts遇到的主要报错如下(当然以下只是一部分报错)Aproblemoccurredconfiguringrootproject'tuuorial_mod'.Failedtonotifyprojectevaluationlistener.FailedtosetupMinecraft,java.io.Unchecke......
  • 产品发布|Aloudata AIR 国内首个 Data Fabric 逻辑数据平台
    Aloudata AIR作为国内首个 Data Fabric 逻辑数据平台,通过自研的数据虚拟化技术,轻松实现多源异构数据的集成整合和自适应加速,为 Data Fabric 数据架构理念在国内的实践落地开辟了清晰的路径。传统“搭湖建仓”遇上数据管理“新挑战”得益于互联网和移动互联网的发展,以及数字......
  • Microsoft 365 解决方案:小议Microsoft Fabric和如何注册试用版?
    51CTO博客链接:https://blog.51cto.com/u_13637423MicrosoftFabric是面向企业的一体化分析解决方案,旨在将所有数据和分析工具整合到单一的体验中。它涵盖了从数据移动到数据科学、实时分析和商业智能的所有内容,提供一套全面的服务,包括数据湖、数据工程和数据集成。MicrosoftFabri......
  • Aloudata 两项 Data Fabric 最佳实践获评 2023 信通院大数据“星河”案例标杆案例
    12 月 20 日,由中国信息通信研究院和中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)组织的第七届大数据“星河(Galaxy)”案例征集结果正式发布。Aloudata (大应科技)脱颖而出,联合标杆客户招商银行共同申报两项 Data Fabric 最佳实践成果双双获评“标杆案例”。其中《招......
  • Multi Fabrics/Admin - How to add the second controller to end device.
    HardwareRequired•  RaspberryPi4•  2xSilabsThunderboardSense2(TBS2--BRD4166A)•  AUbuntuLinuxdevelopmentenvironmentoraVirtualMachineused tobuildtheMatterenddevicefirmware.ConnectionsRequired•  Ethernet......
  • java版本的智能合约部署到fabric区块链测试网络
    开发智能合约并进行部署和更新操作在之前的文章中我们可以成功启动测试网络并进行了相关测试,现在我们需要进行智能合约的编写操作,并将其部署到测试网络中进行相关测试。本节智能合约代码采取Java语言进行编写,代码及相关部署参考(https://www.bilibili.com/video/BV1DR4y1M74B/?spm......
  • HyperLedger Fabric 1.2 超级账本简介(5.2)
    超级账本(Hyperledger)是推动区块链跨行业应用的开源项目的总称,组织成员可以发起新的区块链项目,加入到超级账本项目(Hyperledger)中,但需要遵循Hyperledger的生命周期。    Hyperledger的生命周期分为五个阶段,分别为Proposal(提案)、Incubation(孵化)、Active(活跃)、Deprecated(过时)、......
  • HyperLedger Fabric 1.2 超级账本组织(5.3)
    超级账本组织分为TSC(技术指导委员会)、GoverningBoard(董事会成员)、LFStaffs(工作人员)三个组织,组织架构图如下: TSC:技术指导委会员,主导社区的开发工作,下设多个工作组,每个工作组负责具体的项目进行开发;GoverningBoard:董事会,负责决策社区的所有事物,对社区成员负责;LFStaffs:工......
  • HyperLedger Fabric 1.2 区块链技术形成(1.2)
    在比特币诞生之时,没有区块链技术概念,当人们看到比特币在无中心干预的前提下,还能安全、可靠的运行,比特币网络打开了人们的想象空间;技术专家们开始研究比特币的底层技术,并抽象提取出来,形成区块链技术,或者称分布式账本技术。   区块链技术:简称BT(Blockchaintechnology),也称为分......
  • HyperLedger Fabric 1.2 区块链技术定义(2.1)
    区块链技术指使用点对点传输、共识机制、加密算法等技术,保证分布式数据库区块写入链中数据的一致性,达到去中心化和不可篡改的目的。    区块链就是一种特殊的分布式数据库,使用现有的各种成熟的技术,把各种技术集成在一起,实现多方共识、去中心化、分布式和不可篡改等技术特点......