You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At a high level, basecoin implements the application logic that sits between the Tendermint consensus layer and ibc-rs.
It is a rudimentary Tendermint ABCI application that implements the following functionality in the form of modules -
bank - keeps track of different accounts' balances and facilitates transactions between those accounts.
ibc - enables support for IBC (clients, connections & channels)
Its main use-cases are serving as a testing ground and mock implementation for verifying the correctness and behaviour
of the ibc-rs modules.
Requirements
So far this app has been tested with:
Rust > v1.75
CometBFT v0.37
How to integrate ibc-rs changes into basecoin
Since basecoin serves as a suite of integration tests against ibc-rs's functionality, each ibc-rs
PR also requires an accompanying basecoin PR. The steps to do this are:
In a new branch in basecoin, update ibc revisions with the latest commit of the ibc-rs PR.
Implement the necessary changes in basecoin in order to get it working with the latest commit revision of ibc-rs.
Run cargo clippy --all-features and cargo clippy --no-default-features and fix any issues that clippy raises.
Open a PR in the basecoin-rs repository, making sure to the link to the associated ibc-rs PR.
# See all supported CLI options
$ cargo run -- --helpbasecoin 0.1.0USAGE: 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 diagrams
About
An example ABCI application making use of tendermint-rs and ibc-rs