#testing #cometbft #blockchain

bin+lib cometbft-testgen

cometbft-testgen 是一个库和一个小型二进制实用工具,用于从最小输入生成 CometBFT 数据结构(仅用于测试目的)。该库还包含一些简化运行测试批次的函数。

1 个不稳定版本

0.1.0-alpha.22024年1月27日

#5 in #cometbft

Apache-2.0

730KB
16K SLoC

cometbft-testgen

Crate Docs Build Status Apache 2.0 Licensed Rust Stable

cometbft-testgen 是一个小型实用工具,用于从最小输入生成 Tendermint 数据结构(仅用于测试目的)。

要求

  • 最新稳定版本的 Rust

用法

# Show usage information for cometbft-testgen
cargo run -- --help

# Show usage about a particular command
cargo run -- --help CMD

例如,可以从标识符生成 Tendermint 验证器,或者仅从一组验证器生成 Tendermint 头部。

参数可以通过两种方式提供

  • 通过 STDIN:在这种情况下,它们应是一个有效的 JSON 对象,每个参数都是该对象的字段
  • 通过特定命令的命令行参数。

如果参数同时通过 STDIN 和 CLI 提供的,则后者优先。

如果可以从单个参数(如验证器)生成特定数据结构,则存在一个快捷方式,允许直接通过 STDIN 提供此参数,而无需将其包装在 JSON 对象中。例如,在验证器的情况下,以下命令都是等效的

cometbft-testgen validator --id a --voting-power 3
echo -n '{"id": "a", "voting_power": 3}' | cometbft-testgen --stdin validator
echo -n a | cometbft-testgen --stdin validator --voting-power 3
echo -n '{"id": "a"}' | cometbft-testgen --stdin validator --voting-power 3
echo -n '{"id": "a", "voting_power": 100}' | cometbft-testgen --stdin validator --voting-power 3

结果是

{
  "address": "730D3D6B2E9F4F0F23879458F2D02E0004F0F241",
  "pub_key": {
    "type": "tendermint/PubKeyEd25519",
    "value": "YnT69eNDaRaNU7teDTcyBedSD0B/Ziqx+sejm0wQba0="
  },
  "voting_power": "3",
  "proposer_priority": null
}

许可证

版权所有 © 2020 非正式系统

根据 Apache 许可证版本 2.0(“许可证”)许可;除非适用法律要求或经书面同意,否则不得使用本存储库中的文件,除非符合许可证。您可以在以下位置获得许可证副本:

https://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则根据许可证分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言、权限和限制,请参阅许可证。

依赖项

~8–18MB
~267K SLoC