-
Notifications
You must be signed in to change notification settings - Fork 646
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
[benchmarking] Reset to genesis storage after each run #5655
base: master
Are you sure you want to change the base?
Conversation
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
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.
lgtm
I will rebase #5327 tomorrow.
There is commit with enabling of the new short benchmarking CI with frame-omni-bencher, so BridgeHubRococo with frame-omni-bencher fails there, so after rebase it should work.
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
This reverts commit 9aa865f.
doc: | ||
- audience: Runtime Dev | ||
description: |- | ||
The genesis state is currently partially provided via `OverlayedChanges`, but these changes are reset by the runtime after the first repetition, causing the second repitition to use an invalid genesis state. |
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.
but these changes are reset by the runtime after the first repetition
You mean here that this was overridden and not reset?
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.
Okay this is funny, did not see this PR but had similar thoughts today: #5694
While at it, should we fix issue 2a from the linked issue too?
}) | ||
} | ||
|
||
/// Convert some overlayed changes to a storage. | ||
fn changes_to_storage<H: Hash>( |
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.
Why not get rid of all of this and genesis_from_runtime
and just use GenesisConfigBuilderRuntimeCaller
? It has all the machinery ready and we get rid of the manual json merging stuff too.
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.
I'd also try using GenesisConfigBuilderRuntimeCaller
to have genesis storage building in one place. If something is missing it can be adjusted / reworked.
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.
I changed it now.
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
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.
Nice!
), | ||
"build the genesis spec", | ||
)?; | ||
self.genesis_from_code::<EHF>(code) |
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.
You already got storage
. You don't need to call this.
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.
There is a distinction now between using the Genesis state from the spec, and using the runtime of the spec to build the genesis state through a preset.
This function does the later - hence it generates the state from the genesis runtime.
Co-authored-by: Bastian Köcher <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
// Use the runtime from the Spec file to build the genesis state. | ||
SpecRuntime, | ||
/// Use the spec file to build the genesis state. This fails when there is no spec. | ||
Spec, | ||
SpecGenesis, |
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.
nit: Maybe better name for this while enum would be GenesisBuilderPolicy
?
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.
Yes sounds better, the original name was a bit random 😅
@ggwpez Anything speaks against merging this? I have a follow up that could share some code. |
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
The genesis state is currently partially provided via
OverlayedChanges
, but these changes are reset by the runtime after the first repetition, causing the second repitition to use an invalid genesis state.Changes:
Storage
without anyOverlayedChanges
to make it work correctly with repetitions.--genesis-builder-preset
option to use different genesis preset names.