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

feat(x/minfee): extract go module #4003

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

rootulp
Copy link
Collaborator

@rootulp rootulp commented Oct 23, 2024

Draft PR until I come back from OOO

Motivation

As part of the refactor to a multiplexed app, we want a mechanism to avoid importing state machine modules (e.g. x/minfee) once per state machine version. We want this because each time a state machine module is imported by the multiplexer, it registers proto types in the proto registry and interfaces in the Cosmos SDK interface registry. When we import the same state machine module more than once, we hit duplicate proto registry errors (same for Cosmos SDK interface registry).

This PR is the first of many that spin out a distinct Go module per state machine module. Expect subsequent PRs for x/blob, x/signal, etc.

Note: if we didn't do this for the multiplexed app, it is likely that we would do this as part of an update to new Cosmos SDK versions. For example Cosmos SDK v0.52.x spun out Go modules for all the state machine modules.

Testing

I did this on my fork and verified that we can:

  1. Publish multiple Go modules from the same repo (i.e. celestia-app, and x/minfee)
  2. From celestia-app import x/minfee. See here

Ref:

@rootulp rootulp self-assigned this Oct 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant