diff --git a/node/core/approval-voting/src/import.rs b/node/core/approval-voting/src/import.rs index cb8dea17a51e..c7d2b1588892 100644 --- a/node/core/approval-voting/src/import.rs +++ b/node/core/approval-voting/src/import.rs @@ -29,8 +29,9 @@ //! We maintain a rolling window of session indices. This starts as empty use polkadot_node_jaeger as jaeger; -use polkadot_node_primitives::approval::{ - self as approval_types, BlockApprovalMeta, RelayVRFStory, +use polkadot_node_primitives::{ + approval::{self as approval_types, BlockApprovalMeta, RelayVRFStory}, + MAX_FINALITY_LAG, }; use polkadot_node_subsystem::{ messages::{ @@ -299,7 +300,7 @@ pub(crate) async fn handle_new_head( head: Hash, finalized_number: &Option, ) -> SubsystemResult> { - const MAX_HEADS_LOOK_BACK: BlockNumber = 500; + const MAX_HEADS_LOOK_BACK: BlockNumber = MAX_FINALITY_LAG; let mut span = jaeger::Span::new(head, "approval-checking-import"); diff --git a/node/core/dispute-coordinator/src/real/initialized.rs b/node/core/dispute-coordinator/src/real/initialized.rs index ceb59e0e869d..f29a2fe96635 100644 --- a/node/core/dispute-coordinator/src/real/initialized.rs +++ b/node/core/dispute-coordinator/src/real/initialized.rs @@ -31,7 +31,7 @@ use sc_keystore::LocalKeystore; use polkadot_node_primitives::{ CandidateVotes, DisputeMessage, DisputeMessageCheckError, SignedDisputeStatement, - DISPUTE_WINDOW, + DISPUTE_WINDOW, MAX_FINALITY_LAG, }; use polkadot_node_subsystem::{ messages::{ @@ -69,9 +69,9 @@ use super::{ }; // The capacity and scrape depth are equal to the maximum allowed unfinalized depth. -const LRU_SCRAPED_BLOCKS_CAPACITY: usize = 500; -// This is in sync with `MAX_FINALITY_LAG` in relay chain selection. -const MAX_BATCH_SCRAPE_ANCESTORS: u32 = 500; +const LRU_SCRAPED_BLOCKS_CAPACITY: usize = MAX_FINALITY_LAG as usize; +// This is in sync with `MAX_FINALITY_LAG` in relay chain selection & node primitives. +const MAX_BATCH_SCRAPE_ANCESTORS: u32 = MAX_FINALITY_LAG; /// After the first active leaves update we transition to `Initialized` state. /// diff --git a/node/primitives/src/lib.rs b/node/primitives/src/lib.rs index 2d09d9c96357..9075a168f0b7 100644 --- a/node/primitives/src/lib.rs +++ b/node/primitives/src/lib.rs @@ -76,6 +76,11 @@ pub const BACKING_EXECUTION_TIMEOUT: Duration = Duration::from_secs(2); /// dispute participants. pub const APPROVAL_EXECUTION_TIMEOUT: Duration = Duration::from_secs(6); +/// Linked to `MAX_FINALITY_LAG` in relay chain selection, +/// `MAX_HEADS_LOOK_BACK` in `approval-voting` and +/// `MAX_BATCH_SCRAPE_ANCESTORS` in `dispute-coordinator` +pub const MAX_FINALITY_LAG: u32 = 500; + /// Type of a session window size. /// /// We are not using `NonZeroU32` here because `expect` and `unwrap` are not yet const, so global diff --git a/node/service/src/relay_chain_selection.rs b/node/service/src/relay_chain_selection.rs index 9f6cd50342ec..9e5842f5a909 100644 --- a/node/service/src/relay_chain_selection.rs +++ b/node/service/src/relay_chain_selection.rs @@ -38,6 +38,7 @@ use super::{HeaderProvider, HeaderProviderProvider}; use consensus_common::{Error as ConsensusError, SelectChain}; use futures::channel::oneshot; +use polkadot_node_primitives::MAX_FINALITY_LAG as PRIMITIVES_MAX_FINALITY_LAG; use polkadot_node_subsystem_util::metrics::{self, prometheus}; use polkadot_overseer::{AllMessages, Handle}; use polkadot_primitives::v2::{ @@ -53,9 +54,9 @@ use std::sync::Arc; /// or disputes. /// /// This is a safety net that should be removed at some point in the future. -// Until it's not, make sure to also update `MAX_HEADS_LOOK_BACK` in `approval-voting` -// and `MAX_BATCH_SCRAPE_ANCESTORS` in `dispute-coordinator` when changing its value. -const MAX_FINALITY_LAG: polkadot_primitives::v2::BlockNumber = 500; +// In sync with `MAX_HEADS_LOOK_BACK` in `approval-voting` +// and `MAX_BATCH_SCRAPE_ANCESTORS` in `dispute-coordinator`. +const MAX_FINALITY_LAG: polkadot_primitives::v2::BlockNumber = PRIMITIVES_MAX_FINALITY_LAG; const LOG_TARGET: &str = "parachain::chain-selection";