{"id":13566275,"url":"https://github.com/informalsystems/basecoin-rs","last_synced_at":"2025-12-30T00:03:51.871Z","repository":{"id":37853722,"uuid":"373828330","full_name":"informalsystems/basecoin-rs","owner":"informalsystems","description":"An example ABCI application making use of tendermint-rs and ibc-rs","archived":false,"fork":false,"pushed_at":"2024-11-12T16:00:42.000Z","size":1708,"stargazers_count":56,"open_issues_count":36,"forks_count":17,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-01-22T18:13:23.582Z","etag":null,"topics":["abci","ibc","tendermint"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/informalsystems.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-04T12:03:52.000Z","updated_at":"2024-11-12T16:00:44.000Z","dependencies_parsed_at":"2023-10-05T02:42:19.260Z","dependency_job_id":"6d4e8be6-ea41-4745-9b6e-176dc69c8de1","html_url":"https://github.com/informalsystems/basecoin-rs","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/informalsystems%2Fbasecoin-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/informalsystems%2Fbasecoin-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/informalsystems%2Fbasecoin-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/informalsystems%2Fbasecoin-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/informalsystems","download_url":"https://codeload.github.com/informalsystems/basecoin-rs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247097910,"owners_count":20883125,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abci","ibc","tendermint"],"created_at":"2024-08-01T13:02:05.923Z","updated_at":"2025-12-30T00:03:51.865Z","avatar_url":"https://github.com/informalsystems.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# basecoin-rs\nAt a high level, basecoin implements the application logic that sits between the Tendermint consensus layer and ibc-rs.\nIt is a rudimentary Tendermint ABCI application that implements the following functionality in the form of modules -\n* `bank` - keeps track of different accounts' balances and facilitates transactions between those accounts.\n* `ibc` - enables support for IBC (clients, connections \u0026 channels)\n\nIts main use-cases are serving as a testing ground and mock implementation for verifying the correctness and behaviour\nof the ibc-rs modules.\n\n## Requirements\nSo far this app has been tested with:\n* Rust \u003e v1.75\n* CometBFT v0.37\n\n## How to integrate ibc-rs changes into basecoin\nSince basecoin serves as a suite of integration tests against ibc-rs's functionality, each ibc-rs\nPR also requires an accompanying basecoin PR. The steps to do this are:\n1. In a new branch in basecoin, update ibc [revisions][revs] with the latest commit of the ibc-rs PR.\n2. Implement the necessary changes in basecoin in order to get it working with the latest commit revision of ibc-rs.\n3. Run `cargo clippy --all-features` and `cargo clippy --no-default-features` and fix any issues that clippy raises.\n4. Open a PR in the basecoin-rs repository, making sure to the link to the associated ibc-rs PR.\n5. Check to see if the [integration tests][integration-tests] pass.\n\n## Starting up an instance of basecoin\n### Step 1: Reset your local CometBFT node\n```shell\n$ cometbft init\n$ cometbft unsafe-reset-all\n```\n\n### Step 2: Modify CometBFT config\nEdit the CometBFT `config.toml` file (default location `~/.cometbft/config/config.toml`) to update the `proxy_app` and P2P `laddr` as follows.\n```toml\nproxy_app = \"tcp://127.0.0.1:26358\"\n# ...\n[p2p]\nladdr = \"tcp://0.0.0.0:26356\"\n```\n\n### Step 3: Module specific setup\nSee the module documentation for more details -\n* [Bank module](docs/modules/bank.md)\n* [Ibc module](docs/modules/ibc.md)\n\n### Step 4: Run the basecoin app and CometBFT\n```console\n# See all supported CLI options\n$ cargo run -- --help\nbasecoin 0.1.0\n\nUSAGE:\n    basecoin [FLAGS] [OPTIONS]\n\nCommands:\n    start\n    query   Query a state of Basecoin application from the store\n    help    Prints this message or the help of the given subcommand(s)\n\nOPTIONS:\n        --config \u003cFILE\u003e  The path to the configuration file [default: config.toml]\n        --verbose        Increase output logging verbosity to DEBUG level\n        --quiet          Suppress all output logging (overrides --verbose)\n    -h  --help           Prints help information\n    -V, --version        Prints version information\n\n# Run the ABCI application (from this repo)\n# The -v is to enable trace-level logging\n$ cargo run -- -v\n\n# In another terminal\n$ cometbft node\n```\n\n## UML diagrams\n![system diagram](docs/images/system-diagram.png)\n---\n![class diagram](docs/images/class-diagram.png)\n---\n![activity diagram - DeliverTx](docs/images/activity-diagram-deliverTx.png)\n\n[revs]: https://github.com/informalsystems/basecoin-rs/blob/9610b29067ba122808d1d14354a32e2005b54517/Cargo.toml#L15-L16\n[integration-tests]: https://github.com/informalsystems/basecoin-rs/blob/8f744c8356569d5f87a546f46d1ade247ebe5256/.github/workflows/integration.yml#L1","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finformalsystems%2Fbasecoin-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finformalsystems%2Fbasecoin-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finformalsystems%2Fbasecoin-rs/lists"}