#substrate #node #pallet #run-time #cosmos #abci #module

无std pallet-cosmos-abci

具有运行时接口的ABCI模块

1个不稳定版本

0.0.1 2020年11月17日

#12 in #abci

MIT 许可证

23KB
477 代码行

带有Cosmos ABCI模块的Substrate节点

一个新的基于FRAME的Substrate节点,具有Cosmos ABCI。

文档

本项目的文档在这里:here

构建

安装Rust

curl https://sh.rustup.rs -sSf | sh

初始化您的Wasm构建环境

./scripts/init.sh

构建Wasm和本地代码

cargo build

运行

在运行substrate节点之前,您应该构建并启动cosmos节点。转到我们的cosmos-sdk分叉,切换到feature/add_nameservice分支,然后只需按照说明进行。

要在本地运行节点,您需要指定cosmos-abci模块的环境变量。

export ABCI_SERVER_URL=tcp://127.0.0.1:26658
export ABCI_GENESIS_STATE_PATH=$HOME/.nsd/config/genesis.json
# or
export ABCI_GENESIS_STATE=$(cat $HOME/.nsd/config/genesis.json)

在更新genesis.json文件后,应指定以下环境变量

export ABCI_GENESIS_STATE=$(cat $HOME/.nsd/config/genesis.json)

测试

要从本地运行测试,请使用以下命令

# pallet-cosmos-abci
cargo test --test pallet_abci_test
# abci
cargo test --test abci_test

单节点开发链

清除任何现有的开发链状态

./target/release/node-template purge-chain --dev

使用以下命令启动开发链:

./target/release/node-template --dev

通过以下环境变量设置运行节点,可以显示详细的日志:RUST_LOG=debug RUST_BACKTRACE=1 cargo run -- --dev

在Docker中运行

首先,安装DockerDocker Compose

然后运行以下命令以启动单个节点开发链。

./scripts/docker_run.sh

此命令将首先编译您的代码,然后启动一个本地开发网络。您也可以通过附加自己的命令来替换默认命令(cargo build --release && ./target/release/node-template --dev --ws-external)。以下是一些有用的命令。

# Run Substrate node without re-compiling
./scripts/docker_run.sh ./target/release/node-template --dev --ws-external

# Purge the local dev chain
./scripts/docker_run.sh ./target/release/node-template purge-chain --dev

# Check whether the code is compilable
./scripts/docker_run.sh cargo check

CosmosRPC REST调用

  • 请求CosmosRPC API:{ "jsonrpc": "2.0", "method": <method_name>, "id": 0, "params": <method_params> }

依赖项

~7-19MB
~282K SLoC