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

Add session key types for new consensus implementation to Dolphin and Calamari (Nimbus Stage 0) #646

Merged
merged 156 commits into from
Jul 15, 2022

Conversation

Garandor
Copy link
Contributor

@Garandor Garandor commented Jul 5, 2022

This PR does not contain any functional changes to KMA or DOL with the following two exceptions:
⚠️ The rotateKeys RPC call now returns 3 keys instead of 1
⚠️ The setKeys extrinsic now requires the above 3 keys as parameters instead of just the aura key
Nimbus consensus will be enabled in a later PR.

  • Refactor all (aura-)consensus specifics and dependencies out of manta-primitives into a new session-key-primitives crate inspired by Moonbeam's PR above
  • Extract the SessionKeys type from the runtimes into the common session-key-primitives module.
    Attempted but failed as the necessary impl_opaque_keys! macro does not support generics

related to #668


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.

  • Linked to Github issue with discussion and accepted design OR have an explanation in the PR that describes this work.
  • Wrote unit tests.
  • Updated relevant documentation in the code.
  • Added one line describing your change in <branch>/CHANGELOG.md
  • Re-reviewed Files changed in the Github PR explorer.
  • If runtime changes, need to update the version numbers properly:
    • 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 the metadata_diff.yml workflow for help. If this number is updated, then the spec_version must also be updated
  • Verify benchmarks & weights have been updated for any modified runtime logics
  • If importing a new pallet, choose a proper module index for it, and allow it in BaseFilter. Ensure every extrinsic works from front-end. If there's corresponding tool, ensure both work for each other.
  • If needed, update our Javascript/Typescript APIs. These APIs are officially used by exchanges or community developers.
  • If modifying existing runtime storage items, make sure to implement storage migrations for the runtime and test them with 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.

ghzlatarev and others added 30 commits May 20, 2022 18:48
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Dengjianping <djptux@gmail.com>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
Adam Reif added 4 commits July 13, 2022 13:34
Signed-off-by: Adam Reif <Garandor@manta.network>
Signed-off-by: Adam Reif <Garandor@manta.network>
Signed-off-by: Adam Reif <Garandor@manta.network>
Signed-off-by: Adam Reif <Garandor@manta.network>
@ghzlatarev ghzlatarev linked an issue Jul 13, 2022 that may be closed by this pull request
6 tasks
@ghzlatarev
Copy link
Contributor

Does this PR depend on #571 being merged first? If so, please leave a note in the description and mark it with a DO-NOT-MERGE label. Also, this PR does not actually close #486, so just mark it as related but not closing.

If we don't use closes it won't show up in the linked PR section in issues, so that's why we've been closing and reopening them.

ghzlatarev
ghzlatarev previously approved these changes Jul 13, 2022
Signed-off-by: Adam Reif <Garandor@manta.network>
ghzlatarev
ghzlatarev previously approved these changes Jul 13, 2022
…ing problem

Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
…ightly

Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
ghzlatarev
ghzlatarev previously approved these changes Jul 15, 2022
@Garandor Garandor dismissed bhgomes’s stale review July 15, 2022 14:34

All comments addressed

primitives/session-keys/Cargo.toml Outdated Show resolved Hide resolved
primitives/session-keys/Cargo.toml Show resolved Hide resolved
primitives/session-keys/src/vrf.rs Show resolved Hide resolved
primitives/session-keys/Cargo.toml Outdated Show resolved Hide resolved
primitives/session-keys/Cargo.toml Outdated Show resolved Hide resolved
primitives/session-keys/Cargo.toml Outdated Show resolved Hide resolved
runtime/calamari/src/lib.rs Show resolved Hide resolved
Signed-off-by: Adam Reif <Garandor@manta.network>
Adam Reif and others added 4 commits July 15, 2022 11:44
Signed-off-by: Adam Reif <Garandor@manta.network>
Signed-off-by: Adam Reif <Garandor@manta.network>
Signed-off-by: Georgi Zlatarev <georgi.zlatarev@manta.network>
@ghzlatarev ghzlatarev self-requested a review July 15, 2022 16:51
@bhgomes bhgomes merged commit 5a74fe2 into manta Jul 15, 2022
@bhgomes bhgomes deleted the garandor/nimbus0 branch July 15, 2022 22:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-calamari Area: Issues and PRs related to the Calamari Runtime A-collator-program Area: Issues and PRs related to the Collator Program A-consensus Area: Issues and PRs related to Consensus A-dolphin Area: Issues and PRs related to the Dolphin Runtime A-migration Area: This PR needs/does a storage migration C-enhancement Category: An issue proposing an enhancement or a PR with one P-high Priority: High
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Nimbus Consensus Migration Stage 0
4 participants