Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Relay failing to validate para block after parachain runtime Upgrade: Digest item must match that calculated #474

@crystalin

Description

@crystalin

Doing a parachain runtime upgrade can fail depending on how it is executed.
Those scenarios are run using polkadot-v9.3 branches.

The error message appears on the relaychain validator:

2021-06-05 04:19:24  panicked at 'Digest item must match that calculated.', /home/test/.cargo/git/checkouts/substrate-7e08433d4c370a21/85fa0ab/frame/executive/src/lib.rs:456:13

Our setCode is defined as:

type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode<Self>;

Scenario 1:

  • Perform sudo.sudo => parachainSystem.authorizeUpgrade
  • Perform sudo.sudo => parachainSystem.enactAuthorizedUpgrade
  • ✅ parachain upgraded, producing blocks, relay including parachain blocks

Scenario 2:

  • Perform sudo.sudo => system.setCode
  • ❌parachain upgraded, producing blocks, relay refusing to validate parachain blocks: Digest item must match that calculated

Scenario 3:

  • Perform sudo.sudo => utility.batch [parachainSystem.authorizeUpgrade, parachainSystem.enactAuthorizedUpgrade]
  • ✅ parachain upgraded, producing blocks, relay including parachain blocks

Scenario 4:

  • Perform democracy.preimage => utility.batch [parachainSystem.authorizeUpgrade, parachainSystem.enactAuthorizedUpgrade]
  • Perform democracy.propose
  • Second + Vote
  • ❌parachain upgraded, producing blocks, relay refusing to validate parachain blocks: Digest item must match that calculated

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions