-
Notifications
You must be signed in to change notification settings - Fork 124
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
support STORAGE_VERSION for our pallets #726
Conversation
Signed-off-by: Yi <[email protected]>
Signed-off-by: Yi <[email protected]>
Signed-off-by: Yi <[email protected]>
Signed-off-by: Yi <[email protected]>
Signed-off-by: Yi <[email protected]>
Hey, please name the PR properly. |
Signed-off-by: Yi <[email protected]>
Signed-off-by: Yi <[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.
Look at how the previous migrations used the try-runtime feature and test this migration with it as well.
try-runtime basically scrapes all the data from a live chain (eg: Calamari on Kusama) and insert it in a local network to test any storage migrations that may happen. There are pre and post migration hooks where you can check the state.
You can use this workflow for that https://github.com/Manta-Network/Manta/actions/workflows/try-runtime-calamari-mainnet.yml or do it locally.
Signed-off-by: Yi <[email protected]>
Signed-off-by: Yi <[email protected]>
Nice Advice. I've tried it using like Yeah. Actually I met some trouble like I can't use
|
You should be able to print with |
Signed-off-by: Yi <[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!
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, thanks for the clean PR!
I've noticed you updated our own pallets but none of the dependency pallets we use from parity.
Have you checked them all and ensured that e.g. pallet_treasury
in the current version (polkadot-v0.9.26) we use does not provide the const STORAGE_VERSION
variable in code? Because if you find any that already support this, part of the issue was to migrate those as well
i think it's better to add the dependency checking into the task #463 . so the upstream checking will be there. @Garandor |
Description
relates to RP: #460
This PR support
STORAGE_VERSION
feature in our pallets. Since we never usedPALLET_VERSION
before, this is just a one-time work to add storage_version_prefix_key in node storage.Otherwise, It could be a good demo for showing runtime upgrading.
In the future, this hooks could be removed to minimize the runtime size, which seems a good first issue for someone new.
Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.
<branch>/CHANGELOG.md
Files changed
in the Github PR explorer.Situational Notes:
BaseFilter
. Ensure every extrinsic works from front-end. If there's corresponding tool, ensure both work for each other.try-runtime
. This includes migrations inherited from upstream changes, and you can search the diffs for modifications of#[pallet::storage]
items to check for any.authoring_version
: The version of the authorship interface. An authoring node will not attempt to author blocks unless this is equal to its native runtime.spec_version
: The version of the runtime specification. A full node will not attempt to use its native runtime in substitute for the on-chain Wasm runtime unless all of spec_name, spec_version, and authoring_version are the same between Wasm and native.impl_version
: The version of the implementation of the specification. Nodes are free to ignore this; it serves only as an indication that the code is different; as long as the other two versions are the same then while the actual code may be different, it is nonetheless required to do the same thing. Non-consensus-breaking optimizations are about the only changes that could be made which would result in only the impl_version changing.transaction_version
: The version of the extrinsics interface. This number must be updated in the following circumstances: extrinsic parameters (number, order, or types) have been changed; extrinsics or pallets have been removed; or the pallet order in the construct_runtime! macro or extrinsic order in a pallet has been changed. You can run themetadata_diff.yml
workflow for help. If this number is updated, then thespec_version
must also be updated