4 个版本

0.2.0 2024 年 7 月 11 日
0.2.0-rc.12024 年 6 月 27 日
0.1.0 2024 年 5 月 21 日
0.1.0-rc.12024 年 5 月 15 日
0.0.0 2024 年 1 月 4 日

#50 in #熵

AGPL-3.0-or-later

125KB
1K SLoC

熵测试 CLI

这是一个简单的熵测试 CLI。

请注意,此客户端没有安全的私钥存储,仅适用于测试网络。要获取功能齐全的命令行客户端,请参阅 entropyxyz/cli

需求

要使用它,您需要访问 Entropy 网络的部署,至少有两个链节点和两个 TSS 服务器。

这可以是以下之一

  • 一个 网络部署,在这种情况下,您需要指定链端点 URI。这可以通过设置 ENTROPY_DEVNET 环境变量或使用 --chain-endpoint-c 命令行参数来完成,例如 ws://54.175.228.156:9944
  • 使用 Docker Compose 的 本地部署。使用此方法时,您无需指定链端点,因为 CLI 默认将使用 ws://localhost:9944

在使用本地 Docker Compose 设置时,请注意您需要通过添加以下行将 TSS 主机名设置在您的 /etc/hosts 文件中

127.0.0.1 alice-tss-server
127.0.0.1 bob-tss-server

您还需要以下软件包

  1. OpenSSL

    # Debian/Ubuntu
    sudo apt install libssl-dev
    
    # MacOS
    brew install openssl 
    
  2. pkg-config:

    # Debian/Ubuntu
    sudo apt install pkg-config
    
    # MacOS
    brew install pkg-config
    

安装

cargo安装 entropy-test-cli

用法

助记词

由于这是一个测试客户端,没有私钥存储。相反,我们传递一个助记词,该助记词可以存储为环境变量或通过命令行传递

帮助

要查看使用信息,您可以运行 help 命令

-测试-命令行界面--帮助

您还可以显示特定命令的帮助信息

-测试-命令行界面--帮助 register

状态

要查看您是否有权限访问成功配置的部署,您可以尝试运行 status 命令,它将列出当前注册的熵账户和存储的程序

-测试-命令行界面--状态

注册

要注册熵账户,您需要三样东西

  • 一个熵链账户名称,我们将称之为“程序修改账户”。这必须得到资助才能提交注册交易。在本地(docker compose)设置中,您可以使用 预资助账户 之一,例如 Alice
  • 一个或多个程序,这些程序定义了消息将由熵网络在哪些条件下签名。test-cli register 命令将程序作为现有链上程序的十六进制编码哈希值或包含编译程序的 .wasm 文件的本地路径。
    • device-key-proxy 程序总是可用,其哈希值为零:0000000000000000000000000000000000000000000000000000000000000000
    • testing-utils 包含一些可立即使用的编译程序,其中最简单的是 template_barebones.wasm,它允许您签名任何长度超过10字节的任何消息。
    • 有关更多示例程序以及如何编写和构建您自己的程序的说明,请参阅 programs

您还需要决定您想注册哪种 '访问模式' 或 '密钥可见性':私有或公共。如果您不确定,'公共' 是最简单的 'vanilla' 访问模式。

例如,要使用 //Alice 作为签名请求账户在公共访问模式下注册,使用 template_barebones 程序

-测试-cli register public template_barebones.wasm-m//Alice

在公共访问模式下注册的示例,使用两个程序,一个作为二进制文件给出,另一个作为现有程序的哈希值

-测试-cli register public my-program.wasm 3b3993c957ed9342cbb011eb9029c53fb253345114eff7da5951e98a41ba5ad5-m//Alice

如果注册成功,您将看到您账户的验证密钥,这是您的分布式密钥对的公钥secp256k1密钥。您在请求签名消息时需要它。如果您再次运行 status 命令,您应该看到您注册的账户。

签名

sign 命令接受作为十六进制给出的账户验证密钥和一个待签名消息,作为UTF-8字符串给出。

-测试-命令行界面--sign 039fa2a16982fa6176e3fa9ae8dc408386ff040bf91196d3ec0aa981e5ba3fc1bb'My要签名的消息'

如果您设置的程序需要额外的辅助数据,您可以将其作为十六进制编码的字符串提供

-测试-命令行界面--sign 039fa2a16982fa6176e3fa9ae8dc408386ff040bf91196d3ec0aa981e5ba3fc1bb'My要签名的消息'deadbeef1234

如果签名成功,将显示一个 RecoverableSignature 对象,其中包含64字节的secp256k1签名,以十六进制编码,以及一个 RecoveryId

存储程序

如上所述,register 命令可以在注册时存储程序。如果您只想存储程序,可以使用 store-program 命令。

您需要提供存储程序的账户以及您想要存储的程序二进制文件的路径,例如

-测试-cli store-program./crates/testing-utils/example_barebones_with_auxilary.wasm//Alice

更新程序

update-programs 命令用于更改与注册的 Entropy 账户关联的程序。它需要签名验证密钥、程序修改账户以及签名时要评估的程序列表。程序可以是 .wasm 二进制文件的路径或现有程序的哈希值。

-测试-cli update-programs 039fa2a16982fa6176e3fa9ae8dc408386ff040bf91196d3ec0aa981e5ba3fc1bb my-new-program.wasm-m//Alice

请注意,程序修改账户必须得到资助,才能使此操作生效。

依赖项

~29–41MB
~710K SLoC