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

Parathreads Feature Branch #6969

Merged
merged 171 commits into from
Aug 17, 2023
Merged
Show file tree
Hide file tree
Changes from 169 commits
Commits
Show all changes
171 commits
Select commit Hold shift + click to select a range
707cd13
First baby steps
Dec 28, 2022
8d9662d
Split scheduler into several modules
Dec 30, 2022
a81caa9
Merge branch 'master' into alex/sched_abstraction
Jan 2, 2023
88f0c7b
Towards a more modular approach for scheduling
Jan 3, 2023
557abd5
Merge branch 'master' into alex/sched_abstraction
Jan 3, 2023
3a59bbc
move free_cores; IntoInterator -> BTreeMap
Jan 4, 2023
e6d3edb
Move clear()
Jan 4, 2023
4d92b33
Move more functions out of scheduler
Jan 5, 2023
f3ddbf8
Change weight composition
Jan 5, 2023
43f0eac
More abstraction
Jan 6, 2023
50ff809
Further refactor
Jan 9, 2023
875ca0c
Merge branch 'master' into alex/sched_abstraction
Jan 9, 2023
bb51612
clippy
Jan 9, 2023
a72d2a1
fmt
Jan 9, 2023
b277983
fix test-runtime
Jan 9, 2023
800fe63
Add parathreads pallet to construct_runtime!
Jan 10, 2023
7e68606
Make all runtimes use (Parachains, Parathreads) scheduling
Jan 10, 2023
4d2a090
Merge branch 'master' into alex/sched_abstraction
Jan 11, 2023
c12e2e6
Delete commented out code
Jan 11, 2023
a9ece0b
Merge branch 'master' into alex/sched_abstraction
Jan 11, 2023
664bafa
Remove parathreads scheduler from westend, rococo, and kusama
Jan 17, 2023
3ef951d
fix rococo, westend, and kusama config
Jan 17, 2023
787c59c
Revert "fix rococo, westend, and kusama config"
Jan 17, 2023
d4bc077
Revert "Remove parathreads scheduler from westend, rococo, and kusama"
Jan 17, 2023
afbad12
Remove CoreIndex from free_cores
Jan 17, 2023
1e4d0dc
Remove unnecessary struct for parathreads
Jan 18, 2023
c15e47b
parathreads provider take 1
Jan 31, 2023
f06fdfd
Comment out parathread tests
Feb 1, 2023
ae66127
Pop into lookahead
Feb 1, 2023
ad892b1
fmt
Feb 1, 2023
a5ec46f
Fill lookahead with two entries for parachains
Feb 1, 2023
bad82a7
fmt
Feb 1, 2023
1857a4f
Merge branch 'master' into alex/sched_abstraction_parts2
Feb 1, 2023
c5fc49c
Merge branch 'master' into alex/sched_abstraction_parts2
Feb 6, 2023
3b4c94e
Current stage
Feb 14, 2023
6d95d86
Towards ab parathreads
Feb 20, 2023
d89121b
Merge branch 'master' into alex/sched_abstraction_parts2
Feb 20, 2023
565fb04
no AB use
Feb 20, 2023
eaa8b7d
Make tests typecheck
Feb 21, 2023
438c43f
quick hack to set scheduling lookahead to 1
Feb 22, 2023
c4e7f74
Fix scheduler tests
Feb 22, 2023
04499d2
fix paras_inherent tests
Feb 22, 2023
9f58665
misc
Feb 22, 2023
627894b
Update more of a test
Feb 23, 2023
01b604f
cfg(test)
Feb 23, 2023
fc671f6
Merge branch 'master' into alex/sched_abstraction_parts2
Feb 27, 2023
36da979
Merge branch 'master' into alex/sched_abstraction_parts2
Feb 28, 2023
d6d7c48
some cleanup
Feb 28, 2023
15a5a27
Undo paras_inherent changes
Mar 1, 2023
f9889b4
Adjust paras inherent tests
Mar 1, 2023
9ec783c
Undo changes to v2 primitives
Mar 1, 2023
cf909db
Undo v2 mod changes to tests
Mar 1, 2023
7b1ba80
minor
Mar 1, 2023
f962bf4
Remove parathreads assigner and pallet
Mar 1, 2023
45fd17e
minor
Mar 1, 2023
a603593
minor
Mar 2, 2023
bf5ebd9
Merge branch 'master' into alex/sched_abstraction_parts2
Mar 2, 2023
f2ed276
more cleanup
Mar 2, 2023
449bba6
fmt
Mar 2, 2023
6e5c153
minor
Mar 2, 2023
fdf6dfa
minor
Mar 2, 2023
320ca14
minor
Mar 2, 2023
7afede7
Remove on_new_session from assignment provider
Mar 2, 2023
73c4106
Make adder collator integration test pass
Mar 9, 2023
71637c6
Merge branch 'master' into alex/sched_abstraction_parts2
Mar 9, 2023
a2e45e2
disable failing unit tests
Mar 9, 2023
a31520b
minor
Mar 9, 2023
7082905
minor
Mar 10, 2023
7ae42db
Merge branch 'master' into alex/sched_abstraction_parts2
Mar 10, 2023
ed5b1f4
re-enable one unit test
Mar 16, 2023
0f726bb
minor
Mar 16, 2023
8c49209
handle retries, add concluded para to pop interface
Mar 17, 2023
6d6cc4c
comment out unused code
Mar 17, 2023
cd89abb
Remove core_para from interface
Mar 20, 2023
499375c
Remove first claimqueue element on clear if None instead removing all…
Mar 20, 2023
bc9422f
Move claimqueue get out of loop
Mar 20, 2023
6e069a0
Use VecDeque instead of Ved in ClaimQueue
Mar 20, 2023
0bf3d70
Make occupied() AB ready(?)
Mar 20, 2023
6047879
handle freed disputed in clear_and_fill_claimqueue
Mar 21, 2023
3a97c4d
clear_and_fill_claimqueue returns scheduled Vec
Mar 21, 2023
95fcc21
Rename and minor refactor
Mar 22, 2023
a89bc3b
return position of assignment taken from claimqueue
Mar 22, 2023
d6cdc04
Merge branch 'master' into alex/sched_abstraction_parts2
Mar 22, 2023
2d8b21e
minor
Mar 22, 2023
e9352e9
Fix session boundary parachains number change + extended test
Mar 24, 2023
e80ca34
Fix runtimes
Mar 24, 2023
4b8c60c
Fix polkadot runtime
Mar 24, 2023
b6c895d
Remove polkadot pallet from benchmarks
Mar 24, 2023
6ff0869
fix test runtime
Mar 24, 2023
6da73f8
Add storage migration
Mar 28, 2023
e78a6ad
Minor refactor
Mar 28, 2023
69e44c6
Merge branch 'master' into alex/sched_abstraction_parts2
Mar 28, 2023
7a45c7c
Minor
Mar 28, 2023
8073fe6
migratin typechecks
Mar 28, 2023
455c806
Add migration to runtimes
Mar 28, 2023
62bac7b
Merge branch 'master' into ag_av_parathreads
Apr 4, 2023
c032116
Towards modular scheduling II (#6568)
Apr 4, 2023
1a7788e
Add get_max_retries function to provider interface (#7047)
Apr 12, 2023
d22854b
Merge branch 'master' into ag_av_parathreads
Apr 17, 2023
c2936b5
Merge branch 'master' into ag_av_parathreads
Apr 19, 2023
4d9659a
Merge branch 'master' into ag_av_parathreads
Apr 25, 2023
a3bd816
Merge branch 'master' into ag_av_parathreads
May 1, 2023
22ca8bb
Merge branch 'master' into ag_av_parathreads
May 4, 2023
0da623b
Fix merge commit
May 4, 2023
40d6fe8
Merge branch 'master' into ag_av_parathreads
May 5, 2023
6a927ad
Merge branch 'master' into ag_av_parathreads
May 9, 2023
8d7db03
Merge branch 'master' into ag_av_parathreads
May 12, 2023
af13c8d
Merge branch 'master' into ag_av_parathreads
May 16, 2023
ec5e3a6
Merge branch 'master' into ag_av_parathreads
May 17, 2023
69bca0b
Merge branch 'master' into ag_av_parathreads
May 19, 2023
2d72b8d
Merge branch 'master' into ag_av_parathreads
May 22, 2023
bf562df
pebkac
May 22, 2023
7597c82
fix merge
May 22, 2023
0718c2e
update cargo.lock
May 22, 2023
da889f3
fix merge
May 22, 2023
8588b0c
Merge branch 'master' into ag_av_parathreads
May 23, 2023
cc9fd21
Merge branch 'master' into ag_av_parathreads
May 23, 2023
ef4ed6b
fix merge
May 23, 2023
f9ed258
Merge branch 'master' into ag_av_parathreads
May 24, 2023
f1763c1
Merge branch 'master' into ag_av_parathreads
May 25, 2023
cf5cbb0
Merge branch 'master' into ag_av_parathreads
May 25, 2023
8d7acb1
Merge branch 'master' into ag_av_parathreads
May 26, 2023
908c9b0
Merge branch 'master' into ag_av_parathreads
May 29, 2023
ef7281d
Merge branch 'master' into ag_av_parathreads
May 30, 2023
6a19a67
Merge branch 'master' into ag_av_parathreads
Jun 1, 2023
fbf7355
Merge branch 'master' into ag_av_parathreads
Jun 2, 2023
f691945
Merge branch 'master' into ag_av_parathreads
Jun 5, 2023
3313000
Merge branch 'master' into ag_av_parathreads
Jun 6, 2023
5950104
Merge branch 'master' into ag_av_parathreads
antonva Jun 13, 2023
f0e5617
Merge branch 'master' into ag_av_parathreads
antonva Jun 20, 2023
e848288
Use btreemap instead of vec, fix scheduler calls.
antonva Jun 20, 2023
e0e2d56
Use imported `ScheduledCore`
antonva Jun 20, 2023
fdf1771
Remove unused import in inclusion tests
antonva Jun 20, 2023
78ae7e2
Use keys() instead of mapping over a BTreeMap
antonva Jun 20, 2023
191c768
Merge branch 'master' into ag_av_parathreads
antonva Jun 20, 2023
8b97fc2
Fix migrations for parachains scheduler
antonva Jun 20, 2023
c5a8a23
Merge branch 'master' into ag_av_parathreads
antonva Jun 22, 2023
186d513
Merge branch 'master' into ag_av_parathreads
antonva Jun 24, 2023
1424ce5
Merge branch 'master' into ag_av_parathreads
antonva Jun 26, 2023
0be62fd
Merge branch 'master' into ag_av_parathreads
antonva Jul 3, 2023
beca593
Merge branch 'master' into ag_av_parathreads
tdimitrov Jul 5, 2023
3cfac81
Merge branch 'master' into ag_av_parathreads
antonva Jul 13, 2023
fa125dc
Merge branch 'master' into ag_av_parathreads
antonva Jul 17, 2023
ee4ea2b
Use BlockNumberFor<T> everywhere in scheduler
antonva Jul 17, 2023
0f0d8a7
Merge branch 'master' into ag_av_parathreads
antonva Jul 19, 2023
a6fb79f
Merge branch 'master' into ag_av_parathreads
antonva Jul 26, 2023
4f92e7c
Merge branch 'master' into ag_av_parathreads
antonva Jul 31, 2023
3f6790d
Merge branch 'master' into ag_av_parathreads
antonva Aug 2, 2023
e5afc0b
Merge branch 'master' into ag_av_parathreads
antonva Aug 8, 2023
4110d80
Merge branch 'master' into ag_av_parathreads
antonva Aug 10, 2023
23d2772
Merge branch 'master' into ag_av_parathreads
antonva Aug 11, 2023
c6d8e69
Add on demand assignment provider pallet (#7110)
antonva Aug 11, 2023
264bc2d
On Demand - update weights and small nits (#7605)
antonva Aug 16, 2023
5bda9b6
Unify assignment provider parameters into one call (#7606)
antonva Aug 16, 2023
615d55a
Merge branch 'master' into ag_av_parathreads
antonva Aug 16, 2023
0784dae
Fix ttl handling in benchmark builder
antonva Aug 16, 2023
00d3456
Run cargo format
antonva Aug 16, 2023
5fe1bd3
Remove obsolete test.
Aug 16, 2023
f11c20a
Small improvement.
Aug 16, 2023
8447d05
Use same migration pattern as config module
antonva Aug 16, 2023
18ff5bb
Remove old TODO
antonva Aug 16, 2023
246eaf2
Change log target name for assigner on demand
antonva Aug 16, 2023
71a1264
Merge branch 'master' into ag_av_parathreads
antonva Aug 16, 2023
268e2cb
Fix migration
antonva Aug 16, 2023
e7375b9
Fix clippy warnings
antonva Aug 16, 2023
5182fd6
Add HostConfiguration storage migration to V8
tdimitrov Aug 16, 2023
26aee82
Add `MigrateToV8` to unreleased migrations for all runtimes
tdimitrov Aug 16, 2023
7f6e4ba
Fix storage version check for config v8
antonva Aug 16, 2023
bdad0ed
Set `StorageVersion` to 8 in `MigrateToV8`
tdimitrov Aug 17, 2023
710c934
Remove dups.
Aug 17, 2023
9c68d82
Update primitives/src/v5/mod.rs
eskimor Aug 17, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 6 additions & 36 deletions node/core/backing/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ use polkadot_node_subsystem_util::{
request_validators, Validator,
};
use polkadot_primitives::{
BackedCandidate, CandidateCommitments, CandidateHash, CandidateReceipt, CollatorId,
BackedCandidate, CandidateCommitments, CandidateHash, CandidateReceipt,
CommittedCandidateReceipt, CoreIndex, CoreState, Hash, Id as ParaId, PvfExecTimeoutKind,
SigningContext, ValidatorId, ValidatorIndex, ValidatorSignature, ValidityAttestation,
};
Expand Down Expand Up @@ -354,7 +354,7 @@ async fn handle_active_leaves_update<Context>(
let group_index = group_rotation_info.group_for_core(core_index, n_cores);
if let Some(g) = validator_groups.get(group_index.0 as usize) {
if validator.as_ref().map_or(false, |v| g.contains(&v.index())) {
assignment = Some((scheduled.para_id, scheduled.collator));
assignment = Some(scheduled.para_id);
}
groups.insert(scheduled.para_id, g.clone());
}
Expand All @@ -363,15 +363,15 @@ async fn handle_active_leaves_update<Context>(

let table_context = TableContext { groups, validators, validator };

let (assignment, required_collator) = match assignment {
let assignment = match assignment {
None => {
assignments_span.add_string_tag("assigned", "false");
(None, None)
None
},
Some((assignment, required_collator)) => {
Some(assignment) => {
assignments_span.add_string_tag("assigned", "true");
assignments_span.add_para_id(assignment);
(Some(assignment), required_collator)
Some(assignment)
},
};

Expand All @@ -381,7 +381,6 @@ async fn handle_active_leaves_update<Context>(
let job = CandidateBackingJob {
parent,
assignment,
required_collator,
issued_statements: HashSet::new(),
awaiting_validation: HashSet::new(),
fallbacks: HashMap::new(),
Expand Down Expand Up @@ -412,8 +411,6 @@ struct CandidateBackingJob<Context> {
parent: Hash,
/// The `ParaId` assigned to this validator
assignment: Option<ParaId>,
/// The collator required to author the candidate, if any.
required_collator: Option<CollatorId>,
/// Spans for all candidates that are not yet backable.
unbacked_candidates: HashMap<CandidateHash, jaeger::Span>,
/// We issued `Seconded`, `Valid` or `Invalid` statements on about these candidates.
Expand Down Expand Up @@ -913,21 +910,6 @@ impl<Context> CandidateBackingJob<Context> {
candidate: &CandidateReceipt,
pov: Arc<PoV>,
) -> Result<(), Error> {
// Check that candidate is collated by the right collator.
if self
.required_collator
.as_ref()
.map_or(false, |c| c != &candidate.descriptor().collator)
{
// Break cycle - bounded as there is only one candidate to
// second per block.
ctx.send_unbounded_message(CollatorProtocolMessage::Invalid(
self.parent,
candidate.clone(),
));
return Ok(())
}

let candidate_hash = candidate.hash();
let mut span = self.get_unbacked_validation_child(
root_span,
Expand Down Expand Up @@ -1171,25 +1153,13 @@ impl<Context> CandidateBackingJob<Context> {
return Ok(())
}

let descriptor = attesting.candidate.descriptor().clone();

gum::debug!(
target: LOG_TARGET,
candidate_hash = ?candidate_hash,
candidate_receipt = ?attesting.candidate,
"Kicking off validation",
);

// Check that candidate is collated by the right collator.
if self.required_collator.as_ref().map_or(false, |c| c != &descriptor.collator) {
// If not, we've got the statement in the table but we will
// not issue validation work for it.
//
// Act as though we've issued a statement.
self.issued_statements.insert(candidate_hash);
return Ok(())
}

let bg_sender = ctx.sender().clone();
let pov = PoVData::FetchFromValidator {
from_validator: attesting.from_validator,
Expand Down
120 changes: 3 additions & 117 deletions node/core/backing/src/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ use polkadot_node_subsystem::{
};
use polkadot_node_subsystem_test_helpers as test_helpers;
use polkadot_primitives::{
CandidateDescriptor, CollatorId, GroupRotationInfo, HeadData, PersistedValidationData,
PvfExecTimeoutKind, ScheduledCore,
CandidateDescriptor, GroupRotationInfo, HeadData, PersistedValidationData, PvfExecTimeoutKind,
ScheduledCore,
};
use sp_application_crypto::AppCrypto;
use sp_keyring::Sr25519Keyring;
Expand Down Expand Up @@ -98,14 +98,10 @@ impl Default for TestState {
let group_rotation_info =
GroupRotationInfo { session_start_block: 0, group_rotation_frequency: 100, now: 1 };

let thread_collator: CollatorId = Sr25519Keyring::Two.public().into();
let availability_cores = vec![
CoreState::Scheduled(ScheduledCore { para_id: chain_a, collator: None }),
CoreState::Scheduled(ScheduledCore { para_id: chain_b, collator: None }),
CoreState::Scheduled(ScheduledCore {
para_id: thread_a,
collator: Some(thread_collator.clone()),
}),
CoreState::Scheduled(ScheduledCore { para_id: thread_a, collator: None }),
];

let mut head_data = HashMap::new();
Expand Down Expand Up @@ -1186,116 +1182,6 @@ fn backing_works_after_failed_validation() {
});
}

// Test that a `CandidateBackingMessage::Second` issues validation work
// and in case validation is successful issues a `StatementDistributionMessage`.
#[test]
fn backing_doesnt_second_wrong_collator() {
let mut test_state = TestState::default();
test_state.availability_cores[0] = CoreState::Scheduled(ScheduledCore {
para_id: ParaId::from(1),
collator: Some(Sr25519Keyring::Bob.public().into()),
});

test_harness(test_state.keystore.clone(), |mut virtual_overseer| async move {
test_startup(&mut virtual_overseer, &test_state).await;

let pov = PoV { block_data: BlockData(vec![42, 43, 44]) };

let expected_head_data = test_state.head_data.get(&test_state.chain_ids[0]).unwrap();

let pov_hash = pov.hash();
let candidate = TestCandidateBuilder {
para_id: test_state.chain_ids[0],
relay_parent: test_state.relay_parent,
pov_hash,
head_data: expected_head_data.clone(),
erasure_root: make_erasure_root(&test_state, pov.clone()),
}
.build();

let second = CandidateBackingMessage::Second(
test_state.relay_parent,
candidate.to_plain(),
pov.clone(),
);

virtual_overseer.send(FromOrchestra::Communication { msg: second }).await;

assert_matches!(
virtual_overseer.recv().await,
AllMessages::CollatorProtocol(
CollatorProtocolMessage::Invalid(parent, c)
) if parent == test_state.relay_parent && c == candidate.to_plain() => {
}
);

virtual_overseer
.send(FromOrchestra::Signal(OverseerSignal::ActiveLeaves(
ActiveLeavesUpdate::stop_work(test_state.relay_parent),
)))
.await;
virtual_overseer
});
}

#[test]
fn validation_work_ignores_wrong_collator() {
let mut test_state = TestState::default();
test_state.availability_cores[0] = CoreState::Scheduled(ScheduledCore {
para_id: ParaId::from(1),
collator: Some(Sr25519Keyring::Bob.public().into()),
});

test_harness(test_state.keystore.clone(), |mut virtual_overseer| async move {
test_startup(&mut virtual_overseer, &test_state).await;

let pov = PoV { block_data: BlockData(vec![1, 2, 3]) };

let pov_hash = pov.hash();

let expected_head_data = test_state.head_data.get(&test_state.chain_ids[0]).unwrap();

let candidate_a = TestCandidateBuilder {
para_id: test_state.chain_ids[0],
relay_parent: test_state.relay_parent,
pov_hash,
head_data: expected_head_data.clone(),
erasure_root: make_erasure_root(&test_state, pov.clone()),
}
.build();

let public2 = Keystore::sr25519_generate_new(
&*test_state.keystore,
ValidatorId::ID,
Some(&test_state.validators[2].to_seed()),
)
.expect("Insert key into keystore");
let seconding = SignedFullStatement::sign(
&test_state.keystore,
Statement::Seconded(candidate_a.clone()),
&test_state.signing_context,
ValidatorIndex(2),
&public2.into(),
)
.ok()
.flatten()
.expect("should be signed");

let statement =
CandidateBackingMessage::Statement(test_state.relay_parent, seconding.clone());

virtual_overseer.send(FromOrchestra::Communication { msg: statement }).await;

// The statement will be ignored because it has the wrong collator.
virtual_overseer
.send(FromOrchestra::Signal(OverseerSignal::ActiveLeaves(
ActiveLeavesUpdate::stop_work(test_state.relay_parent),
)))
.await;
virtual_overseer
});
}

#[test]
fn candidate_backing_reorders_votes() {
use sp_core::Encode;
Expand Down
1 change: 1 addition & 0 deletions node/network/collator-protocol/src/validator_side/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -921,6 +921,7 @@ async fn process_incoming_peer_message<Context>(
.span_per_relay_parent
.get(&relay_parent)
.map(|s| s.child("advertise-collation"));

if !state.view.contains(&relay_parent) {
gum::debug!(
target: LOG_TARGET,
Expand Down
5 changes: 1 addition & 4 deletions node/service/src/chain_spec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -211,8 +211,7 @@ fn default_parachains_host_configuration(
max_pov_size: MAX_POV_SIZE,
max_head_data_size: 32 * 1024,
group_rotation_frequency: 20,
chain_availability_period: 4,
thread_availability_period: 4,
paras_availability_period: 4,
max_upward_queue_count: 8,
max_upward_queue_size: 1024 * 1024,
max_downward_message_size: 1024 * 1024,
Expand All @@ -223,10 +222,8 @@ fn default_parachains_host_configuration(
hrmp_channel_max_capacity: 8,
hrmp_channel_max_total_size: 8 * 1024,
hrmp_max_parachain_inbound_channels: 4,
hrmp_max_parathread_inbound_channels: 4,
hrmp_channel_max_message_size: 1024 * 1024,
hrmp_max_parachain_outbound_channels: 4,
hrmp_max_parathread_outbound_channels: 4,
hrmp_max_message_num_per_candidate: 5,
dispute_period: 6,
no_show_slots: 2,
Expand Down
3 changes: 1 addition & 2 deletions node/test/service/src/chain_spec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -175,8 +175,7 @@ fn polkadot_testnet_genesis(
max_pov_size: MAX_POV_SIZE,
max_head_data_size: 32 * 1024,
group_rotation_frequency: 20,
chain_availability_period: 4,
thread_availability_period: 4,
paras_availability_period: 4,
no_show_slots: 10,
minimum_validation_upgrade_delay: 5,
..Default::default()
Expand Down
3 changes: 2 additions & 1 deletion primitives/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,8 @@ pub use v5::{
UpgradeRestriction, UpwardMessage, ValidDisputeStatementKind, ValidationCode,
ValidationCodeHash, ValidatorId, ValidatorIndex, ValidatorSignature, ValidityAttestation,
ValidityError, ASSIGNMENT_KEY_TYPE_ID, LOWEST_PUBLIC_ID, MAX_CODE_SIZE, MAX_HEAD_DATA_SIZE,
MAX_POV_SIZE, PARACHAINS_INHERENT_IDENTIFIER, PARACHAIN_KEY_TYPE_ID,
MAX_POV_SIZE, ON_DEMAND_DEFAULT_QUEUE_MAX_SIZE, PARACHAINS_INHERENT_IDENTIFIER,
PARACHAIN_KEY_TYPE_ID,
};

#[cfg(feature = "std")]
Expand Down
Loading
Loading