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
@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
@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
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

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