#exonum #library #cli

exonum-cli

用于安全、方便地配置Exonum节点的辅助包

6个版本 (1个稳定版)

1.0.0 2020年3月31日
1.0.0-rc.32020年3月25日
1.0.0-rc.22020年3月13日
1.0.0-rc.12020年2月7日
0.13.0-rc.22019年12月4日

#9#exonum


2 crate 使用

Apache-2.0

1.5MB
31K SLoC

用于构建Exonum节点命令行界面的库

Travis Build Status License: Apache-2.0 rust 1.42.0+ required

exonum-cli 包提供了一种可扩展的命令行界面,用于Exonum节点。

默认情况下,以下CLI子命令可用

命令 描述
generate-template 生成节点配置的通用部分
generate-config 生成节点的公共和私有配置
finalize 生成最终节点配置
run 使用提供的节点配置运行节点
run-dev 使用自动生成的配置运行节点
maintenance 执行不同的维护操作
help 打印此消息或给定子命令的帮助信息

但是,可以添加新命令来扩展 exonum-cli 的功能。

有关更多详细信息,请参阅包文档

如何运行网络

  1. 使用 generate-template 命令生成节点配置的通用(模板)部分。生成的 .toml 文件必须在所有节点之间共享,并在以下配置步骤中使用。
  2. 使用generate-config命令生成节点的公钥和私钥(私有)部分。在此步骤中,Exonum将生成主密钥,从主密钥派生出共识和服务的验证者密钥。主密钥存储在加密文件中。共识秘密密钥用于节点之间的通信,而服务秘密密钥主要用于对节点生成的交易进行签名。这两个秘密密钥都可以用密码进行加密。节点配置的公钥部分必须在所有节点之间传播,而密钥部分必须仅由节点管理员访问。
  3. 使用finalize命令生成最终的节点配置。Exonum将节点配置的密钥部分与每个其他节点的公钥配置组合,生成包含所有必要的节点和网络设置的单一配置文件。
  4. 使用run命令并提供上一步生成的最终节点配置文件。如果秘密密钥受密码保护,用户需要输入密码。运行节点将自动连接到网络中的其他节点,使用节点配置公钥部分中的IP地址。

附加命令

exonum-cli还支持额外的CLI命令,以便节点管理员执行维护操作和更容易的调试。

  • run-dev命令自动生成单个节点的网络配置并运行。此命令在开发过程中快速测试服务非常有用。
  • maintenance命令目前仅包含清除缓存的功能。它允许清除节点的共识消息缓存,以修复节点不同步的罕见问题。

示例

使用默认设置运行Exonum节点

use exonum_cli::NodeBuilder;
use exonum_cryptocurrency_advanced as cryptocurrency;

fn main() -> anyhow::Result<()> {
    exonum::helpers::init_logger().unwrap();
    NodeBuilder::new()
        .with_service(cryptocurrency::CryptocurrencyService)
        .run()
}

用法

exonum-cli作为依赖项包含在您的Cargo.toml

[dependencies]
exonum-cli = "1.0.0"

许可

exonum-cli根据Apache许可证(版本2.0)授权。有关详细信息,请参阅LICENSE

依赖项

~73MB
~1.5M SLoC