Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
fix(runtime/v2): bring back concurrent export genesis in v2 #21554
fix(runtime/v2): bring back concurrent export genesis in v2 #21554
Changes from 8 commits
ed5f01e
958a386
f0027dc
265d869
75a5751
6606640
d4ca906
a91e7de
2964763
1dce1ee
8e0c4c9
4d1a612
5c99189
943a6fe
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Avoid Leaking Internal Interfaces in Module Manager API
Passing
appStf appmanager.StateTransitionFunction[T]
andstate store.ReaderMap
directly into theExportGenesisForModules
function exposes internal interfaces and implementation details at the module manager level. This can lead to tight coupling and makes it harder to maintain and refactor the code in the future.Consider abstracting these dependencies or providing a higher-level interface that encapsulates the state transition functionality without exposing the internal types.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use a deterministic order when collecting genesis data.
Collecting the exported genesis data from the channels using a range loop over the
channels
map may result in non-deterministic ordering. This is because the order of iteration over a map is not guaranteed to be the same across different runs.To ensure deterministic ordering, consider the following:
channels
map.Here's an example of how you can modify the code to achieve deterministic ordering:
Committable suggestion