From 0b492ba44742abfeda65b54fe3e1506f17b493f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Tue, 9 Nov 2021 23:13:10 +0100 Subject: [PATCH] Remove `parachain-id` cli command This was never planned to be a permanent feature. This was mainly added for testing purposes, but now was copied by everybody. The users should be more specific about the para id and set this properly in the chain spec. --- client/cli/src/lib.rs | 8 +-- parachain-template/node/src/chain_spec.rs | 12 ++--- parachain-template/node/src/cli.rs | 6 --- parachain-template/node/src/command.rs | 26 ++++----- polkadot-parachains/src/chain_spec.rs | 66 +++++++++++------------ polkadot-parachains/src/command.rs | 45 +++++++--------- 6 files changed, 70 insertions(+), 93 deletions(-) diff --git a/client/cli/src/lib.rs b/client/cli/src/lib.rs index 6f4f97c6274..c5d0fd40431 100644 --- a/client/cli/src/lib.rs +++ b/client/cli/src/lib.rs @@ -125,10 +125,6 @@ pub struct RunCmd { #[structopt(flatten)] pub base: sc_cli::RunCmd, - /// Id of the parachain this collator collates for. - #[structopt(long)] - pub parachain_id: Option, - /// Run node as collator. /// /// Note that this is the same as running with `--validator`. @@ -142,8 +138,6 @@ pub struct RunCmd { pub struct NormalizedRunCmd { /// The cumulus RunCmd inherents from sc_cli's pub base: sc_cli::RunCmd, - /// Id of the parachain this collator collates for. - pub parachain_id: Option, } impl RunCmd { @@ -153,7 +147,7 @@ impl RunCmd { new_base.validator = self.base.validator || self.collator; - NormalizedRunCmd { base: new_base, parachain_id: self.parachain_id } + NormalizedRunCmd { base: new_base } } } diff --git a/parachain-template/node/src/chain_spec.rs b/parachain-template/node/src/chain_spec.rs index 1609bfb06c6..d779a0e4033 100644 --- a/parachain-template/node/src/chain_spec.rs +++ b/parachain-template/node/src/chain_spec.rs @@ -58,7 +58,7 @@ pub fn template_session_keys(keys: AuraId) -> parachain_template_runtime::Sessio parachain_template_runtime::SessionKeys { aura: keys } } -pub fn development_config(id: ParaId) -> ChainSpec { +pub fn development_config() -> ChainSpec { // Give your base currency a unit name and decimal places let mut properties = sc_chain_spec::Properties::new(); properties.insert("tokenSymbol".into(), "ROC".into()); @@ -98,7 +98,7 @@ pub fn development_config(id: ParaId) -> ChainSpec { get_account_id_from_seed::("Eve//stash"), get_account_id_from_seed::("Ferdie//stash"), ], - id, + 1000.into(), ) }, vec![], @@ -107,12 +107,12 @@ pub fn development_config(id: ParaId) -> ChainSpec { None, Extensions { relay_chain: "rococo-local".into(), // You MUST set this to the correct network! - para_id: id.into(), + para_id: 1000, }, ) } -pub fn local_testnet_config(id: ParaId) -> ChainSpec { +pub fn local_testnet_config() -> ChainSpec { // Give your base currency a unit name and decimal places let mut properties = sc_chain_spec::Properties::new(); properties.insert("tokenSymbol".into(), "ROC".into()); @@ -152,7 +152,7 @@ pub fn local_testnet_config(id: ParaId) -> ChainSpec { get_account_id_from_seed::("Eve//stash"), get_account_id_from_seed::("Ferdie//stash"), ], - id, + 1000.into(), ) }, // Bootnodes @@ -166,7 +166,7 @@ pub fn local_testnet_config(id: ParaId) -> ChainSpec { // Extensions Extensions { relay_chain: "rococo-local".into(), // You MUST set this to the correct network! - para_id: id.into(), + para_id: 1000, }, ) } diff --git a/parachain-template/node/src/cli.rs b/parachain-template/node/src/cli.rs index 319893a0c79..1cbee43811b 100644 --- a/parachain-template/node/src/cli.rs +++ b/parachain-template/node/src/cli.rs @@ -46,12 +46,6 @@ pub struct ExportGenesisStateCommand { #[structopt(parse(from_os_str))] pub output: Option, - /// Id of the parachain this state is for. - /// - /// Default: 100 - #[structopt(long, conflicts_with = "chain")] - pub parachain_id: Option, - /// Write output in binary. Default is to write in hex. #[structopt(short, long)] pub raw: bool, diff --git a/parachain-template/node/src/command.rs b/parachain-template/node/src/command.rs index e09fee29d97..ba820345379 100644 --- a/parachain-template/node/src/command.rs +++ b/parachain-template/node/src/command.rs @@ -18,14 +18,11 @@ use sp_core::hexdisplay::HexDisplay; use sp_runtime::traits::Block as BlockT; use std::{io::Write, net::SocketAddr}; -fn load_spec( - id: &str, - para_id: ParaId, -) -> std::result::Result, String> { +fn load_spec(id: &str) -> std::result::Result, String> { Ok(match id { - "dev" => Box::new(chain_spec::development_config(para_id)), - "template-rococo" => Box::new(chain_spec::local_testnet_config(para_id)), - "" | "local" => Box::new(chain_spec::local_testnet_config(para_id)), + "dev" => Box::new(chain_spec::development_config()), + "template-rococo" => Box::new(chain_spec::local_testnet_config()), + "" | "local" => Box::new(chain_spec::local_testnet_config()), path => Box::new(chain_spec::ChainSpec::from_json_file(std::path::PathBuf::from(path))?), }) } @@ -62,7 +59,7 @@ impl SubstrateCli for Cli { } fn load_spec(&self, id: &str) -> std::result::Result, String> { - load_spec(id, self.run.parachain_id.unwrap_or(2000).into()) + load_spec(id) } fn native_runtime_version(_: &Box) -> &'static RuntimeVersion { @@ -194,10 +191,8 @@ pub fn run() -> Result<()> { builder.with_profiling(sc_tracing::TracingReceiver::Log, ""); let _ = builder.init(); - let block: Block = generate_genesis_block(&load_spec( - ¶ms.chain.clone().unwrap_or_default(), - params.parachain_id.unwrap_or(2000).into(), - )?)?; + let block: Block = + generate_genesis_block(&load_spec(¶ms.chain.clone().unwrap_or_default())?)?; let raw_header = block.header().encode(); let output_buf = if params.raw { raw_header @@ -248,15 +243,16 @@ pub fn run() -> Result<()> { let runner = cli.create_runner(&cli.run.normalize())?; runner.run_node_until_exit(|config| async move { - let para_id = - chain_spec::Extensions::try_get(&*config.chain_spec).map(|e| e.para_id); + let para_id = chain_spec::Extensions::try_get(&*config.chain_spec) + .map(|e| e.para_id) + .ok_or_else(|| "Could not find parachain extension for chain-spec.")?; let polkadot_cli = RelayChainCli::new( &config, [RelayChainCli::executable_name()].iter().chain(cli.relaychain_args.iter()), ); - let id = ParaId::from(cli.run.parachain_id.or(para_id).unwrap_or(2000)); + let id = ParaId::from(para_id); let parachain_account = AccountIdConversion::::into_account(&id); diff --git a/polkadot-parachains/src/chain_spec.rs b/polkadot-parachains/src/chain_spec.rs index 3c00a8f6dfc..facd0acfcb2 100644 --- a/polkadot-parachains/src/chain_spec.rs +++ b/polkadot-parachains/src/chain_spec.rs @@ -64,7 +64,7 @@ where AccountPublic::from(get_from_seed::(seed)).into_account() } -pub fn get_chain_spec(id: ParaId) -> ChainSpec { +pub fn get_chain_spec() -> ChainSpec { ChainSpec::from_genesis( "Local Testnet", "local_testnet", @@ -87,32 +87,32 @@ pub fn get_chain_spec(id: ParaId) -> ChainSpec { get_account_id_from_seed::("Eve//stash"), get_account_id_from_seed::("Ferdie//stash"), ], - id, + 1000.into(), ) }, vec![], None, None, None, - Extensions { relay_chain: "westend".into(), para_id: id.into() }, + Extensions { relay_chain: "westend".into(), para_id: 1000 }, ) } -pub fn get_shell_chain_spec(id: ParaId) -> ShellChainSpec { +pub fn get_shell_chain_spec() -> ShellChainSpec { ShellChainSpec::from_genesis( "Shell Local Testnet", "shell_local_testnet", ChainType::Local, - move || shell_testnet_genesis(id), + move || shell_testnet_genesis(1000.into()), vec![], None, None, None, - Extensions { relay_chain: "westend".into(), para_id: id.into() }, + Extensions { relay_chain: "westend".into(), para_id: 1000 }, ) } -pub fn staging_test_net(id: ParaId) -> ChainSpec { +pub fn staging_test_net() -> ChainSpec { ChainSpec::from_genesis( "Staging Testnet", "staging_testnet", @@ -131,14 +131,14 @@ pub fn staging_test_net(id: ParaId) -> ChainSpec { vec![ hex!["9ed7705e3c7da027ba0583a22a3212042f7e715d3c168ba14f1424e2bc111d00"].into() ], - id, + 1000.into(), ) }, Vec::new(), None, None, None, - Extensions { relay_chain: "westend".into(), para_id: id.into() }, + Extensions { relay_chain: "westend".into(), para_id: 1000 }, ) } @@ -228,7 +228,7 @@ pub fn westmint_session_keys(keys: AuraId) -> westmint_runtime::SessionKeys { westmint_runtime::SessionKeys { aura: keys } } -pub fn statemint_development_config(id: ParaId) -> StatemintChainSpec { +pub fn statemint_development_config() -> StatemintChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("tokenSymbol".into(), "DOT".into()); properties.insert("tokenDecimals".into(), 10.into()); @@ -252,18 +252,18 @@ pub fn statemint_development_config(id: ParaId) -> StatemintChainSpec { get_account_id_from_seed::("Alice//stash"), get_account_id_from_seed::("Bob//stash"), ], - id, + 1000.into(), ) }, vec![], None, None, Some(properties), - Extensions { relay_chain: "polkadot-dev".into(), para_id: id.into() }, + Extensions { relay_chain: "polkadot-dev".into(), para_id: 1000 }, ) } -pub fn statemint_local_config(id: ParaId) -> StatemintChainSpec { +pub fn statemint_local_config() -> StatemintChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("tokenSymbol".into(), "DOT".into()); properties.insert("tokenDecimals".into(), 10.into()); @@ -301,14 +301,14 @@ pub fn statemint_local_config(id: ParaId) -> StatemintChainSpec { get_account_id_from_seed::("Eve//stash"), get_account_id_from_seed::("Ferdie//stash"), ], - id, + 1000.into(), ) }, vec![], None, None, Some(properties), - Extensions { relay_chain: "polkadot-local".into(), para_id: id.into() }, + Extensions { relay_chain: "polkadot-local".into(), para_id: 1000 }, ) } @@ -354,7 +354,7 @@ fn statemint_genesis( } } -pub fn statemine_development_config(id: ParaId) -> StatemineChainSpec { +pub fn statemine_development_config() -> StatemineChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("tokenSymbol".into(), "KSM".into()); properties.insert("tokenDecimals".into(), 12.into()); @@ -378,18 +378,18 @@ pub fn statemine_development_config(id: ParaId) -> StatemineChainSpec { get_account_id_from_seed::("Alice//stash"), get_account_id_from_seed::("Bob//stash"), ], - id, + 1000.into(), ) }, vec![], None, None, Some(properties), - Extensions { relay_chain: "kusama-dev".into(), para_id: id.into() }, + Extensions { relay_chain: "kusama-dev".into(), para_id: 1000 }, ) } -pub fn statemine_local_config(id: ParaId) -> StatemineChainSpec { +pub fn statemine_local_config() -> StatemineChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("tokenSymbol".into(), "KSM".into()); properties.insert("tokenDecimals".into(), 12.into()); @@ -427,18 +427,18 @@ pub fn statemine_local_config(id: ParaId) -> StatemineChainSpec { get_account_id_from_seed::("Eve//stash"), get_account_id_from_seed::("Ferdie//stash"), ], - id, + 1000.into(), ) }, vec![], None, None, Some(properties), - Extensions { relay_chain: "kusama-local".into(), para_id: id.into() }, + Extensions { relay_chain: "kusama-local".into(), para_id: 1000 }, ) } -pub fn statemine_config(id: ParaId) -> StatemineChainSpec { +pub fn statemine_config() -> StatemineChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("tokenSymbol".into(), "KSM".into()); properties.insert("tokenDecimals".into(), 12.into()); @@ -479,14 +479,14 @@ pub fn statemine_config(id: ParaId) -> StatemineChainSpec { ), ], vec![], - id, + 1000.into(), ) }, vec![], None, None, Some(properties), - Extensions { relay_chain: "kusama".into(), para_id: id.into() }, + Extensions { relay_chain: "kusama".into(), para_id: 1000 }, ) } @@ -530,7 +530,7 @@ fn statemine_genesis( } } -pub fn westmint_development_config(id: ParaId) -> WestmintChainSpec { +pub fn westmint_development_config() -> WestmintChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("tokenSymbol".into(), "WND".into()); properties.insert("tokenDecimals".into(), 12.into()); @@ -555,18 +555,18 @@ pub fn westmint_development_config(id: ParaId) -> WestmintChainSpec { get_account_id_from_seed::("Bob//stash"), ], get_account_id_from_seed::("Alice"), - id, + 1000.into(), ) }, vec![], None, None, Some(properties), - Extensions { relay_chain: "westend".into(), para_id: id.into() }, + Extensions { relay_chain: "westend".into(), para_id: 1000 }, ) } -pub fn westmint_local_config(id: ParaId) -> WestmintChainSpec { +pub fn westmint_local_config() -> WestmintChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("tokenSymbol".into(), "WND".into()); properties.insert("tokenDecimals".into(), 12.into()); @@ -605,18 +605,18 @@ pub fn westmint_local_config(id: ParaId) -> WestmintChainSpec { get_account_id_from_seed::("Ferdie//stash"), ], get_account_id_from_seed::("Alice"), - id, + 1000.into(), ) }, vec![], None, None, Some(properties), - Extensions { relay_chain: "westend-local".into(), para_id: id.into() }, + Extensions { relay_chain: "westend-local".into(), para_id: 1000 }, ) } -pub fn westmint_config(id: ParaId) -> WestmintChainSpec { +pub fn westmint_config() -> WestmintChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("tokenSymbol".into(), "WND".into()); properties.insert("tokenDecimals".into(), 12.into()); @@ -659,14 +659,14 @@ pub fn westmint_config(id: ParaId) -> WestmintChainSpec { vec![], // re-use the Westend sudo key hex!("6648d7f3382690650c681aba1b993cd11e54deb4df21a3a18c3e2177de9f7342").into(), - id, + 1000.into(), ) }, vec![], None, None, Some(properties), - Extensions { relay_chain: "westend".into(), para_id: id.into() }, + Extensions { relay_chain: "westend".into(), para_id: 1000 }, ) } diff --git a/polkadot-parachains/src/command.rs b/polkadot-parachains/src/command.rs index 753f1bbc5df..1e067b1405d 100644 --- a/polkadot-parachains/src/command.rs +++ b/polkadot-parachains/src/command.rs @@ -36,9 +36,6 @@ use sp_core::hexdisplay::HexDisplay; use sp_runtime::traits::Block as BlockT; use std::{io::Write, net::SocketAddr}; -// default to the Statemint/Statemine/Westmint id -const DEFAULT_PARA_ID: u32 = 1000; - trait IdentifyChain { fn is_shell(&self) -> bool; fn is_statemint(&self) -> bool; @@ -76,12 +73,9 @@ impl IdentifyChain for T { } } -fn load_spec( - id: &str, - para_id: ParaId, -) -> std::result::Result, String> { +fn load_spec(id: &str) -> std::result::Result, String> { Ok(match id { - "staging" => Box::new(chain_spec::staging_test_net(para_id)), + "staging" => Box::new(chain_spec::staging_test_net()), "tick" => Box::new(chain_spec::ChainSpec::from_json_bytes( &include_bytes!("../res/tick.json")[..], )?), @@ -91,26 +85,26 @@ fn load_spec( "track" => Box::new(chain_spec::ChainSpec::from_json_bytes( &include_bytes!("../res/track.json")[..], )?), - "shell" => Box::new(chain_spec::get_shell_chain_spec(para_id)), - "statemint-dev" => Box::new(chain_spec::statemint_development_config(para_id)), - "statemint-local" => Box::new(chain_spec::statemint_local_config(para_id)), - "statemine-dev" => Box::new(chain_spec::statemine_development_config(para_id)), - "statemine-local" => Box::new(chain_spec::statemine_local_config(para_id)), + "shell" => Box::new(chain_spec::get_shell_chain_spec()), + "statemint-dev" => Box::new(chain_spec::statemint_development_config()), + "statemint-local" => Box::new(chain_spec::statemint_local_config()), + "statemine-dev" => Box::new(chain_spec::statemine_development_config()), + "statemine-local" => Box::new(chain_spec::statemine_local_config()), // the chain spec as used for generating the upgrade genesis values - "statemine-genesis" => Box::new(chain_spec::statemine_config(para_id)), + "statemine-genesis" => Box::new(chain_spec::statemine_config()), // the shell-based chain spec as used for syncing "statemine" => Box::new(chain_spec::ChainSpec::from_json_bytes( &include_bytes!("../res/statemine.json")[..], )?), - "westmint-dev" => Box::new(chain_spec::westmint_development_config(para_id)), - "westmint-local" => Box::new(chain_spec::westmint_local_config(para_id)), + "westmint-dev" => Box::new(chain_spec::westmint_development_config()), + "westmint-local" => Box::new(chain_spec::westmint_local_config()), // the chain spec as used for generating the upgrade genesis values - "westmint-genesis" => Box::new(chain_spec::westmint_config(para_id)), + "westmint-genesis" => Box::new(chain_spec::westmint_config()), // the shell-based chain spec as used for syncing "westmint" => Box::new(chain_spec::ChainSpec::from_json_bytes( &include_bytes!("../res/westmint.json")[..], )?), - "" => Box::new(chain_spec::get_chain_spec(para_id)), + "" => Box::new(chain_spec::get_chain_spec()), path => { let chain_spec = chain_spec::ChainSpec::from_json_file(path.into())?; if chain_spec.is_statemint() { @@ -160,7 +154,7 @@ impl SubstrateCli for Cli { } fn load_spec(&self, id: &str) -> std::result::Result, String> { - load_spec(id, self.run.parachain_id.unwrap_or(DEFAULT_PARA_ID).into()) + load_spec(id) } fn native_runtime_version(chain_spec: &Box) -> &'static RuntimeVersion { @@ -342,10 +336,8 @@ pub fn run() -> Result<()> { builder.with_profiling(sc_tracing::TracingReceiver::Log, ""); let _ = builder.init(); - let block: crate::service::Block = generate_genesis_block(&load_spec( - ¶ms.chain.clone().unwrap_or_default(), - params.parachain_id.unwrap_or(DEFAULT_PARA_ID).into(), - )?)?; + let block: crate::service::Block = + generate_genesis_block(&load_spec(¶ms.chain.clone().unwrap_or_default())?)?; let raw_header = block.header().encode(); let output_buf = if params.raw { raw_header @@ -404,8 +396,9 @@ pub fn run() -> Result<()> { let runner = cli.create_runner(&cli.run.normalize())?; runner.run_node_until_exit(|config| async move { - let para_id = - chain_spec::Extensions::try_get(&*config.chain_spec).map(|e| e.para_id); + let para_id = chain_spec::Extensions::try_get(&*config.chain_spec) + .map(|e| e.para_id) + .ok_or_else(|| "Could not find parachain extension in chain-spec.")?; let polkadot_cli = RelayChainCli::new( &config, @@ -414,7 +407,7 @@ pub fn run() -> Result<()> { .chain(cli.relaychain_args.iter()), ); - let id = ParaId::from(cli.run.parachain_id.or(para_id).unwrap_or(DEFAULT_PARA_ID)); + let id = ParaId::from(para_id); let parachain_account = AccountIdConversion::::into_account(&id);