Skip to content
Snippets Groups Projects
Unverified Commit 1dcff3df authored by Sebastian Kunert's avatar Sebastian Kunert Committed by GitHub
Browse files

Avoid incomplete block import pipeline with full verifying import queue (#7050)

## 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 <>
parent ffa90d0f
No related merge requests found
Pipeline #510725 waiting for manual action with stages
in 39 minutes and 18 seconds
......@@ -97,6 +97,7 @@ where
// This is done for example when gap syncing and it is expected that the block after the gap
// was checked/chosen properly, e.g. by warp syncing to this block using a finality proof.
if block_params.state_action.skip_execution_checks() || block_params.with_state() {
block_params.fork_choice = Some(ForkChoiceStrategy::Custom(block_params.with_state()));
return Ok(block_params)
}
......
title: Avoid incomplete block import pipeline with full verifying import queue
doc:
- audience: Node Dev
description: |-
When warp syncing a node using the equivocation checking verifier, we now properly set the fork_choice rule.
Affected are mostly nodes that are derived from the parachain template. Omni-node is not affected.
The prevents the error `ClientImport("Incomplete block import pipeline.")` after state sync.
crates:
- name: cumulus-client-consensus-aura
bump: patch
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment