#applications #store #avl #ibc #tendermint #abci #basecoin

basecoin-store

为 basecoin 应用定制的 AVL 存储的简单实现

2 个不稳定版本

新版本 0.2.0 2024 年 8 月 9 日
0.1.0 2024 年 5 月 13 日

#529魔法豆

Download history 231/week @ 2024-05-13 813/week @ 2024-05-20 730/week @ 2024-05-27 777/week @ 2024-06-03 573/week @ 2024-06-10 518/week @ 2024-06-17 722/week @ 2024-06-24 620/week @ 2024-07-01 664/week @ 2024-07-08 568/week @ 2024-07-15 341/week @ 2024-07-22 375/week @ 2024-07-29 379/week @ 2024-08-05

1,673 每月下载量
用于 ibc-testkit

Apache-2.0

69KB
1.5K SLoC

basecoin-rs

从高层次来看,basecoin 实现了位于 Tendermint 共识层和 ibc-rs 之间的应用逻辑。它是一个基本的 Tendermint ABCI 应用程序,以下功能以模块的形式实现-

  • bank - 跟踪不同账户的余额并促进这些账户之间的交易。
  • ibc - 启用对 IBC (客户端、连接和通道) 的支持

其主要用例是作为 ibc-rs 模块的正确性和行为验证的测试平台和模拟实现。

要求

到目前为止,此应用程序已与以下内容进行了测试

  • Rust > v1.64
  • CometBFT v0.37

如何将 ibc-rs 变更集成到 basecoin 中

由于 basecoin 作为一套针对 ibc-rs 功能的集成测试,每个 ibc-rs PR 也需要一个相应的 basecoin PR。执行此操作的步骤是

  1. 在 basecoin 的一个新分支中,更新 ibc 修订版本 为 ibc-rs PR 的最新提交。
  2. 在 basecoin 中实施必要的更改,以使其能够与 ibc-rs 的最新提交版本一起工作。
  3. 运行 cargo clippy --all-featurescargo clippy --no-default-features 并修复 clippy 提出的任何问题。
  4. 在basecoin-rs仓库中打开一个PR,确保链接到相关的ibc-rs PR。
  5. 检查集成测试是否通过。

启动basecoin实例

步骤1:重置您的本地CometBFT节点

$ cometbft init
$ cometbft unsafe-reset-all

步骤2:修改CometBFT配置

编辑CometBFT的config.toml文件(默认位置~/.cometbft/config/config.toml),如下更新proxy_app和P2P的laddr

proxy_app = "tcp://127.0.0.1:26358"
# ...
[p2p]
laddr = "tcp://0.0.0.0:26356"

步骤3:模块特定设置

请参阅模块文档以获取更多信息——

步骤4:运行basecoin应用程序和CometBFT

# See all supported CLI options
$ cargo run -- --help
basecoin 0.1.0

USAGE:
    basecoin [FLAGS] [OPTIONS]

Commands:
    start
    query   Query a state of Basecoin application from the store
    help    Prints this message or the help of the given subcommand(s)

OPTIONS:
        --config <FILE>  The path to the configuration file [default: config.toml]
        --verbose        Increase output logging verbosity to DEBUG level
        --quiet          Suppress all output logging (overrides --verbose)
    -h  --help           Prints help information
    -V, --version        Prints version information

# Run the ABCI application (from this repo)
# The -v is to enable trace-level logging
$ cargo run -- -v

# In another terminal
$ cometbft node

UML图

system diagram

class diagram

activity diagram - DeliverTx

依赖关系

~9.5MB
~183K SLoC