gpt4 book ai didi

node.js - Hyperledger Fabric - Fabcar 性能

转载 作者:行者123 更新时间:2023-12-02 21:17:57 25 4
gpt4 key购买 nike

我正在尝试使用 Hyperledger Fabric 运行一个项目,其设置类似于 Fabcar 示例。

我对提交交易所需的大量时间感到惊讶。

为了使其简单且完全可重现,我测量了在实际 Fabcar 项目上提交事务 createCar 所需的时间。设置网络 (startFabric.sh javascript) 并注册管理员和用户后,我运行 invoke.js 脚本。 整个脚本大约需要2.5秒!

据我所知,运行合约只需要几毫秒。发送交易提案也是如此。它主要花费时间让 eventHandler 监听并等待事件(在 transaction.js 库中)。

有没有办法加快这个过程?我期望每秒能够提交几笔交易。

最佳答案

简短回答:减少 configtx.yaml 中的 BatchTimeout

长答案:

如果您只运行一个查询,就像您所描述的那样,这是完全正常的。

如果您查看 configtx.yaml,在“Orderer”部分,您可以看到以下内容:

Orderer: &OrdererDefaults

# Orderer Type: The orderer implementation to start
# Available types are "solo" and "kafka"
OrdererType: solo

Addresses:
- orderer.example.com:7050

# 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
BatchSize:

# Max Message Count: The maximum number of messages to permit in a batch
MaxMessageCount: 10

# Absolute Max Bytes: The absolute maximum number of bytes allowed for
# the serialized messages in a batch.
AbsoluteMaxBytes: 99 MB

# Preferred Max Bytes: The preferred maximum number of bytes allowed for
# the serialized messages in a batch. A message larger than the preferred
# max bytes will result in a batch larger than preferred max bytes.
PreferredMaxBytes: 512 KB

有两件重要的事情:

  • 批量超时
  • 最大消息计数

BatchTimeout 定义创建 block 之前的最长时间。这意味着,当进行调用时,排序者会计算交易并在创建 block 之前等待 2 秒。这意味着,每笔第一笔交易将花费 2 秒以上!但如果有另一个调用,比如说,在第一个事务后 1.5 秒,第二次调用将花费不到 1 秒!

MaxMessageCount,不言而喻。这意味着如果调用次数超过 10 次,即使 2 秒还没有过去,也会创建一个 block 。例如,在 0.5 秒内连续调用 10 次将导致在不到一秒的时间内创建一个 block 。

此设置用于根据您的网络平衡负载。假设您有一个低使用率的应用程序,小于 10 tps(每秒事务数),您可以将 BatchTimeout 减少到小于 2 秒,以增加调用的响应时间。如果你的tps很高,你可以增加MaxMessageCount来创建更大的 block 。

其他设置定义消息的最大大小。

尝试了解您的网络状况,使用测试用例模拟估计的 tps,并调整参数以找到您需要的配置。

关于node.js - Hyperledger Fabric - Fabcar 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60006576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com