#substrate #cosmos #abci #cosmos-sdk #communicate #applications #substrate-node

abci-storage

Cosmos ABCI库,用于与Cosmos应用程序通信

1个不稳定版本

0.0.3 2021年2月14日

#10 in #abci

Apache-2.0

5KB
60

带有Cosmos ABCI组件的Substrate节点

一个基于FRAME的Substrate节点,包含Cosmos ABCI。

文档

本项目文档位于此处

构建

安装Rust

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

初始化您的Wasm构建环境

./scripts/init.sh

构建Wasm和本地代码

cargo build
For building node with selected consensus
- cargo build -Z package-features --package pallet-cosmos-abci --features "std <consensus_pallet_name>" --no-default-features
- cargo build -Z package-features --package runtime --features "std <consensus_pallet_name>" --no-default-features
- cargo build --workspace --features "<consensus_pallet_name>" --no-default-features

运行

在运行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 cosmos_abci_unit_test
# pallet-abci
cargo test --test abci_integration_test
cargo test --test abci_unit_test

sh integration tests

进入scripts/integration_tests目录

单节点开发链

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

rm -rf abci_storage_rocksdb
./target/release/node-template purge-chain --dev

使用以下命令启动开发链

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

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

在Docker中运行

首先,安装DockerDocker Compose

然后运行以下命令以启动单个节点开发链。有时您还需要在Docker设置中共享.maintain文件夹的权限。

./scripts/docker_run.sh

或者

docker-compose up -d

CosmosRPC REST调用

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

依赖项

~33MB
~648K SLoC