Skip to content

🚀 Road to V1 #554

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Farhad-Shabani opened this issue Mar 17, 2023 · 0 comments
Open

🚀 Road to V1 #554

Farhad-Shabani opened this issue Mar 17, 2023 · 0 comments
Labels
A: tracking Admin: tracking/meta issue

Comments

@Farhad-Shabani
Copy link
Member

Farhad-Shabani commented Mar 17, 2023

ibc-rs V1 Roadmap

Motivation

We are thrilled to share the status and plans for the upcoming release of ibc-rs v1.0.0. Our goal is to enable new use cases and business models across the blockchain industry and bring the power of IBC protocol to a wider range of blockchains, developers, operators, and relayers, ultimately paving the way for a truly interconnected blockchain ecosystem.
This tracking issue serves as a beacon of our progress and gives a road toward the future of ibc-rs. View this roadmap as a broad overview rather than a promise of specific outcomes and timelines. As we continue to work towards the release of V1, we try our best to keep this roadmap updated and reflect our status.

Acceptance Criteria

The following are three main objectives we aim to achieve with the implementation. The current issues associated with achieving these goals are outlined in the "Objectives Breakdown" section.

1. Improve Compatibility: with reference to specs and IBC-go enabled chains

We aim to optimize our compatibility with the IBC protocol outlined in the official IBC documentation. To achieve this, we strive to align our data structures, abstractions, and semantics with the protocol set forth by the IBC core, client, and relayer standards and prioritize to support the fungible token transfer (ICS20). We do our best to clearly communicate any deviations from specifications and provide developers with guidance on how to handle them.
In addition to the above, we are committed to achieving compatibility with ibc-go enabled chains, which will expand our system's interoperability and enhance its potential for adoption.

2. Scalable Design: empowering non-cosmos chains

Our goal is to make architectural and design decisions that incorporate implementation with a clear separation of concerns and generic enough modular building blocks. Each with exclusive responsibility and well-defined required and provided APIs that ensure independent maintainability and support the IBC adoption of non-cosmos chains. Thus, this objective is tracked under the following criteria:

  • 2.1. Ensure APIs are delightful and flexible enough for end-users
  • 2.2. Assist non-cosmos chains in adopting IBC and applying feedback

3. Solidify Implementation: by quality assurance measures

This objective will take a number of steps to ensure our designs and implementation function within consistent and reliable behaviors while minimizing backward-incompatible and breaking changes. By taking the following measures, we aim to provide a more robust and user-centric product:

  • 3.1. Clean-ups, public exposure refinement and encapsulation
  • 3.2. Add necessary unit, integration, and e2e compatibility tests and maintain basecoin-rs up-to-date with ibc-rs changes as our primary testing venue
  • 3.3. Fix existing and community-reporting security and functionality findings
  • 3.4. Ensure adequate contents/docs around how to use, integrate and upgrade ibc-rs

Objectives Breakdown

Here, you can check out the list of current and usually more significant issues for each objective!
Note that this list may be subject to periodic updates, meaning it may grow or shrink over time.

