Skip to content
Snippets Groups Projects
  1. Mar 14, 2025
  2. Mar 13, 2025
  3. Mar 11, 2025
    • Sebastian Kunert's avatar
      slot-based-collator: Allow multiple blocks per slot (#7569) · 8ddb0714
      Sebastian Kunert authored
      **Summary:** This PR enables authoring of multiple blocks in one AURA
      slot in the slot-based collator and stabilizes the slot-based collator.
      
      ## CLI Changes
      The flag `--experimental-use-slot-based` is now marked as deprecated. I
      opted to introduce `--authoring slot-based` instead of just removing the
      `experimental` prefix. By introducing the `authoring` variant, we get
      some future-proofing in case we want to introduce further options.
      
      ## Change Description
      With elastic-scaling, we are able to author multiple blocks with a
      single relay-chain parent. In the initial iteration, the interval
      between two blocks was determined by the `slot_duration` of the
      parachain. This PR introduces a more flexible model, where we try to
      author multiple blocks in a single slot if the runtime allows it.
      
      The block authoring loop is largely the same. The
      [`SlotTimer`](https://github.com/paritytech/polkadot-sdk/blob/f1935bd9/cumulus/cli...
  4. Feb 27, 2025
  5. Feb 07, 2025
    • Przemek Rzad's avatar
      Ensure license headers match the Cargo manifest licenses (#5776) · 3726493d
      Przemek Rzad authored
      
      - Closes https://github.com/paritytech/license-scanner/issues/44
      - Silent because only comments are changed in the crates.
      
      ## What's inside
      
      First, we change the file traversal mechanism from shell globbing to
      walking through files which happens inside the `license-scanner` - so it
      has knowledge about directory structure and can correlate files with
      corresponding Cargo manifest.
      
      Next, added `MIT-0` and `Unlicense` to the allowed list of licenses.
      `Unlicense` appears only once across {Substrate,Cumulus,Polkadot} - in
      `penpal-runtime`.
      
      Finally, updated headers in files that do not match the corresponding
      manifest license.
      
      ---------
      
      Co-authored-by: Yuri Volkov's avatarcornholio <0@mcornholio.ru>
  6. Feb 03, 2025
    • Alin Dima's avatar
      deprecate AsyncBackingParams (#7254) · 4cd07c56
      Alin Dima authored
      
      Part of https://github.com/paritytech/polkadot-sdk/issues/5079.
      
      Removes all usage of the static async backing params, replacing them
      with dynamically computed equivalent values (based on the claim queue
      and scheduling lookahead).
      
      Adds a new runtime API for querying the scheduling lookahead value. If
      not present, falls back to 3 (the default value that is backwards
      compatible with values we have on production networks for
      allowed_ancestry_len)
      
      Also resolves most of
      https://github.com/paritytech/polkadot-sdk/issues/4447, removing code
      that handles async backing not yet being enabled.
      While doing this, I removed the support for collation protocol version 1
      on collators, as it only worked for leaves not supporting async backing
      (which are none).
      I also unhooked the legacy v1 statement-distribution (for the same
      reason as above). That subsystem is basically dead code now, so I had to
      remove some of its tests as they would no longer pass (since the
      subsystem no longer sends messages to the legacy variant). I did not
      remove the entire legacy subsystem yet, as that would pollute this PR
      too much. We can remove the entire v1 and v2 validation protocols in a
      follow up PR.
      
      In another PR: remove test files with names `prospective_parachains`
      (it'd pollute this PR if we do now)
      
      TODO:
      - [x] add deprecation warnings
      - [x] prdoc
      
      ---------
      
      Co-authored-by: default avatarcmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
  7. Jan 28, 2025
    • Alin Dima's avatar
      cumulus: bump PARENT_SEARCH_DEPTH and add test for 12-core elastic scaling (#6983) · e6aad5b0
      Alin Dima authored
      On top of https://github.com/paritytech/polkadot-sdk/pull/6757
      
      Fixes https://github.com/paritytech/polkadot-sdk/issues/6858 by bumping
      the `PARENT_SEARCH_DEPTH` constant to a larger value (30) and adds a
      zombienet-sdk test that exercises the 12-core scenario.
      
      This is a node-side limit that restricts the number of allowed pending
      availability candidates when choosing the parent parablock during
      authoring.
      This limit is rather redundant, as the parachain runtime already
      restricts the unincluded segment length to the configured value in the
      [FixedVelocityConsensusHook](https://github.com/paritytech/polkadot-sdk/blob/88d900af
      
      /cumulus/pallets/aura-ext/src/consensus_hook.rs#L35)
      (which ideally should be equal to this `PARENT_SEARCH_DEPTH`).
      
      For 12 cores, a value of 24 should be enough, but I bumped it to 30 to
      have some extra buffer.
      
      There are two other potential ways of fixing this:
      - remove this constant altogether, as the parachain runtime already
      makes those guarantees. Chose not to do this, as it can't hurt to have
      an extra safeguard
      - set this value to be equal to the uninlcuded segment size. This value
      however is not exposed to the node-side and would require a new runtime
      API, which seems overkill for a redundant check.
      
      ---------
      
      Co-authored-by: default avatarJavier Viola <javier@parity.io>
  8. Jan 22, 2025
  9. Jan 20, 2025
    • Sebastian Kunert's avatar
      Collator: Fix `can_build_upon` by always allowing to build on included block (#7205) · 06f5d486
      Sebastian Kunert authored
      Follow-up to #6825, which introduced this bug.
      
      We use the `can_build_upon` method to ask the runtime if it is fine to
      build another block. The runtime checks this based on the
      [`ConsensusHook`](https://github.com/paritytech/polkadot-sdk/blob/c1b7c302/cumulus/pallets/aura-ext/src/consensus_hook.rs#L110-L110)
      implementation, the most popular one being the `FixedConsensusHook`.
      
      In #6825 I removed a check that would always allow us to build when we
      are building on an included block. Turns out this check is still
      required when:
      1. The [`UnincludedSegment`
      ](https://github.com/paritytech/polkadot-sdk/blob/c1b7c302
      
      /cumulus/pallets/parachain-system/src/lib.rs#L758-L758)
      storage item in pallet-parachain-system is equal or larger than the
      unincluded segment.
      2. We are calling the `can_build_upon` runtime API where the included
      block has progressed offchain to the current parent block (so last entry
      in the `UnincludedSegment` storage item).
      
      In this scenario the last entry in `UnincludedSegment` does not have a
      hash assigned yet (because it was not available in `on_finalize` of the
      previous block). So the unincluded segment will be reported at its
      maximum length which will forbid building another block.
      
      Ideally we would have a more elegant solution than to rely on the
      node-side here. But for now the check is reintroduced and a test is
      added to not break it again by accident.
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarMichal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com>
  10. Jan 14, 2025
    • Sebastian Kunert's avatar
      Parachains: Use relay chain slot for velocity measurement (#6825) · d5539aa6
      Sebastian Kunert authored
      
      closes #3967 
      
      ## Changes
      We now use relay chain slots to measure velocity on chain. Previously we
      were storing the current parachain slot. Then in `on_state_proof` of the
      `ConsensusHook` we were checking how many blocks were athored in the
      current parachain slot. This works well when the parachain slot time and
      relay chain slot time is the same. With elastic scaling, we can have
      parachain slot times lower than that of the relay chain. In these cases
      we want to measure velocity in relation to the relay chain. This PR
      adjusts that.
      
      
      ##  Migration
      This PR includes a migration. Storage item `SlotInfo` of pallet
      `aura-ext` is renamed to `RelaySlotInfo` to better reflect its new
      content. A migration has been added that just kills the old storage
      item. `RelaySlotInfo` will be `None` initially but its value will be
      adjusted after one new relay chain slot arrives.
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
  11. Jan 06, 2025
    • Sebastian Kunert's avatar
      Avoid incomplete block import pipeline with full verifying import queue (#7050) · 1dcff3df
      Sebastian Kunert authored
      ## Problem
      In the parachain template we use the [fully verifying import queue
      
      ](https://github.com/paritytech/polkadot-sdk/blob/3d9eddbe/cumulus/client/consensus/aura/src/equivocation_import_queue.rs#L224-L224)
      which does extra equivocation checks.
      
      However, when we import a warp synced block with state, we don't set a
      fork choice, leading to an incomplete block import pipeline and error
      here:
      https://github.com/paritytech/polkadot-sdk/blob/3d9eddbe/substrate/client/service/src/client/client.rs#L488-L488
      
      This renders warp sync useless for chains using this import queue.
      
      ## Fix
      The fix is to always import a block with state as best block, as we
      already do in the normal Aura Verifier.
      In a follow up we should also take another look into unifying the usage
      of the different import queues.
      
      fixes https://github.com/paritytech/project-mythical/issues/256
      
      ---------
      
      Co-authored-by: command-bot <>
  12. Dec 20, 2024
    • Xavier Lau's avatar
      Reorder dependencies' keys (#6967) · a843d15e
      Xavier Lau authored
      
      It doesn't make sense to only reorder the features array.
      
      For example:
      
      This makes it hard for me to compare the dependencies and features,
      especially some crates have a really really long dependencies list.
      ```toml​
      [dependencies]
      c = "*"
      a = "*"
      b = "*"
      
      [features]
      std = [
        "a",
        "b",
        "c",
      ]
      ```
      
      This makes my life easier.
      ```toml​
      [dependencies]
      a = "*"
      b = "*"
      c = "*"
      
      [features]
      std = [
        "a",
        "b",
        "c",
      ]
      ```
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      Co-authored-by: command-bot <>
  13. Dec 18, 2024
  14. Dec 13, 2024
  15. Dec 03, 2024
  16. Nov 21, 2024
  17. Nov 05, 2024
  18. Oct 07, 2024
  19. Sep 23, 2024
    • Alin Dima's avatar
      elastic scaling: add core selector to cumulus (#5372) · b9eb68bc
      Alin Dima authored
      Partially implements
      https://github.com/paritytech/polkadot-sdk/issues/5048
      
      - adds a core selection runtime API to cumulus and a generic way of
      configuring it for a parachain
      - modifies the slot based collator to utilise the claim queue and the
      generic core selection
      
      What's left to be implemented (in a follow-up PR):
      - add the UMP signal for core selection into the parachain-system pallet
      
      View the RFC for more context:
      https://github.com/polkadot-fellows/RFCs/pull/103
      
      ---------
      
      Co-authored-by: command-bot <>
  20. Aug 27, 2024
  21. Aug 15, 2024
  22. Jul 19, 2024
    • Bastian Köcher's avatar
      Implements `PoV` export and local validation (#4640) · d649746e
      Bastian Köcher authored
      This pull requests adds a new CLI flag to `polkadot-parachains`
      `--export-pov-to-path`. This CLI flag will instruct the node to export
      any `PoV` that it build locally to export to the given folder. Then
      these `PoV` files can be validated using the introduced
      `cumulus-pov-validator`. The combination of export and validation can be
      used for debugging parachain validation issues that may happen on the
      relay chain.
  23. Jul 05, 2024
    • Sebastian Kunert's avatar
      Introduce basic slot-based collator (#4097) · e44f61af
      Sebastian Kunert authored
      Part of #3168 
      On top of #3568
      
      ### Changes Overview
      - Introduces a new collator variant in
      `cumulus/client/consensus/aura/src/collators/slot_based/mod.rs`
      - Two tasks are part of that module, one for block building and one for
      collation building and submission.
      - Introduces a new variant of `cumulus-test-runtime` which has 2s slot
      duration, used for zombienet testing
      - Zombienet tests for the new collator
      
      **Note:** This collator is considered experimental and should only be
      used for testing and exploration for now.
      
      ### Comparison with `lookahead` collator
      - The new variant is slot based, meaning it waits for the next slot of
      the parachain, then starts authoring
      - The search for potential parents remains mostly unchanged from
      lookahead
      - As anchor, we use the current best relay parent
      - In general, the new collator tends to be anchored to one relay parent
      earlier. `lookahead` generally waits for a new relay block to arrive
      before it attempts to build a block. ...
  24. Jun 26, 2024
    • Nazar Mokrynskyi's avatar
      Block import and verification refactoring (#4844) · 0ed3f04d
      Nazar Mokrynskyi authored
      A few refactorings to block import and block verification that should
      not be controversial.
      
      Block verification before block import is stateless by design as
      described in https://substrate.stackexchange.com/a/1322/25 and the fact
      that it wasn't yet I consider to be a bug. Some code that requires it
      had to use `Mutex`, but I do not expect it to have a measurable
      performance impact.
      
      Similarly with block import checking whether block preconditions should
      not be an exclusive operation, there is nothing fundamentally wrong with
      checking a few competing blocks whose parent blocks exist at the same
      time (and even import them concurrently later, though IIRC this is not
      yet implemented either).
      
      They were originally a part of
      https://github.com/paritytech/polkadot-sdk/pull/4842 and upstreaming
      will help us to reduce the size of the patch we need to apply on top of
      upstream code at Subspace every time we upgrade. There are no new
      features introduced here, just refactoring to get rid of unnecessary
      requirements.
  25. Jun 24, 2024
    • Oliver Tale-Yazdi's avatar
      Lift all dependencies (the big one) (#4716) · 8efa0544
      Oliver Tale-Yazdi authored
      
      After preparing in https://github.com/paritytech/polkadot-sdk/pull/4633,
      we can lift also all internal dependencies up to the workspace.
      
      This does not actually change anything, but uses `workspace = true` for
      all dependencies. You can check it with:
      ```bash
      git checkout -q $(git merge-base oty-lift-all-deps origin/master)
      cargo tree -e features > master.out
      
      git checkout -q oty-lift-all-deps
      cargo tree -e features > new.out
      diff master.out new.out
      ```
      
      It did not yet lift 100% of dependencies, some inside of `target.*` or
      some that had conflicting aliases introduced recently. But i will do
      these together in a follow-up with CI checks.
      
      Can be reproduced with [zepter](https://github.com/ggwpez/zepter/):
      `zepter transpose d lift-to-workspace "regex:.*" --version-resolver
      highest --skip-package "polkadot-sdk" --ignore-errors --fix`.
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
  26. Jun 18, 2024
    • Bastian Köcher's avatar
      Unify `code_at` logic between `CallExecutor` & `Client` (#4618) · 029a6562
      Bastian Köcher authored
      This unifies the logic between `CallExecutor` and `Client` when it comes
      to fetching the `code` for a given block. The actual `code` depends on
      potential overrides/substitutes.
      
      Besides that it changes the logic in the lookahead collator on which
      `ValidationCodeHash` it sends to the validator alongside the `POV`. We
      are now sending the code hash as found on the relay chain. This is done
      as the local node could run with an override which is compatible to the
      validation code on the relay chain, but has a different hash.
  27. Jun 05, 2024
    • Oliver Tale-Yazdi's avatar
      Unify dependency aliases (#4633) · d2fd5364
      Oliver Tale-Yazdi authored
      
      Inherited workspace dependencies cannot be renamed by the crate using
      them (see [1](https://github.com/rust-lang/cargo/issues/12546),
      [2](https://stackoverflow.com/questions/76792343/can-inherited-dependencies-in-rust-be-aliased-in-the-cargo-toml-file)).
      Since we want to use inherited workspace dependencies everywhere, we
      first need to unify all aliases that we use for a dependency throughout
      the workspace.
      The umbrella crate is currently excluded from this procedure, since it
      should be able to export the crates by their original name without much
      hassle.
      
      For example: one crate may alias `parity-scale-codec` to `codec`, while
      another crate does not alias it at all. After this change, all crates
      have to use `codec` as name. The problematic combinations were:
      - conflicting aliases: most crates aliases as `A` but some use `B`.
      - missing alias: most of the crates alias a dep but some dont.
      - superfluous alias: most crates dont alias a dep but some do.
      
      The script that i used first determines whether most crates opted to
      alias a dependency or not. From that info it decides whether to use an
      alias or not. If it decided to use an alias, the most common one is used
      everywhere.
      
      To reproduce, i used
      [this](https://github.com/ggwpez/substrate-scripts/blob/master/uniform-crate-alias.py)
      python script in combination with
      [this](https://github.com/ggwpez/zepter/blob/38ad10585fe98a5a86c1d2369738bc763a77057b/renames.json)
      error output from Zepter.
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
  28. May 15, 2024
    • Alexandru Gheorghe's avatar
      Make vscode rustanalyzer fast again (#4470) · e31fcffb
      Alexandru Gheorghe authored
      
      This bump of versions:
      
      https://github.com/paritytech/polkadot-sdk/pull/4409/files#diff-13ee4b2252c9e516a0547f2891aa2105c3ca71c6d7a1e682c69be97998dfc87eR11936
      
      reintroduced a dependency to proc-macro-crate 2.0.0 which is suffering
      from: https://github.com/bkchr/proc-macro-crate/pull/42 this, so bump
      parity-scale-codec to a newer version to eliminate the bad
      proc-macro-crate 2.0.0 dependency.
      
      ---------
      
      Signed-off-by: default avatarAlexandru Gheorghe <alexandru.gheorghe@parity.io>
      Co-authored-by: command-bot <>
  29. Apr 28, 2024
    • Squirrel's avatar
      remove unnessisary use statements due to 2021 core prelude (#4183) · 954150f3
      Squirrel authored
      Some traits are already included in the 2021 prelude and so shouldn't be
      needed to use explicitly:
      
      use `convert::TryFrom`, `convert::TryInto`, and `iter::FromIterator` are
      removed.
      
      ( https://doc.rust-lang.org/core/prelude/rust_2021/ )
      
      No breaking changes or change of functionality, so I think no PR doc is
      needed in this case.
      
      (Motivation: Removes some references to `sp-std`)
  30. Apr 11, 2024
    • s0me0ne-unkn0wn's avatar
      Enable mainnet system parachains to use async backing-enabled collator (#3630) · f13408d5
      s0me0ne-unkn0wn authored
      This is phase 2 of async backing enablement for the system parachains on
      the production networks. ~~It should be merged after
      polkadot-fellows/runtimes#228 is enacted. After it is released,~~ all
      the system parachain collators should be upgraded, and then we can
      proceed with phase 3, which will enable async backing in the runtimes.
      
      UPDATE: Indeed, we don't need to wait for the runtime upgrade enactions.
      The lookahead collator handles the transition by itself, so we can
      upgrade ASAP.
      
      ## Scope of changes
      
      Here, we eliminate the dichotomy of having "generic Aura collators" for
      the production system parachains and "lookahead Aura collators" for the
      testnet system parachains. Now, all the collators are started as
      lookahead ones, preserving the logic of transferring from the shell node
      to Aura-enabled collators for the asset hubs. So, indeed, it simplifies
      the parachain service logic, which cannot but rejoice.
  31. Apr 09, 2024
  32. Apr 08, 2024
  33. Apr 02, 2024
  34. Mar 27, 2024
  35. Mar 25, 2024
    • Serban Iorga's avatar
      [Bridges] Move chain definitions to separate folder (#3822) · 0711729d
      Serban Iorga authored
      Related to
      https://github.com/paritytech/parity-bridges-common/issues/2538
      
      This PR doesn't contain any functional changes. 
      
      The PR moves specific bridged chain definitions from
      `bridges/primitives` to `bridges/chains` folder in order to facilitate
      the migration of the `parity-bridges-repo` into `polkadot-sdk` as
      discussed in https://hackmd.io/LprWjZ0bQXKpFeveYHIRXw?view
      
      Apart from this it also includes some cosmetic changes to some
      `Cargo.toml` files as a result of running `diener workspacify`.
  36. Feb 28, 2024
  37. Feb 22, 2024
  38. Feb 13, 2024
    • Bastian Köcher's avatar
      Parachains-Aura: Only produce once per slot (#3308) · aa68ea58
      Bastian Köcher authored
      Given how the block production is driven for Parachains right now, with
      the enabling of async backing we would produce two blocks per slot.
      Until we have a proper collator implementation, the "hack" is to prevent
      the production of multiple blocks per slot.
      
      
      Closes: https://github.com/paritytech/polkadot-sdk/issues/3282
    • s0me0ne-unkn0wn's avatar
      Use dynamic aura slot duration in lookahead collator (#3211) · ec6bf5d0
      s0me0ne-unkn0wn authored
      It's a follow-up of #2949. It enables the lookahead collator to
      dynamically adjust the aura slot size, which may change during the
      runtime upgrade. It also addressed a couple of issues with time
      constants I missed in the original PR.
      
      Good news: it works. The parachain successfully switches from sync
      backing with 12s slots to async backing with 6s slots.
      
      Bad news: during the transitional period of a single block in which the
      actual runtime upgrade is performed, it still gets the old slot duration
      of 12s (as it gets it from the best block), resulting in a runtime panic
      (logs follow). That doesn't affect the following block production of the
      parachain. Ideas on how to improve the situation are appreciated.
      
      <details>
      
      ```
      2024-02-05 12:59:36.373  INFO tokio-runtime-worker sc_basic_authorship::basic_authorship: [Parachain] :raised_hands: Starting consensus session on top of parent 0x6fd2d8f904f12c22531bfabf77b16dc84a6a29e45d9ae358aa6547fbf3f0438b    
      2024-02-05 12:59:36.373 ERROR tokio-runtime-worker runtime: [Parachain] panicked at /home/s0me0ne/wrk/parity/polkadot-sdk/cumulus/pallets/aura-ext/src/consensus_hook.rs:69:9:
      assertion `left == right` failed: slot number mismatch
        left: Slot(142261198)
       right: Slot(284522396)    
      2024-02-05 12:59:36.373  WARN tokio-runtime-worker sp_state_machine::overlayed_changes::changeset: [Parachain] 1 storage transactions are left open by the runtime. Those will be rolled back.    
      2024-02-05 12:59:36.373  WARN tokio-runtime-worker sp_state_machine::overlayed_changes::changeset: [Parachain] 1 storage transactions are left open by the runtime. Those will be rolled back.    
      2024-02-05 12:59:36.373  WARN tokio-runtime-worker basic-authorship: [Parachain] :exclamation: Inherent extrinsic returned unexpected error: Error at calling runtime api: Execution failed: Execution aborted due to trap: wasm trap: wasm `unreachable` instruction executed
      WASM backtrace:
      error while executing at wasm backtrace:
          0: 0x4e4a3b - <unknown>!rust_begin_unwind
          1: 0x46cf57 - <unknown>!core::panicking::panic_fmt::h3c280dba88683724
          2: 0x46d238 - <unknown>!core::panicking::assert_failed_inner::hebac5970933beb4d
          3: 0x3d00fc - <unknown>!core::panicking::assert_failed::h640a47e2fb5dfb4b
          4: 0xd0db3 - <unknown>!frame_support::storage::transactional::with_transaction::hcbc31515f81b2ee1
          5: 0x34d654 - <unknown>!<cumulus_pallet_parachain_system::pallet::Call<T> as frame_support::traits::dispatch::UnfilteredDispatchable>::dispatch_bypass_filter::{{closure}}::hb7c2c9a11fa88301
          6: 0x3547db - <unknown>!environmental::local_key::LocalKey<T>::with::h783f2605ae27d6d3
          7: 0x7f454 - <unknown>!<asset_hub_rococo_runtime::RuntimeCall as frame_support::traits::dispatch::UnfilteredDispatchable>::dispatch_bypass_filter::h5e11a01ab97c06c7
          8: 0x7f237 - <unknown>!<asset_hub_rococo_runtime::RuntimeCall as sp_runtime::traits::Dispatchable>::dispatch::h7f8ae4a8fede71ca
          9: 0x26a0f3 - <unknown>!frame_executive::Executive<System,Block,Context,UnsignedValidator,AllPalletsWithSystem,COnRuntimeUpgrade>::apply_extrinsic::h75e524ff34738391
         10: 0x282211 - <unknown>!BlockBuilder_apply_extrinsic. Dropping.    
      2024-02-05 12:59:36.374 ERROR tokio-runtime-worker runtime: [Parachain] panicked at /home/s0me0ne/wrk/parity/polkadot-sdk/substrate/frame/aura/src/lib.rs:416:9:
      assertion `left == right` failed: Timestamp slot must match `CurrentSlot`
        left: Slot(142261198)
       right: Slot(284522396)    
      2024-02-05 12:59:36.374  WARN tokio-runtime-worker sp_state_machine::overlayed_changes::changeset: [Parachain] 1 storage transactions are left open by the runtime. Those will be rolled back.    
      2024-02-05 12:59:36.374  WARN tokio-runtime-worker sp_state_machine::overlayed_changes::changeset: [Parachain] 1 storage transactions are left open by the runtime. Those will be rolled back.    
      2024-02-05 12:59:36.374  WARN tokio-runtime-worker basic-authorship: [Parachain] :exclamation:
      
       Inherent extrinsic returned unexpected error: Error at calling runtime api: Execution failed: Execution aborted due to trap: wasm trap: wasm `unreachable` instruction executed
      WASM backtrace:
      error while executing at wasm backtrace:
          0: 0x4e4a3b - <unknown>!rust_begin_unwind
          1: 0x46cf57 - <unknown>!core::panicking::panic_fmt::h3c280dba88683724
          2: 0x46d238 - <unknown>!core::panicking::assert_failed_inner::hebac5970933beb4d
          3: 0x3d00fc - <unknown>!core::panicking::assert_failed::h640a47e2fb5dfb4b
          4: 0x9ece6 - <unknown>!frame_support::storage::transactional::with_transaction::h26f75cb9f9462088
          5: 0x356d7e - <unknown>!environmental::local_key::LocalKey<T>::with::hbcf2d4e17b48fdb5
          6: 0x7f507 - <unknown>!<asset_hub_rococo_runtime::RuntimeCall as frame_support::traits::dispatch::UnfilteredDispatchable>::dispatch_bypass_filter::h5e11a01ab97c06c7
          7: 0x7f237 - <unknown>!<asset_hub_rococo_runtime::RuntimeCall as sp_runtime::traits::Dispatchable>::dispatch::h7f8ae4a8fede71ca
          8: 0x26a0f3 - <unknown>!frame_executive::Executive<System,Block,Context,UnsignedValidator,AllPalletsWithSystem,COnRuntimeUpgrade>::apply_extrinsic::h75e524ff34738391
          9: 0x282211 - <unknown>!BlockBuilder_apply_extrinsic. Dropping.    
      2024-02-05 12:59:36.374 DEBUG tokio-runtime-worker runtime::xcmp-queue-migration: [Parachain] Lazy migration finished: item gone    
      2024-02-05 12:59:36.374 ERROR tokio-runtime-worker runtime: [Parachain] panicked at /home/s0me0ne/wrk/parity/polkadot-sdk/cumulus/pallets/parachain-system/src/lib.rs:265:18:
      set_validation_data inherent needs to be present in every block!    
      2024-02-05 12:59:36.374 ERROR tokio-runtime-worker aura::cumulus: [Parachain] err=Error { inner: Proposing
      
      Caused by:
          0: Error at calling runtime api: Execution failed: Execution aborted due to trap: wasm trap: wasm `unreachable` instruction executed
             WASM backtrace:
             error while executing at wasm backtrace:
                 0: 0x4e4a3b - <unknown>!rust_begin_unwind
                 1: 0x46cf57 - <unknown>!core::panicking::panic_fmt::h3c280dba88683724
                 2: 0x46da8b - <unknown>!core::option::expect_failed::hdf18d99c3adabca7
                 3: 0x2134cb - <unknown>!<cumulus_pallet_parachain_system::pallet::Pallet<T> as frame_support::traits::hooks::OnFinalize<<<<T as frame_system::pallet::Config>::Block as sp_runtime::traits::HeaderProvider>::HeaderT as sp_runtime::traits::Header>::Number>>::on_finalize::hf98aac39802896ba
                 4: 0x26a9d6 - <unknown>!frame_executive::Executive<System,Block,Context,UnsignedValidator,AllPalletsWithSystem,COnRuntimeUpgrade>::idle_and_finalize_hook::h32775c0df0749d92
                 5: 0x26ad9f - <unknown>!frame_executive::Executive<System,Block,Context,UnsignedValidator,AllPalletsWithSystem,COnRuntimeUpgrade>::finalize_block::h15e5a1a6b9ca8032
                 6: 0x2822bd - <unknown>!BlockBuilder_finalize_block
          1: Execution failed: Execution aborted due to trap: wasm trap: wasm `unreachable` instruction executed
             WASM backtrace:
             error while executing at wasm backtrace:
                 0: 0x4e4a3b - <unknown>!rust_begin_unwind
                 1: 0x46cf57 - <unknown>!core::panicking::panic_fmt::h3c280dba88683724
                 2: 0x46da8b - <unknown>!core::option::expect_failed::hdf18d99c3adabca7
                 3: 0x2134cb - <unknown>!<cumulus_pallet_parachain_system::pallet::Pallet<T> as frame_support::traits::hooks::OnFinalize<<<<T as frame_system::pallet::Config>::Block as sp_runtime::traits::HeaderProvider>::HeaderT as sp_runtime::traits::Header>::Number>>::on_finalize::hf98aac39802896ba
                 4: 0x26a9d6 - <unknown>!frame_executive::Executive<System,Block,Context,UnsignedValidator,AllPalletsWithSystem,COnRuntimeUpgrade>::idle_and_finalize_hook::h32775c0df0749d92
                 5: 0x26ad9f - <unknown>!frame_executive::Executive<System,Block,Context,UnsignedValidator,AllPalletsWithSystem,COnRuntimeUpgrade>::finalize_block::h15e5a1a6b9ca8032
                 6: 0x2822bd - <unknown>!BlockBuilder_finalize_block }
      ```
      
      </details>
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
  39. Jan 26, 2024