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

Create cannonical place to register light client interfaces #2009

Closed
3 tasks
colin-axner opened this issue Aug 15, 2022 · 2 comments
Closed
3 tasks

Create cannonical place to register light client interfaces #2009

colin-axner opened this issue Aug 15, 2022 · 2 comments
Assignees

Comments

@colin-axner
Copy link
Contributor

colin-axner commented Aug 15, 2022

Summary

Currently we register light client interfaces in RegisterInterfaces within the core IBC module set as an sdk module. We should expose some API to register interfaces without adding code to the core IBC module. My first inclination is to add this function to the app module basic, so app.go files will be required to provide a function registering all their desired light clients. An alternative is to use the go init() function

In the short term, chains can simply add a call to the RegisterInterfaces for external light clients within the construction of the App in app.go

Decision

Add a field to AppModuleBasic to register interfaces, the list of functions can be taken in via NewAppModuleBasic. In AppModuleBasic.RegisterInterfaces should iterate over the functions provided


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged/assigned
@colin-axner colin-axner added the needs discussion Issues that need discussion before they can be worked on label Aug 15, 2022
@crodriguezvega crodriguezvega moved this to Backlog in ibc-go Oct 25, 2022
@crodriguezvega crodriguezvega moved this to Backlog in ibc-go Nov 1, 2022
@colin-axner colin-axner moved this from Backlog to Todo in ibc-go Nov 9, 2022
@colin-axner colin-axner removed the needs discussion Issues that need discussion before they can be worked on label Nov 14, 2022
@chatton chatton self-assigned this Nov 14, 2022
@chatton chatton moved this from Todo to On hold in ibc-go Nov 14, 2022
@colin-axner
Copy link
Contributor Author

After discussion with @damiannolan we will go with the app module basic approach. IBC clients as SDK modules allows for additional benefits such as having external information (metadata) being controlled outside of 02-client (migrations, genesis). The benefits require SDK intermodule routing, but this is a step in the long term direction that will eventually be needed. I will write an ADR outlining the problems/eventual solution and why the AppModuleBasic approach is aligned in that direction

@colin-axner colin-axner moved this from On hold to Todo in ibc-go Nov 17, 2022
@chatton chatton removed their assignment Nov 22, 2022
@colin-axner colin-axner self-assigned this Nov 24, 2022
@colin-axner colin-axner moved this from Todo to In review in ibc-go Nov 24, 2022
@colin-axner
Copy link
Contributor Author

Closed! AppModuleBasics have been added for tendermint and solo machine. #2008 will add documentation to show external devs how to create an app module basic

Repository owner moved this from In review to Todo in ibc-go Nov 29, 2022
@damiannolan damiannolan moved this from Todo to Done in ibc-go Dec 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done 🥳
Development

Successfully merging a pull request may close this issue.

3 participants