Skip to content
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

[WIP][IBC] Create the initial IBC module #795

Closed
wants to merge 71 commits into from
Closed

Conversation

h5law
Copy link
Contributor

@h5law h5law commented May 31, 2023

Description

This PR implements ICS23 and ICS24 (in part) specifically the paths, and stores.

The IBC module requires numerous data types and interfaces to be defined and as such the IBCHost interface defined in ICS25 has been written but commented out all of its methods.

This initial module contains the StoreManager, with both private and provable stores. As well as the numerous Commitment objects for proofs and path usage.

Issue

Fixes #794

Type of change

Please mark the relevant option(s):

  • New feature, functionality or library
  • Bug fix
  • Code health or cleanup
  • Major breaking change
  • Documentation
  • Other

List of changes

  • Create IBC module
  • Implement ICS23 Vector commitment capabilities
  • Implement in part ICS24 host requirements
    • Path generation
    • Prefixing
    • Stores
      • Private
      • Provable
  • Add unit tests to cover current features

Testing

  • make develop_test; if any code changes were made
  • make test_e2e on k8s LocalNet; if any code changes were made
  • e2e-devnet-test passes tests on DevNet; if any code was changed
  • Docker Compose LocalNet; if any major functionality was changed or introduced
  • k8s LocalNet; if any infrastructure or configuration changes were made

Required Checklist

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added, or updated, godoc format comments on touched members (see: tip.golang.org/doc/comment)
  • I have tested my changes using the available tooling
  • I have updated the corresponding CHANGELOG

If Applicable Checklist

  • I have updated the corresponding README(s); local and/or global
  • I have added tests that prove my fix is effective or that my feature works
  • I have added, or updated, mermaid.js diagrams in the corresponding README(s)
  • I have added, or updated, documentation and mermaid.js diagrams in shared/docs/* if I updated shared/*README(s)

@h5law h5law requested a review from Olshansk June 12, 2023 15:09
@h5law h5law requested a review from dylanlott June 12, 2023 19:11
@h5law h5law changed the title [WIP][IBC] Create the initial IBC module [IBC] Create the initial IBC module Jun 13, 2023
@h5law h5law mentioned this pull request Jun 14, 2023
14 tasks
@Olshansk Olshansk requested review from bryanchriswhite and removed request for dylanlott June 14, 2023 20:36
@Olshansk
Copy link
Member

@bryanchriswhite I've added you to this PR instead of @dylanlott since I know you've been putting a lof thought into how we should structure/design our module interfaces.

@dylanlott feel free to take a look as well but where I believe your input would be most valuable is around how IBC interfaces with the persistence layer.

@h5law h5law changed the title [IBC] Create the initial IBC module [WIP][IBC] Create the initial IBC module Jun 16, 2023
@h5law h5law marked this pull request as draft June 16, 2023 13:13
@Olshansk
Copy link
Member

@h5law I've removed the waiting-for-review tag and removed both myself @bryanchriswhite as a reviewer. If this was done in error, please read us

@h5law
Copy link
Contributor Author

h5law commented Jun 18, 2023

I have split this PR into the following #842 which introduces the initial module creation as well as #838 which introduces the changes made to the KVStore.

I have also opened the following issues #841 #840 which cover the rest of the implementation detailed in this PR. As such I am closing this PR as the work will be done in follow up issues.

@h5law h5law closed this Jun 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
e2e-devnet-test Runs E2E tests on devnet ibc IBC specific changes large Pull request is large
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

[IBC] Create the initial IBC module
2 participants