4 个版本
0.2.0 | 2024年7月11日 |
---|---|
0.2.0-rc.1 | 2024年6月27日 |
0.1.0 | 2024年5月21日 |
0.1.0-rc.1 | 2024年5月15日 |
#2681 in 神奇豆子
150 每月下载量
用于 3 个 crate (2 直接)
215KB
1.5K SLoC
Entropy Core
此仓库包含 Entropy 区块链节点,阈值签名服务器(评估程序,存储阈值密钥份额,并协调阈值签名),以及网络的一些测试工具。
我们的区块链节点是用 Substrate 和 Substrate 的节点模板 编写的。
文档
您可以通过调用 cargo doc --no-deps --open
命令来构建 Entropy 的 API 文档。这里也有 Entropy 的高级文档。
入门指南
您可以通过几种不同的方式开始使用此仓库。本节描述了其中的一些。
使用 Docker 入门
此仓库提供了一个 Docker Compose 配置,可以启动一个简单的、双节点开发区块链。我们提供了您可以直接拉取的 Docker 镜像,或者您也可以从源代码构建。
这样做 以使用 Docker Compose 配置
- 安装 Docker。确保您也安装了 Docker Compose。通过运行以下命令来确认:
docker compose version
- 启动配置
docker compose up --detach # Detaching is optional.
- 如果您需要从Docker主机机器直接与阈值签名方案服务器通信,您可能还需要将其地址包含在您的本地
/etc/hosts
文件中echo "127.0.0.1 alice-tss-server bob-tss-server" | sudo tee -a /etc/hosts
- 确认您的本地开发网络正在运行。您可以
- 查看服务器日志
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。
- 安装Rust和操作系统依赖的Substrate。
- 通过运行以下命令可以构建链节点和阈值签名方案(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
许可。runtime
和node
框架的原始代码来自 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