Make the dev profile a local testnet profile

Restores a dev profile which only has one validator, locally running.
This commit is contained in:
Luke Parker 2022-11-02 19:58:37 -04:00
parent 83caa8b413
commit 083198ecf2
No known key found for this signature in database
GPG key ID: F9F1386DB1E119B6
3 changed files with 59 additions and 11 deletions

View file

@ -46,7 +46,7 @@ services:
profiles:
- base
environment:
CHAIN: dev
CHAIN: local
NAME: base
serai-alice:
@ -59,7 +59,7 @@ services:
- cluster-lg
- cluster-coins-lg
environment:
CHAIN: dev
CHAIN: local
NAME: alice
VALIDATOR: true
@ -73,7 +73,7 @@ services:
- cluster-lg
- cluster-coins-lg
environment:
CHAIN: dev
CHAIN: local
NAME: bob
VALIDATOR: true
@ -87,7 +87,7 @@ services:
- cluster-lg
- cluster-coins-lg
environment:
CHAIN: dev
CHAIN: local
NAME: charlie
VALIDATOR: true
@ -99,7 +99,7 @@ services:
- cluster-lg
- cluster-coins-lg
environment:
CHAIN: dev
CHAIN: local
NAME: dave
serai-eve:
@ -110,7 +110,7 @@ services:
- cluster-lg
- cluster-coins-lg
environment:
CHAIN: dev
CHAIN: local
NAME: eve
serai-ferdie:
@ -121,7 +121,7 @@ services:
- cluster-lg
- cluster-coins-lg
environment:
CHAIN: dev
CHAIN: local
NAME: ferdie
# Processor Services

View file

@ -18,7 +18,11 @@ fn account_id_from_name(name: &'static str) -> AccountId {
insecure_pair_from_name(name).public()
}
fn testnet_genesis(wasm_binary: &[u8], endowed_accounts: Vec<AccountId>) -> GenesisConfig {
fn testnet_genesis(
wasm_binary: &[u8],
validators: &[&'static str],
endowed_accounts: Vec<AccountId>,
) -> GenesisConfig {
let session_key = |name| {
let key = account_id_from_name(name);
(key, key, SessionKeys { tendermint: Public::from(key) })
@ -30,9 +34,7 @@ fn testnet_genesis(wasm_binary: &[u8], endowed_accounts: Vec<AccountId>) -> Gene
balances: endowed_accounts.iter().cloned().map(|k| (k, 1 << 60)).collect(),
},
transaction_payment: Default::default(),
session: SessionConfig {
keys: vec![session_key("Alice"), session_key("Bob"), session_key("Charlie")],
},
session: SessionConfig { keys: validators.iter().map(|name| session_key(*name)).collect() },
}
}
@ -48,6 +50,51 @@ pub fn development_config() -> Result<ChainSpec, &'static str> {
|| {
testnet_genesis(
wasm_binary,
&["Alice"],
vec![
account_id_from_name("Alice"),
account_id_from_name("Bob"),
account_id_from_name("Charlie"),
account_id_from_name("Dave"),
account_id_from_name("Eve"),
account_id_from_name("Ferdie"),
account_id_from_name("Alice//stash"),
account_id_from_name("Bob//stash"),
account_id_from_name("Charlie//stash"),
account_id_from_name("Dave//stash"),
account_id_from_name("Eve//stash"),
account_id_from_name("Ferdie//stash"),
],
)
},
// Bootnodes
vec![],
// Telemetry
None,
// Protocol ID
Some("serai"),
// Fork ID
None,
// Properties
None,
// Extensions
None,
))
}
pub fn testnet_config() -> Result<ChainSpec, &'static str> {
let wasm_binary = WASM_BINARY.ok_or("Testnet wasm not available")?;
Ok(ChainSpec::from_genesis(
// Name
"Local Test Network",
// ID
"local",
ChainType::Local,
|| {
testnet_genesis(
wasm_binary,
&["Alice", "Bob", "Charlie"],
vec![
account_id_from_name("Alice"),
account_id_from_name("Bob"),

View file

@ -39,6 +39,7 @@ impl SubstrateCli for Cli {
fn load_spec(&self, id: &str) -> Result<Box<dyn sc_service::ChainSpec>, String> {
match id {
"dev" => Ok(Box::new(chain_spec::development_config()?)),
"local" => Ok(Box::new(chain_spec::testnet_config()?)),
_ => panic!("Unknown network ID"),
}
}