### 1.1. Improve Compatibility [app support]
- [ ] https://github.com/cosmos/ibc-rs/issues/839
- [ ] https://github.com/cosmos/ibc-rs/issues/837
### 1.2. Improve Compatibility [compliance with ibc-go]
- [ ] https://github.com/cosmos/ibc-rs/issues/738
- [ ] https://github.com/cosmos/ibc-rs/issues/835
- [ ] https://github.com/cosmos/ibc-rs/issues/600
- [ ] https://github.com/cosmos/ibc-rs/issues/173
- [ ] https://github.com/cosmos/ibc-rs/issues/535
- [ ] https://github.com/cosmos/ibc-rs/issues/420
- [ ] https://github.com/cosmos/ibc-rs/issues/141
- [ ] https://github.com/cosmos/ibc-rs/issues/495
### 1.3. Improve Compatibility [compliance with specs]
- [ ] https://github.com/cosmos/ibc-rs/issues/519
- [ ] https://github.com/cosmos/ibc-rs/issues/559
### 2.1 Scalable Design [delightful APIs]
- [ ] https://github.com/cosmos/ibc-rs/issues/270
- [ ] https://github.com/cosmos/ibc-rs/issues/325
- [ ] https://github.com/cosmos/ibc-rs/issues/973
- [ ] https://github.com/cosmos/ibc-rs/issues/21
- [ ] https://github.com/cosmos/ibc-rs/issues/465
- [ ] https://github.com/cosmos/ibc-rs/issues/520
- [ ] https://github.com/cosmos/ibc-rs/issues/718
- [ ] https://github.com/cosmos/ibc-rs/issues/296
- [ ] https://github.com/cosmos/ibc-rs/issues/539
- [ ] https://github.com/cosmos/ibc-rs/issues/536
- [ ] https://github.com/cosmos/ibc-rs/issues/686
### 2.2. Scalable Design [non-Cosmos support]
- [ ] https://github.com/cosmos/ibc-rs/issues/882
- [ ] https://github.com/cosmos/ibc-rs/issues/807
- [ ] https://github.com/cosmos/ibc-rs/issues/608
- [ ] https://github.com/cosmos/ibc-rs/issues/431
- [ ] https://github.com/cosmos/ibc-rs/issues/965
- [ ] https://github.com/cosmos/ibc-rs/issues/716
### 3.1. Solidify Impl [clean-ups]
- [ ] https://github.com/cosmos/ibc-rs/issues/532
- [ ] https://github.com/cosmos/ibc-rs/issues/373
- [ ] https://github.com/cosmos/ibc-rs/issues/534
### 3.2. Solidify Impl [unit and integration tests]
- [ ] https://github.com/cosmos/ibc-rs/issues/677
- [ ] https://github.com/cosmos/ibc-rs/issues/433
- [ ] https://github.com/cosmos/ibc-rs/issues/953
- [ ] https://github.com/cosmos/ibc-rs/issues/744
- [ ] https://github.com/cosmos/ibc-rs/issues/429
- [ ] https://github.com/cosmos/ibc-rs/issues/24
- [ ] https://github.com/cosmos/ibc-rs/issues/533
- [ ] https://github.com/cosmos/ibc-rs/issues/505
- [ ] https://github.com/cosmos/ibc-rs/issues/427
- [ ] https://github.com/cosmos/ibc-rs/issues/398
- [ ] https://github.com/cosmos/ibc-rs/issues/443
- [ ] https://github.com/cosmos/ibc-rs/issues/538
- [ ] https://github.com/cosmos/ibc-rs/issues/385
### 3.3. Solidify Impl [potential findings]
- [ ] https://github.com/cosmos/ibc-rs/issues/190
- [ ] https://github.com/cosmos/ibc-rs/issues/178
- [ ] https://github.com/cosmos/ibc-rs/issues/233
- [ ] https://github.com/cosmos/ibc-rs/issues/213
### 3.4. Solidify Impl \[docs]
- [ ] https://github.com/cosmos/ibc-rs/issues/743
-  [ ] Revisit documentation and README to include missing materials
-  [ ] Enhance project Wiki with more info and testing details
-  [ ] Support the community by adding the FAQ section
- [ ] https://github.com/cosmos/ibc-rs/issues/1240

Features to support after the V1 release

  • ICS721 - Support NFT transfer
  • ICS027 - Interchain Accounts
  • ICS029 - Fee payment
  • ICS031 - Cross-chain queries
  • Connection Upgradability
  • Channel Upgradilbilty

TBD with further Investigation

  • Exposing an async API

Milestone

v1.0.0


@Farhad-Shabani Farhad-Shabani added the A: tracking Admin: tracking/meta issue label Mar 17, 2023
@Farhad-Shabani Farhad-Shabani moved this to 🏗️ In Progress in ibc-rs Mar 17, 2023
@Farhad-Shabani Farhad-Shabani pinned this issue Mar 17, 2023
@seanchen1991 seanchen1991 unpinned this issue Jan 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A: tracking Admin: tracking/meta issue
Projects
None yet
Development

No branches or pull requests

1 participant