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日

#2681 in 神奇豆子

Download history 148/week @ 2024-05-12 182/week @ 2024-05-19 3/week @ 2024-05-26 14/week @ 2024-06-02 5/week @ 2024-06-09 2/week @ 2024-06-16 84/week @ 2024-06-23 11/week @ 2024-06-30 120/week @ 2024-07-07 14/week @ 2024-07-14 15/week @ 2024-07-28

150 每月下载量
用于 3 个 crate (2 直接)

AGPL-3.0-or-later

215KB
1.5K SLoC

Entropy Core

CircleCI

此仓库包含 Entropy 区块链节点,阈值签名服务器(评估程序,存储阈值密钥份额,并协调阈值签名),以及网络的一些测试工具。

我们的区块链节点是用 SubstrateSubstrate 的节点模板 编写的。

文档

您可以通过调用 cargo doc --no-deps --open 命令来构建 Entropy 的 API 文档。这里也有 Entropy 的高级文档

入门指南

您可以通过几种不同的方式开始使用此仓库。本节描述了其中的一些。

使用 Docker 入门

此仓库提供了一个 Docker Compose 配置,可以启动一个简单的、双节点开发区块链。我们提供了您可以直接拉取的 Docker 镜像,或者您也可以从源代码构建。

这样做 以使用 Docker Compose 配置

  1. 安装 Docker。确保您也安装了 Docker Compose。通过运行以下命令来确认:
    docker compose version
    
  2. 启动配置
    docker compose up --detach # Detaching is optional.
    
  3. 如果您需要从Docker主机机器直接与阈值签名方案服务器通信,您可能还需要将其地址包含在您的本地/etc/hosts文件中
    echo "127.0.0.1	alice-tss-server bob-tss-server" | sudo tee -a /etc/hosts
    
  4. 确认您的本地开发网络正在运行。您可以
    • 查看服务器日志
      docker compose logs --follow # Following is also optional.
      
    • 使用Entropy Test CLI与本地运行的网络交互
      cargo run -p entropy-test-cli -- --chain-endpoint="ws://127.0.0.1:9944" status 
      

从源代码构建

要从源代码构建,您需要在本地计算机上安装一些开发工具。

这样做以从源代码构建Entropy。

  1. 安装Rust操作系统依赖的Substrate
  2. 通过运行以下命令可以构建链节点和阈值签名方案(TSS)服务器二进制文件
    cargo build --release
    

运行:单节点开发链

可以通过以下方式启动本地Entropy节点进行开发和基本测试

cargo run --release -p entropy -- --dev --rpc-external

构建完成后,可以直接运行二进制文件

./target/release/entropy --dev --rpc-external

可选地,您也可以启用详细日志来运行它

RUST_BACKTRACE=1 ./target/release/entropy -ldebug --dev --rpc-external

测试

测试通过cargo test来完成。

要成功运行服务器测试,需要一个Entropy节点二进制文件。

您可以使用ENTROPY_NODE环境变量手动提供二进制文件。

ENTROPY_NODE="/path/to/entropy" cargo test -p entropy-tss

或者,如果没有使用ENTROPY_NODE指定路径,则测试套件将在target文件夹中搜索二进制文件。将根据测试套件的构建方式选择调试或发布二进制文件。

例如,运行cargo test -p entropy-tss --release将期望Entropy节点的发布二进制文件,您可以通过以下方式构建:cargo build -p entropy --release

要运行单个测试,您可以通过以下方式指定测试

cargo test -p entropy-tss --features unsafe -- test_sign_tx_no_chain --nocapture

与Polkadot-JS应用程序前端连接

一旦节点模板在本地运行,您就可以通过Polkadot-JS应用程序前端与您的链进行交互。点击此处连接应用程序到您的本地节点模板

命令行界面

此存储库包含一个简单的命令行界面客户端,用于测试目的。这可以与本地docker-compose网络和网络部署一起使用。

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

阈值密钥

  • 仅用于内部devnet的密钥(用于测试和通过docker-compose构建的本地网络)。这些密钥不安全,它们仅用于方便,请勿将它们用于任何真实用途。

Alice

  • 密语alarm mutual concert decrease hurry invest culture survey diagram crash snap click是账户
  • 网络ID/版本:substrate
  • 密钥种子:0x29b55504652cedded9ce0ee1f5a25b328ae6c6e97827f84eee6315d0f44816d8
  • 公钥(十六进制):0xe0543c102def9f6ef0e8b8ffa31aa259167a9391566929fd718a1ccdaabdb876
  • 账户ID:0xe0543c102def9f6ef0e8b8ffa31aa259167a9391566929fd718a1ccdaabdb876
  • SS58地址:5H8qc7f4mXFY16NBWSB9qkc6pTks98HdVuoQTs1aova5fRtN

Bob

  • 密语 where sight patient orphan general short empower hope party hurt month voice 是账户
  • 网络ID/版本:substrate
  • 密钥种子: 0xb0b5348db82db32d10a37b578e4c6242e148f14648661dccf8b3002fafa72cdd
  • 公钥(十六进制): 0x2a8200850770290c7ea3b50a8ff64c6761c882ff8393dc95fccb5d1475eff17f
  • 账户ID: 0x2a8200850770290c7ea3b50a8ff64c6761c882ff8393dc95fccb5d1475eff17f
  • SS58地址: 5D2SVCUkK5FgFiBwPTJuTN65J6fACSEoZrL41thZBAycwnQV

Charlie

  • 密语 lake carry still awful point mention bike category tornado plate brass lock 是账户
  • 网络ID/版本: substrate
  • 密钥种子: 0xb9085925e9452f3e465b51a883a0dbb2c13d5610b6f8f7e7f206f7f044daa419
  • 公钥(十六进制): 0x14d223daeec68671f07298c66c9458980a48bb89fb8a85d5df31131acad8d611
  • 账户ID: 0x14d223daeec68671f07298c66c9458980a48bb89fb8a85d5df31131acad8d611
  • SS58地址: 5CY1EquGdAiiJJ28FDiT8EB1C3gnMixtPn4pbSggFF6nUat7

拉取元数据

每次链接口发生变化时,都需要拉取元数据。您需要使用 cargo install subxt-cli 安装 Subxt。然后 运行开发链,然后调用 ./scripts/pull_entropy_metadata.sh 脚本

支持

需要帮助的内容不一定是与 entropy-core 相关的?

前往 Entropy Community 存储库 以获得支持或提交工单。

许可

大部分代码库的代码采用 AGPL-3.0 许可。

但是有一些例外

  • kvdb 框架的原始代码来自 Alexar 的 tofnd 项目,该项目采用 MIT 许可。
  • runtimenode 框架的原始代码来自 Parity 的 Substrate 项目,该项目采用 GPL-3.0-or-later WITH Classpath-exception-2.0 许可。
  • transaction-pause 簇的原始代码来自 Acala 项目,该项目采用 GPL-3.0-or-later WITH Classpath-exception-2.0 许可。

Entropy 对这些框架所做的修改采用 AGPL-3.0 许可。


lib.rs:

Entropy 链节点和 Entropy TSS 服务器客户端。由于 TSS 服务器与链节点通信,因此这也是 entropy-tss 的依赖项。

依赖项

~25–45MB
~781K SLoC