Node.js Hyperledger结构-Fabcar性能
我正在尝试使用Hyperledger Fabric运行一个项目,其设置类似于Fabcar示例 我对提交交易所需的大量时间感到惊讶 为了使它简单且完全可复制,我测量了在实际的Fabcar项目上提交事务Node.js Hyperledger结构-Fabcar性能,node.js,performance,hyperledger-fabric,hyperledger,Node.js,Performance,Hyperledger Fabric,Hyperledger,我正在尝试使用Hyperledger Fabric运行一个项目,其设置类似于Fabcar示例 我对提交交易所需的大量时间感到惊讶 为了使它简单且完全可复制,我测量了在实际的Fabcar项目上提交事务createCar所需的时间。 设置网络(startFabric.shjavascript)并注册管理员和用户后,我运行invoke.js脚本整个脚本大约需要2.5秒 据我所知,运行合同只需几毫秒。发送交易建议时也是如此。 它主要花费时间让eventHandler监听和等待事件(在transactio
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
有两件重要的事情:
- 批处理超时
- MaxMessageCount