Skip to content
Snippets Groups Projects
Commit 1c581aed authored by Sebastian Kunert's avatar Sebastian Kunert Committed by github-actions[bot]
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 <>
(cherry picked from commit 1dcff3df)
parent fb9b95d6
No related merge requests found
Pipeline #510726 waiting for manual action with stages
in 1 hour, 19 minutes, and 17 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