mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-15 11:31:05 +00:00
Coretime Zombienet test (#2867)
This adds a Zombienet test for Coretime. Requires: https://github.com/paritytech/polkadot-sdk/pull/2862 --------- Co-authored-by: Javier Viola <javier@parity.io> Co-authored-by: Javier Viola <363911+pepoviola@users.noreply.github.com>
This commit is contained in:
@@ -185,6 +185,14 @@ zombienet-polkadot-smoke-0003-deregister-register-validator:
|
|||||||
--local-dir="${LOCAL_DIR}/smoke"
|
--local-dir="${LOCAL_DIR}/smoke"
|
||||||
--test="0003-deregister-register-validator-smoke.zndsl"
|
--test="0003-deregister-register-validator-smoke.zndsl"
|
||||||
|
|
||||||
|
zombienet-polkadot-smoke-0004-coretime-smoke-test:
|
||||||
|
extends:
|
||||||
|
- .zombienet-polkadot-common
|
||||||
|
script:
|
||||||
|
- /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh
|
||||||
|
--local-dir="${LOCAL_DIR}/smoke"
|
||||||
|
--test="0004-coretime-smoke-test.zndsl"
|
||||||
|
|
||||||
zombienet-polkadot-misc-0001-parachains-paritydb:
|
zombienet-polkadot-misc-0001-parachains-paritydb:
|
||||||
extends:
|
extends:
|
||||||
- .zombienet-polkadot-common
|
- .zombienet-polkadot-common
|
||||||
|
|||||||
@@ -194,3 +194,5 @@ try-runtime = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
experimental = ["pallet-aura/experimental"]
|
experimental = ["pallet-aura/experimental"]
|
||||||
|
|
||||||
|
fast-runtime = []
|
||||||
|
|||||||
@@ -19,7 +19,15 @@ fn main() {
|
|||||||
.with_current_project()
|
.with_current_project()
|
||||||
.export_heap_base()
|
.export_heap_base()
|
||||||
.import_memory()
|
.import_memory()
|
||||||
.build()
|
.build();
|
||||||
|
|
||||||
|
substrate_wasm_builder::WasmBuilder::new()
|
||||||
|
.with_current_project()
|
||||||
|
.set_file_name("fast_runtime_binary.rs")
|
||||||
|
.enable_feature("fast-runtime")
|
||||||
|
.import_memory()
|
||||||
|
.export_heap_base()
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(not(feature = "std"))]
|
#[cfg(not(feature = "std"))]
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
use crate::*;
|
use crate::*;
|
||||||
use codec::{Decode, Encode};
|
use codec::{Decode, Encode};
|
||||||
use cumulus_pallet_parachain_system::RelaychainDataProvider;
|
use cumulus_pallet_parachain_system::RelaychainDataProvider;
|
||||||
|
use cumulus_primitives_core::relay_chain;
|
||||||
use frame_support::{
|
use frame_support::{
|
||||||
parameter_types,
|
parameter_types,
|
||||||
traits::{
|
traits::{
|
||||||
@@ -51,11 +52,16 @@ enum CoretimeProviderCalls {
|
|||||||
#[codec(index = 1)]
|
#[codec(index = 1)]
|
||||||
RequestCoreCount(CoreIndex),
|
RequestCoreCount(CoreIndex),
|
||||||
#[codec(index = 2)]
|
#[codec(index = 2)]
|
||||||
RequestRevenueInfoAt(BlockNumber),
|
RequestRevenueInfoAt(relay_chain::BlockNumber),
|
||||||
#[codec(index = 3)]
|
#[codec(index = 3)]
|
||||||
CreditAccount(AccountId, Balance),
|
CreditAccount(AccountId, Balance),
|
||||||
#[codec(index = 4)]
|
#[codec(index = 4)]
|
||||||
AssignCore(CoreIndex, BlockNumber, Vec<(CoreAssignment, PartsOf57600)>, Option<BlockNumber>),
|
AssignCore(
|
||||||
|
CoreIndex,
|
||||||
|
relay_chain::BlockNumber,
|
||||||
|
Vec<(CoreAssignment, PartsOf57600)>,
|
||||||
|
Option<relay_chain::BlockNumber>,
|
||||||
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
parameter_types! {
|
parameter_types! {
|
||||||
@@ -181,7 +187,7 @@ impl CoretimeInterface for CoretimeAllocator {
|
|||||||
},
|
},
|
||||||
Instruction::Transact {
|
Instruction::Transact {
|
||||||
origin_kind: OriginKind::Native,
|
origin_kind: OriginKind::Native,
|
||||||
require_weight_at_most: Weight::from_parts(1000000000, 200000),
|
require_weight_at_most: Weight::from_parts(1_000_000_000, 200000),
|
||||||
call: assign_core_call.encode().into(),
|
call: assign_core_call.encode().into(),
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
@@ -215,6 +221,9 @@ impl pallet_broker::Config for Runtime {
|
|||||||
type RuntimeEvent = RuntimeEvent;
|
type RuntimeEvent = RuntimeEvent;
|
||||||
type Currency = Balances;
|
type Currency = Balances;
|
||||||
type OnRevenue = CreditToCollatorPot;
|
type OnRevenue = CreditToCollatorPot;
|
||||||
|
#[cfg(feature = "fast-runtime")]
|
||||||
|
type TimeslicePeriod = ConstU32<10>;
|
||||||
|
#[cfg(not(feature = "fast-runtime"))]
|
||||||
type TimeslicePeriod = ConstU32<80>;
|
type TimeslicePeriod = ConstU32<80>;
|
||||||
type MaxLeasedCores = ConstU32<50>;
|
type MaxLeasedCores = ConstU32<50>;
|
||||||
type MaxReservedCores = ConstU32<10>;
|
type MaxReservedCores = ConstU32<10>;
|
||||||
|
|||||||
@@ -21,6 +21,14 @@
|
|||||||
#[cfg(feature = "std")]
|
#[cfg(feature = "std")]
|
||||||
include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));
|
include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));
|
||||||
|
|
||||||
|
/// Provides the `WASM_BINARY` build with `fast-runtime` feature enabled.
|
||||||
|
///
|
||||||
|
/// This is for example useful for local test chains.
|
||||||
|
#[cfg(feature = "std")]
|
||||||
|
pub mod fast_runtime_binary {
|
||||||
|
include!(concat!(env!("OUT_DIR"), "/fast_runtime_binary.rs"));
|
||||||
|
}
|
||||||
|
|
||||||
mod coretime;
|
mod coretime;
|
||||||
mod weights;
|
mod weights;
|
||||||
pub mod xcm_config;
|
pub mod xcm_config;
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ use sc_chain_spec::{ChainSpec, ChainType};
|
|||||||
use std::{borrow::Cow, str::FromStr};
|
use std::{borrow::Cow, str::FromStr};
|
||||||
|
|
||||||
/// Collects all supported Coretime configurations.
|
/// Collects all supported Coretime configurations.
|
||||||
#[derive(Debug, PartialEq, Clone)]
|
#[derive(Debug, PartialEq, Clone, Copy)]
|
||||||
pub enum CoretimeRuntimeType {
|
pub enum CoretimeRuntimeType {
|
||||||
// Live
|
// Live
|
||||||
Rococo,
|
Rococo,
|
||||||
@@ -85,13 +85,13 @@ impl CoretimeRuntimeType {
|
|||||||
&include_bytes!("../../../parachains/chain-specs/coretime-rococo.json")[..],
|
&include_bytes!("../../../parachains/chain-specs/coretime-rococo.json")[..],
|
||||||
)?)),
|
)?)),
|
||||||
CoretimeRuntimeType::RococoLocal =>
|
CoretimeRuntimeType::RococoLocal =>
|
||||||
Ok(Box::new(rococo::local_config(self, "rococo-local"))),
|
Ok(Box::new(rococo::local_config(*self, "rococo-local"))),
|
||||||
CoretimeRuntimeType::RococoDevelopment =>
|
CoretimeRuntimeType::RococoDevelopment =>
|
||||||
Ok(Box::new(rococo::local_config(self, "rococo-dev"))),
|
Ok(Box::new(rococo::local_config(*self, "rococo-dev"))),
|
||||||
CoretimeRuntimeType::WestendLocal =>
|
CoretimeRuntimeType::WestendLocal =>
|
||||||
Ok(Box::new(westend::local_config(self, "westend-local"))),
|
Ok(Box::new(westend::local_config(*self, "westend-local"))),
|
||||||
CoretimeRuntimeType::WestendDevelopment =>
|
CoretimeRuntimeType::WestendDevelopment =>
|
||||||
Ok(Box::new(westend::local_config(self, "westend-dev"))),
|
Ok(Box::new(westend::local_config(*self, "westend-dev"))),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -114,6 +114,7 @@ pub mod rococo {
|
|||||||
get_account_id_from_seed, get_collator_keys_from_seed, Extensions, SAFE_XCM_VERSION,
|
get_account_id_from_seed, get_collator_keys_from_seed, Extensions, SAFE_XCM_VERSION,
|
||||||
};
|
};
|
||||||
use parachains_common::{AccountId, AuraId, Balance};
|
use parachains_common::{AccountId, AuraId, Balance};
|
||||||
|
use sc_chain_spec::ChainType;
|
||||||
use sp_core::sr25519;
|
use sp_core::sr25519;
|
||||||
|
|
||||||
pub(crate) const CORETIME_ROCOCO: &str = "coretime-rococo";
|
pub(crate) const CORETIME_ROCOCO: &str = "coretime-rococo";
|
||||||
@@ -121,24 +122,31 @@ pub mod rococo {
|
|||||||
pub(crate) const CORETIME_ROCOCO_DEVELOPMENT: &str = "coretime-rococo-dev";
|
pub(crate) const CORETIME_ROCOCO_DEVELOPMENT: &str = "coretime-rococo-dev";
|
||||||
const CORETIME_ROCOCO_ED: Balance = parachains_common::rococo::currency::EXISTENTIAL_DEPOSIT;
|
const CORETIME_ROCOCO_ED: Balance = parachains_common::rococo::currency::EXISTENTIAL_DEPOSIT;
|
||||||
|
|
||||||
pub fn local_config(runtime_type: &CoretimeRuntimeType, relay_chain: &str) -> GenericChainSpec {
|
pub fn local_config(runtime_type: CoretimeRuntimeType, relay_chain: &str) -> GenericChainSpec {
|
||||||
// Rococo defaults
|
// Rococo defaults
|
||||||
let mut properties = sc_chain_spec::Properties::new();
|
let mut properties = sc_chain_spec::Properties::new();
|
||||||
properties.insert("ss58Format".into(), 42.into());
|
properties.insert("ss58Format".into(), 42.into());
|
||||||
properties.insert("tokenSymbol".into(), "ROC".into());
|
properties.insert("tokenSymbol".into(), "ROC".into());
|
||||||
properties.insert("tokenDecimals".into(), 12.into());
|
properties.insert("tokenDecimals".into(), 12.into());
|
||||||
|
|
||||||
let chain_type = runtime_type.clone().into();
|
let chain_type = runtime_type.into();
|
||||||
let chain_name = format!("Coretime Rococo {}", chain_type_name(&chain_type));
|
let chain_name = format!("Coretime Rococo {}", chain_type_name(&chain_type));
|
||||||
let para_id = super::CORETIME_PARA_ID;
|
let para_id = super::CORETIME_PARA_ID;
|
||||||
|
|
||||||
GenericChainSpec::builder(
|
let wasm_binary = if matches!(chain_type, ChainType::Local | ChainType::Development) {
|
||||||
|
coretime_rococo_runtime::fast_runtime_binary::WASM_BINARY
|
||||||
|
.expect("WASM binary was not built, please build it!")
|
||||||
|
} else {
|
||||||
coretime_rococo_runtime::WASM_BINARY
|
coretime_rococo_runtime::WASM_BINARY
|
||||||
.expect("WASM binary was not built, please build it!"),
|
.expect("WASM binary was not built, please build it!")
|
||||||
|
};
|
||||||
|
|
||||||
|
GenericChainSpec::builder(
|
||||||
|
wasm_binary,
|
||||||
Extensions { relay_chain: relay_chain.to_string(), para_id: para_id.into() },
|
Extensions { relay_chain: relay_chain.to_string(), para_id: para_id.into() },
|
||||||
)
|
)
|
||||||
.with_name(&chain_name)
|
.with_name(&chain_name)
|
||||||
.with_id(runtime_type.clone().into())
|
.with_id(runtime_type.into())
|
||||||
.with_chain_type(chain_type)
|
.with_chain_type(chain_type)
|
||||||
.with_genesis_config_patch(genesis(
|
.with_genesis_config_patch(genesis(
|
||||||
// initial collators.
|
// initial collators.
|
||||||
@@ -209,14 +217,14 @@ pub mod westend {
|
|||||||
pub(crate) const CORETIME_WESTEND_DEVELOPMENT: &str = "coretime-westend-dev";
|
pub(crate) const CORETIME_WESTEND_DEVELOPMENT: &str = "coretime-westend-dev";
|
||||||
const CORETIME_WESTEND_ED: Balance = parachains_common::westend::currency::EXISTENTIAL_DEPOSIT;
|
const CORETIME_WESTEND_ED: Balance = parachains_common::westend::currency::EXISTENTIAL_DEPOSIT;
|
||||||
|
|
||||||
pub fn local_config(runtime_type: &CoretimeRuntimeType, relay_chain: &str) -> GenericChainSpec {
|
pub fn local_config(runtime_type: CoretimeRuntimeType, relay_chain: &str) -> GenericChainSpec {
|
||||||
// westend defaults
|
// westend defaults
|
||||||
let mut properties = sc_chain_spec::Properties::new();
|
let mut properties = sc_chain_spec::Properties::new();
|
||||||
properties.insert("ss58Format".into(), 42.into());
|
properties.insert("ss58Format".into(), 42.into());
|
||||||
properties.insert("tokenSymbol".into(), "WND".into());
|
properties.insert("tokenSymbol".into(), "WND".into());
|
||||||
properties.insert("tokenDecimals".into(), 12.into());
|
properties.insert("tokenDecimals".into(), 12.into());
|
||||||
|
|
||||||
let chain_type = runtime_type.clone().into();
|
let chain_type = runtime_type.into();
|
||||||
let chain_name = format!("Coretime Westend {}", chain_type_name(&chain_type));
|
let chain_name = format!("Coretime Westend {}", chain_type_name(&chain_type));
|
||||||
let para_id = super::CORETIME_PARA_ID;
|
let para_id = super::CORETIME_PARA_ID;
|
||||||
|
|
||||||
@@ -226,7 +234,7 @@ pub mod westend {
|
|||||||
Extensions { relay_chain: relay_chain.to_string(), para_id: para_id.into() },
|
Extensions { relay_chain: relay_chain.to_string(), para_id: para_id.into() },
|
||||||
)
|
)
|
||||||
.with_name(&chain_name)
|
.with_name(&chain_name)
|
||||||
.with_id(runtime_type.clone().into())
|
.with_id(runtime_type.into())
|
||||||
.with_chain_type(chain_type)
|
.with_chain_type(chain_type)
|
||||||
.with_genesis_config_patch(genesis(
|
.with_genesis_config_patch(genesis(
|
||||||
// initial collators.
|
// initial collators.
|
||||||
|
|||||||
@@ -27,7 +27,8 @@ use pallet_broker::{CoreAssignment, CoreIndex as BrokerCoreIndex};
|
|||||||
use primitives::{CoreIndex, Id as ParaId};
|
use primitives::{CoreIndex, Id as ParaId};
|
||||||
use sp_arithmetic::traits::SaturatedConversion;
|
use sp_arithmetic::traits::SaturatedConversion;
|
||||||
use xcm::v3::{
|
use xcm::v3::{
|
||||||
send_xcm, Instruction, Junction, Junctions, MultiLocation, OriginKind, SendXcm, Xcm,
|
send_xcm, Instruction, Junction, Junctions, MultiLocation, OriginKind, SendXcm, WeightLimit,
|
||||||
|
Xcm,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
@@ -220,9 +221,13 @@ impl<T: Config> Pallet<T> {
|
|||||||
let new_core_count = notification.new_config.coretime_cores;
|
let new_core_count = notification.new_config.coretime_cores;
|
||||||
if new_core_count != old_core_count {
|
if new_core_count != old_core_count {
|
||||||
let core_count: u16 = new_core_count.saturated_into();
|
let core_count: u16 = new_core_count.saturated_into();
|
||||||
let message = Xcm(vec![mk_coretime_call(
|
let message = Xcm(vec![
|
||||||
crate::coretime::CoretimeCalls::NotifyCoreCount(core_count),
|
Instruction::UnpaidExecution {
|
||||||
)]);
|
weight_limit: WeightLimit::Unlimited,
|
||||||
|
check_origin: None,
|
||||||
|
},
|
||||||
|
mk_coretime_call(crate::coretime::CoretimeCalls::NotifyCoreCount(core_count)),
|
||||||
|
]);
|
||||||
if let Err(err) = send_xcm::<T::SendXcm>(
|
if let Err(err) = send_xcm::<T::SendXcm>(
|
||||||
MultiLocation {
|
MultiLocation {
|
||||||
parents: 0,
|
parents: 0,
|
||||||
@@ -247,7 +252,7 @@ fn mk_coretime_call(call: crate::coretime::CoretimeCalls) -> Instruction<()> {
|
|||||||
origin_kind: OriginKind::Superuser,
|
origin_kind: OriginKind::Superuser,
|
||||||
// Largest call is set_lease with 1526 byte:
|
// Largest call is set_lease with 1526 byte:
|
||||||
// Longest call is reserve() with 31_000_000
|
// Longest call is reserve() with 31_000_000
|
||||||
require_weight_at_most: Weight::from_parts(100_000_000, 20_000),
|
require_weight_at_most: Weight::from_parts(110_000_000, 20_000),
|
||||||
call: BrokerRuntimePallets::Broker(call).encode().into(),
|
call: BrokerRuntimePallets::Broker(call).encode().into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,29 +13,30 @@ async function run(nodeName, networkInfo, _jsArgs) {
|
|||||||
const calls = [
|
const calls = [
|
||||||
// Default broker configuration
|
// Default broker configuration
|
||||||
api.tx.broker.configure({
|
api.tx.broker.configure({
|
||||||
advanceNotice: 2,
|
advanceNotice: 5,
|
||||||
interludeLength: 1,
|
interludeLength: 1,
|
||||||
leadinLength: 1,
|
leadinLength: 1,
|
||||||
regionLength: 3,
|
regionLength: 1,
|
||||||
idealBulkProportion: 100,
|
idealBulkProportion: 100,
|
||||||
limitCoresOffered: null,
|
limitCoresOffered: null,
|
||||||
renewalBump: 10,
|
renewalBump: 10,
|
||||||
contributionTimeout: 5,
|
contributionTimeout: 5,
|
||||||
}),
|
}),
|
||||||
// Make reservation for ParaId 100 (adder-a) every other block
|
// We need MOARE cores.
|
||||||
// and ParaId 101 (adder-b) every other block.
|
api.tx.broker.requestCoreCount(2),
|
||||||
api.tx.broker.reserve([
|
// Set a lease for the broker chain itself.
|
||||||
{
|
api.tx.broker.setLease(
|
||||||
mask: [255, 0, 255, 0, 255, 0, 255, 0, 255, 0],
|
1005,
|
||||||
assignment: { Task: 100 },
|
1000,
|
||||||
},
|
),
|
||||||
{
|
// Set a lease for parachain 100
|
||||||
mask: [0, 255, 0, 255, 0, 255, 0, 255, 0, 255],
|
api.tx.broker.setLease(
|
||||||
assignment: { Task: 101 },
|
100,
|
||||||
},
|
1000,
|
||||||
]),
|
),
|
||||||
// Start sale with 1 core starting at 1 planck
|
// Start sale to make the broker "work", but we don't offer any cores
|
||||||
api.tx.broker.startSales(1, 1),
|
// as we have fixed leases only anyway.
|
||||||
|
api.tx.broker.startSales(1, 0),
|
||||||
];
|
];
|
||||||
const sudo_batch = api.tx.sudo.sudo(api.tx.utility.batch(calls));
|
const sudo_batch = api.tx.sudo.sudo(api.tx.utility.batch(calls));
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,37 @@
|
|||||||
const assert = require("assert");
|
const assert = require("assert");
|
||||||
|
|
||||||
async function run(nodeName, networkInfo, _jsArgs) {
|
async function run(nodeName, networkInfo, _jsArgs) {
|
||||||
const { wsUri, userDefinedTypes } = networkInfo.nodesByName[nodeName];
|
const init = networkInfo.nodesByName[nodeName];
|
||||||
|
let wsUri = init.wsUri;
|
||||||
|
let userDefinedTypes = init.userDefinedTypes;
|
||||||
const api = await zombie.connect(wsUri, userDefinedTypes);
|
const api = await zombie.connect(wsUri, userDefinedTypes);
|
||||||
|
|
||||||
|
const sec = networkInfo.nodesByName["collator-para-100"];
|
||||||
|
wsUri = sec.wsUri;
|
||||||
|
userDefinedTypes = sec.userDefinedTypes;
|
||||||
|
|
||||||
|
const api_collator = await zombie.connect(wsUri, userDefinedTypes);
|
||||||
|
|
||||||
await zombie.util.cryptoWaitReady();
|
await zombie.util.cryptoWaitReady();
|
||||||
|
|
||||||
|
// Get the genesis header and the validation code of parachain 100
|
||||||
|
const genesis_header = await api_collator.rpc.chain.getHeader();
|
||||||
|
const validation_code = await api_collator.rpc.state.getStorage("0x3A636F6465");
|
||||||
|
|
||||||
// account to submit tx
|
// account to submit tx
|
||||||
const keyring = new zombie.Keyring({ type: "sr25519" });
|
const keyring = new zombie.Keyring({ type: "sr25519" });
|
||||||
const alice = keyring.addFromUri("//Alice");
|
const alice = keyring.addFromUri("//Alice");
|
||||||
|
|
||||||
const calls = [
|
const calls = [
|
||||||
api.tx.configuration.setCoretimeCores({ new: 1 }),
|
api.tx.configuration.setCoretimeCores({ new: 1 }),
|
||||||
api.tx.coretime.assignCore(0, 20,[[ { task: 1005 }, 57600 ]], null)
|
api.tx.coretime.assignCore(0, 20,[[ { task: 1005 }, 57600 ]], null),
|
||||||
|
api.tx.registrar.forceRegister(
|
||||||
|
alice.address,
|
||||||
|
0,
|
||||||
|
100,
|
||||||
|
genesis_header.toHex(),
|
||||||
|
validation_code.toHex(),
|
||||||
|
)
|
||||||
];
|
];
|
||||||
const sudo_batch = api.tx.sudo.sudo(api.tx.utility.batch(calls));
|
const sudo_batch = api.tx.sudo.sudo(api.tx.utility.batch(calls));
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ command = "polkadot"
|
|||||||
|
|
||||||
[[relaychain.nodes]]
|
[[relaychain.nodes]]
|
||||||
name = "alice"
|
name = "alice"
|
||||||
args = ["-lruntime=debug,parachain=trace" ]
|
args = ["-lruntime=debug,xcm=trace" ]
|
||||||
|
|
||||||
[[relaychain.nodes]]
|
[[relaychain.nodes]]
|
||||||
name = "bob"
|
name = "bob"
|
||||||
@@ -24,35 +24,18 @@ chain = "coretime-rococo-local"
|
|||||||
|
|
||||||
[parachains.collator]
|
[parachains.collator]
|
||||||
name = "coretime-collator"
|
name = "coretime-collator"
|
||||||
image = "{{COL_IMAGE}}"
|
image = "{{CUMULUS_IMAGE}}"
|
||||||
command = "polkadot-parachain"
|
command = "polkadot-parachain"
|
||||||
args = [ "-lruntime=debug,parachain=trace" ]
|
args = [ "-lruntime=debug,xcm=trace" ]
|
||||||
|
|
||||||
[[parachains]]
|
[[parachains]]
|
||||||
id = 100
|
id = 100
|
||||||
add_to_genesis = false
|
add_to_genesis = false
|
||||||
register_para = true
|
register_para = false
|
||||||
onboard_as_parachain = false
|
onboard_as_parachain = false
|
||||||
|
|
||||||
[parachains.collator]
|
[parachains.collator]
|
||||||
name = "adder-a"
|
name = "collator-para-100"
|
||||||
image = "{{COL_IMAGE}}"
|
image = "{{CUMULUS_IMAGE}}"
|
||||||
command = "adder-collator"
|
command = "polkadot-parachain"
|
||||||
args = [ "-lruntime=debug,parachain=trace" ]
|
args = ["-lruntime=debug,parachain=trace,aura=trace", "--force-authoring"]
|
||||||
|
|
||||||
[[parachains]]
|
|
||||||
id = 101
|
|
||||||
add_to_genesis = false
|
|
||||||
register_para = true
|
|
||||||
onboard_as_parachain = false
|
|
||||||
|
|
||||||
[parachains.collator]
|
|
||||||
name = "adder-b"
|
|
||||||
image = "{{COL_IMAGE}}"
|
|
||||||
command = "adder-collator"
|
|
||||||
args = [ "-lruntime=debug,parachain=trace" ]
|
|
||||||
|
|
||||||
[types.Header]
|
|
||||||
number = "u64"
|
|
||||||
parent_hash = "Hash"
|
|
||||||
post_state = "Hash"
|
|
||||||
|
|||||||
@@ -5,15 +5,11 @@ Creds: config
|
|||||||
alice: is up
|
alice: is up
|
||||||
coretime-collator: is up
|
coretime-collator: is up
|
||||||
|
|
||||||
alice: reports block height is at least 3 within 30 seconds
|
|
||||||
# configure relay chain
|
# configure relay chain
|
||||||
alice: js-script ./0004-configure-relay.js with "" return is 0 within 600 secs
|
alice: js-script ./0004-configure-relay.js with "" return is 0 within 600 secs
|
||||||
|
|
||||||
# Wait 2 sessions. The parachain doesn't start block production immediately.
|
|
||||||
alice: log line contains "New session detected session_index=2" within 600 seconds
|
|
||||||
|
|
||||||
# configure broker chain
|
# configure broker chain
|
||||||
coretime-collator: js-script ./0004-configure-broker.js with "" return is 0 within 600 secs
|
coretime-collator: js-script ./0004-configure-broker.js with "" return is 0 within 600 secs
|
||||||
|
|
||||||
# TODO: Fix this
|
# Ensure that parachain 100 got onboarded
|
||||||
# alice: parachain 100 block height is at least 10 within 600 seconds
|
alice: parachain 100 block height is at least 5 within 900 seconds
|
||||||
|
|||||||
Reference in New Issue
Block a user