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

Dump genesis to JSON file #218

Merged
merged 121 commits into from
Jun 21, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
b20b807
Merge remote-tracking branch 'origin/master' into gav-xts-dont-panic
gavofyork May 29, 2018
b7ca4ae
Merge remote-tracking branch 'origin/master' into gav-xts-dont-panic
gavofyork May 29, 2018
b2a48c8
Update wasm.
gavofyork May 29, 2018
2d3a1ce
consensus, session and staking all panic-safe.
gavofyork May 29, 2018
881f6af
Democracy doesn't panic in apply.
gavofyork May 29, 2018
fee0f6f
Fix tests.
gavofyork May 29, 2018
8b9f50f
Extra helper macro, council depanicked.
gavofyork May 30, 2018
0e31a73
Fix one test.
gavofyork May 30, 2018
820ec13
Fix up all council tests. No panics!
gavofyork May 30, 2018
62ab840
Council voting depanicked.
gavofyork May 30, 2018
ff5da1a
Dispatch returns result.
gavofyork May 31, 2018
1123ff7
session & staking tests updated
gavofyork May 31, 2018
00ba4e0
Fix democracy tests.
gavofyork May 31, 2018
b6e54c1
Fix council tests.
gavofyork May 31, 2018
f3c1b9b
Fix up polkadot parachains in runtime
gavofyork May 31, 2018
3b8a4be
Merge branch 'master' into gav-result-dispatch
gavofyork May 31, 2018
d51a9bd
Merge remote-tracking branch 'origin/master' into gav-result-dispatch
gavofyork May 31, 2018
6c81a1e
Fix borked merge
gavofyork May 31, 2018
0141a68
More Slicable support
gavofyork Jun 1, 2018
34d0b75
Basic storage types.
gavofyork Jun 1, 2018
96a9b01
Existential deposit for contract creation
gavofyork Jun 1, 2018
ea2499f
Basic implemnetation along with removals
gavofyork Jun 1, 2018
193dde7
Fix tests.
gavofyork Jun 1, 2018
6f9636c
externalities builder fix.
gavofyork Jun 1, 2018
777f4dc
Tests.
gavofyork Jun 1, 2018
4027bd2
Fix up the runtime.
gavofyork Jun 1, 2018
de952ba
Fix tests.
gavofyork Jun 2, 2018
5e19a40
Add generic `Address` type.
gavofyork Jun 2, 2018
752f1a9
Merge branch 'master' into gav-enum-accounts
gavofyork Jun 2, 2018
014c13e
Initial function integration of Address into Extrinsic.
gavofyork Jun 3, 2018
8d34279
Fix build
gavofyork Jun 3, 2018
dd824ef
All tests compile.
gavofyork Jun 3, 2018
f2bebd2
Fix (some) tests.
gavofyork Jun 3, 2018
9ed26a5
Fix signing.
gavofyork Jun 3, 2018
f4ab2e5
Merge branch 'gav-enum-accounts' of github.com:paritytech/polkadot in…
gavofyork Jun 3, 2018
3a1835a
Push error.
gavofyork Jun 3, 2018
b3a5037
transfer can accept Address
gavofyork Jun 3, 2018
a0f0e05
Make Address generic over AccountIndex
gavofyork Jun 4, 2018
3e978c3
Fix test
gavofyork Jun 4, 2018
b04ff33
Make Council use Address for dispatch.
gavofyork Jun 4, 2018
95063be
Fix build
gavofyork Jun 4, 2018
0bd2d97
Bend over backwards to support braindead derive.
gavofyork Jun 4, 2018
e241ebd
Repot some files.
gavofyork Jun 4, 2018
67d1e74
Fix tests.
gavofyork Jun 4, 2018
d6439e8
Fix grumbles
gavofyork Jun 4, 2018
2a391c1
Remove Default bound
gavofyork Jun 4, 2018
2353b0b
Fix build for new nightly.
gavofyork Jun 4, 2018
1f5b7da
Merge remote-tracking branch 'origin/master' into gav-enum-accounts
gavofyork Jun 4, 2018
904c7cc
Make `apply_extrinsic` never panic, return useful Result.
gavofyork Jun 4, 2018
cef4d4e
Merge remote-tracking branch 'origin/master' into gav-enum-accounts
gavofyork Jun 5, 2018
5401577
Merge remote-tracking branch 'origin/master' into gav-enum-accounts
gavofyork Jun 7, 2018
48d1e9f
More merge hell
gavofyork Jun 7, 2018
b689e16
Doesn't build, but might do soon
gavofyork Jun 7, 2018
f9f875e
Serde woes
gavofyork Jun 7, 2018
d83316a
get substrate-runtime-staking compiling
rphmeier Jun 7, 2018
86de50a
Polkadot builds again!
gavofyork Jun 8, 2018
fcdfdce
Fix all build.
gavofyork Jun 8, 2018
9ad1272
Fix tests & binaries.
gavofyork Jun 8, 2018
6d27096
Merge remote-tracking branch 'origin/master' into gav-enum-accounts
gavofyork Jun 8, 2018
d3cb378
Reserve some extra initial byte values of address for future format c…
gavofyork Jun 8, 2018
c614f5d
Make semantic of `ReservedBalance` clear.
gavofyork Jun 8, 2018
684daf0
Fix panic handler.
gavofyork Jun 8, 2018
f5a8b74
Integrate other balance transformations into the new model
gavofyork Jun 8, 2018
6ba768d
Fix runtime tests.
gavofyork Jun 9, 2018
3534cc5
Fix panic build.
gavofyork Jun 10, 2018
267c360
Tests for demonstrating interaction between balance types.
gavofyork Jun 10, 2018
7abaa1d
Repot some runtime code
gavofyork Jun 10, 2018
2a39363
Fix checkedblock in non-std builds
gavofyork Jun 10, 2018
8b820ed
Get rid of `DoLookup` phantom.
gavofyork Jun 11, 2018
a6426db
Attempt to make transaction_pool work with lookups.
gavofyork Jun 11, 2018
fe6fee9
Remove vscode settings
gavofyork Jun 11, 2018
766e455
New attempt at making transaction pool work.
gavofyork Jun 12, 2018
2015e6d
It builds again!
gavofyork Jun 12, 2018
584d3e1
--all builds
gavofyork Jun 12, 2018
25bd52e
Fix tests.
gavofyork Jun 12, 2018
917455e
New build.
gavofyork Jun 12, 2018
abe5d64
Test account nonce reset.
gavofyork Jun 12, 2018
c4b2703
polkadot transaction pool tests/framework.
gavofyork Jun 13, 2018
97c0e02
Initial draft (working).
gavofyork Jun 14, 2018
8269eb3
Address grumbles.
gavofyork Jun 14, 2018
b54081a
Merge branch 'gav-enum-accounts' into gav-slogging
gavofyork Jun 14, 2018
1cea609
Revert bad `map_or`
gavofyork Jun 14, 2018
49b539e
Merge remote-tracking branch 'origin/dk-pwasm-alloc-fix' into gav-enu…
gavofyork Jun 15, 2018
8e30aad
Rebuild binaries, workaround.
gavofyork Jun 15, 2018
1d351d0
Merge branch 'gav-enum-accounts' into gav-slogging
gavofyork Jun 15, 2018
8c999d2
Avoid checking in vscode
gavofyork Jun 15, 2018
2dcd073
reconnecting, shared, slog
gavofyork Jun 15, 2018
0e2aa61
Merge
gavofyork Jun 15, 2018
678d027
Merge branch 'gav-enum-accounts' into gav-slogging
gavofyork Jun 15, 2018
4c2cb9c
CLI options for name and telemetry url
gavofyork Jun 15, 2018
9fe8144
ensure telemetry url imples enabled
gavofyork Jun 15, 2018
8065ad8
Avoid casting to usize early.
gavofyork Jun 15, 2018
5fa7866
Merge branch 'gav-enum-accounts' into gav-slogging
gavofyork Jun 15, 2018
f474509
Provide on-connect event for session message
gavofyork Jun 15, 2018
3747b9b
Better port
gavofyork Jun 15, 2018
94e15d0
heartbeat and some renaming
gavofyork Jun 15, 2018
e5cc4e3
transaction pool stuff
gavofyork Jun 15, 2018
e9fcff0
minor renaming.
gavofyork Jun 15, 2018
c1e89f5
report telemetry
gavofyork Jun 15, 2018
d924faf
cleanups.
gavofyork Jun 15, 2018
80aadf1
Fix for previous cleanup
gavofyork Jun 15, 2018
8bfd536
dump genesis, dev mode, renaming
gavofyork Jun 16, 2018
92e85e5
Rework chain spec/config &c. to allow for genesis file loading.
gavofyork Jun 16, 2018
6adec42
Avoid producing genesis storage when unneeded
gavofyork Jun 16, 2018
f175be9
Allow reading JSON genesis state dumps
gavofyork Jun 16, 2018
314f08b
tests work again
gavofyork Jun 16, 2018
3e602bd
better logging.
gavofyork Jun 16, 2018
a13b429
Fix wasm build.
gavofyork Jun 17, 2018
57cc25b
Introduce PoC-1 spec
gavofyork Jun 17, 2018
5cb584c
Made block message compatible with poc-1
arkpar Jun 17, 2018
0ef30ca
Squashed changes for dumping genesis block.
gavofyork Jun 20, 2018
afed52a
Binaries.
gavofyork Jun 20, 2018
cac5e4b
Merge branch 'net-v1-ext' into gav-genesis-dump-4
gavofyork Jun 20, 2018
ac2b145
Made block message compatible with poc-1
arkpar Jun 17, 2018
41ce302
Remove dead code.
gavofyork Jun 20, 2018
fb66a6d
Fix bad merge.
gavofyork Jun 20, 2018
062923e
Argument passing and returning values when invoking sandboxed funcs (…
pepyakin Jun 19, 2018
e475063
Fixed block download sequence (#223)
arkpar Jun 21, 2018
84d7df8
Trie-based execution proof (#177)
svyatonik Jun 21, 2018
22114c3
Relaying tx/blocks by light clients (#190)
svyatonik Jun 21, 2018
5d44c64
Merge branch 'master' into gav-genesis-dump
gavofyork Jun 21, 2018
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
7 changes: 6 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ members = [
"substrate/test-runtime",
"substrate/telemetry",
"substrate/keystore",

"demo/cli",
"demo/executor",
"demo/primitives",
Expand Down
115 changes: 52 additions & 63 deletions demo/cli/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,10 @@ extern crate log;
pub mod error;

use std::sync::Arc;
use client::genesis;
use demo_primitives::Hash;
use demo_runtime::{GenesisConfig, ConsensusConfig, CouncilConfig, DemocracyConfig,
SessionConfig, StakingConfig, BuildExternalities};
use demo_runtime::{Block, Header, UncheckedExtrinsic};
SessionConfig, StakingConfig, BuildStorage};
use demo_runtime::{Block, UncheckedExtrinsic};
use futures::{Future, Sink, Stream};

struct DummyPool;
Expand Down Expand Up @@ -101,66 +100,56 @@ pub fn run<I, T>(args: I) -> error::Result<()> where
// Create client
let executor = demo_executor::Executor::new();

struct GenesisBuilder;

impl client::GenesisBuilder<Block> for GenesisBuilder {
fn build(self) -> (Header, Vec<(Vec<u8>, Vec<u8>)>) {
let god_key = hex!["3d866ec8a9190c8343c2fc593d21d8a6d0c5c4763aaab2349de3a6111d64d124"];
let genesis_config = GenesisConfig {
consensus: Some(ConsensusConfig {
code: vec![], // TODO
authorities: vec![god_key.clone()],
}),
system: None,
// block_time: 5, // 5 second block time.
session: Some(SessionConfig {
validators: vec![god_key.clone().into()],
session_length: 720, // that's 1 hour per session.
}),
staking: Some(StakingConfig {
current_era: 0,
intentions: vec![],
transaction_base_fee: 100,
transaction_byte_fee: 1,
transfer_fee: 0,
creation_fee: 0,
contract_fee: 0,
reclaim_rebate: 0,
existential_deposit: 500,
balances: vec![(god_key.clone().into(), 1u64 << 63)].into_iter().collect(),
validator_count: 12,
sessions_per_era: 24, // 24 hours per era.
bonding_duration: 90, // 90 days per bond.
}),
democracy: Some(DemocracyConfig {
launch_period: 120 * 24 * 14, // 2 weeks per public referendum
voting_period: 120 * 24 * 28, // 4 weeks to discuss & vote on an active referendum
minimum_deposit: 1000, // 1000 as the minimum deposit for a referendum
}),
council: Some(CouncilConfig {
active_council: vec![],
candidacy_bond: 1000, // 1000 to become a council candidate
voter_bond: 100, // 100 down to vote for a candidate
present_slash_per_voter: 1, // slash by 1 per voter for an invalid presentation.
carry_count: 24, // carry over the 24 runners-up to the next council election
presentation_duration: 120 * 24, // one day for presenting winners.
approval_voting_period: 7 * 120 * 24, // one week period between possible council elections.
term_duration: 180 * 120 * 24, // 180 day term duration for the council.
desired_seats: 0, // start with no council: we'll raise this once the stake has been dispersed a bit.
inactive_grace_period: 1, // one addition vote should go by before an inactive voter can be reaped.

cooloff_period: 90 * 120 * 24, // 90 day cooling off period if council member vetoes a proposal.
voting_period: 7 * 120 * 24, // 7 day voting period for council members.
}),
};

let storage = genesis_config.build_externalities();
let block = genesis::construct_genesis_block::<Block>(&storage);
(block.header, storage.into_iter().collect())
}
}

let client = Arc::new(client::new_in_mem(executor, GenesisBuilder)?);
let god_key = hex!["3d866ec8a9190c8343c2fc593d21d8a6d0c5c4763aaab2349de3a6111d64d124"];
let genesis_storage = GenesisConfig {
consensus: Some(ConsensusConfig {
code: vec![], // TODO
authorities: vec![god_key.clone()],
}),
system: None,
// block_time: 5, // 5 second block time.
session: Some(SessionConfig {
validators: vec![god_key.clone().into()],
session_length: 720, // that's 1 hour per session.
}),
staking: Some(StakingConfig {
current_era: 0,
intentions: vec![],
transaction_base_fee: 100,
transaction_byte_fee: 1,
transfer_fee: 0,
creation_fee: 0,
contract_fee: 0,
reclaim_rebate: 0,
existential_deposit: 500,
balances: vec![(god_key.clone().into(), 1u64 << 63)].into_iter().collect(),
validator_count: 12,
sessions_per_era: 24, // 24 hours per era.
bonding_duration: 90, // 90 days per bond.
}),
democracy: Some(DemocracyConfig {
launch_period: 120 * 24 * 14, // 2 weeks per public referendum
voting_period: 120 * 24 * 28, // 4 weeks to discuss & vote on an active referendum
minimum_deposit: 1000, // 1000 as the minimum deposit for a referendum
}),
council: Some(CouncilConfig {
active_council: vec![],
candidacy_bond: 1000, // 1000 to become a council candidate
voter_bond: 100, // 100 down to vote for a candidate
present_slash_per_voter: 1, // slash by 1 per voter for an invalid presentation.
carry_count: 24, // carry over the 24 runners-up to the next council election
presentation_duration: 120 * 24, // one day for presenting winners.
approval_voting_period: 7 * 120 * 24, // one week period between possible council elections.
term_duration: 180 * 120 * 24, // 180 day term duration for the council.
desired_seats: 0, // start with no council: we'll raise this once the stake has been dispersed a bit.
inactive_grace_period: 1, // one addition vote should go by before an inactive voter can be reaped.

cooloff_period: 90 * 120 * 24, // 90 day cooling off period if council member vetoes a proposal.
voting_period: 7 * 120 * 24, // 7 day voting period for council members.
}),
}.build_storage();

let client = Arc::new(client::new_in_mem::<_, Block, _>(executor, genesis_storage)?);
let mut core = ::tokio_core::reactor::Core::new().expect("Unable to spawn event loop.");

let _rpc_servers = {
Expand Down
4 changes: 2 additions & 2 deletions demo/executor/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ mod tests {
use runtime_primitives::{ApplyOutcome, ApplyError, ApplyResult, MaybeUnsigned};
use {staking, system};
use demo_runtime::{Header, Block, UncheckedExtrinsic, Extrinsic, Call, Concrete, Staking,
BuildExternalities, GenesisConfig, SessionConfig, StakingConfig, BareExtrinsic};
BuildStorage, GenesisConfig, SessionConfig, StakingConfig, BareExtrinsic};
use ed25519::{Public, Pair};

const BLOATY_CODE: &[u8] = include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.wasm");
Expand Down Expand Up @@ -203,7 +203,7 @@ mod tests {
}),
democracy: Some(Default::default()),
council: Some(Default::default()),
}.build_externalities()
}.build_storage()
}

fn construct_block(number: BlockNumber, parent_hash: Hash, state_root: Hash, extrinsics: Vec<BareExtrinsic>) -> (Vec<u8>, Hash) {
Expand Down
2 changes: 1 addition & 1 deletion demo/runtime/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ use runtime_primitives::generic;
use runtime_primitives::traits::{Convert, HasPublicAux, BlakeTwo256};

#[cfg(any(feature = "std", test))]
pub use runtime_primitives::BuildExternalities;
pub use runtime_primitives::BuildStorage;

// Workaround for https://github.com/rust-lang/rust/issues/26925 . Remove when sorted.
#[derive(Clone, Copy, PartialEq, Eq)]
Expand Down
Binary file not shown.
Binary file not shown.
46 changes: 18 additions & 28 deletions polkadot/api/src/full.rs
Original file line number Diff line number Diff line change
Expand Up @@ -187,10 +187,10 @@ impl<B: LocalBackend<Block>> LocalPolkadotApi for Client<B, LocalCallExecutor<B,
mod tests {
use super::*;
use keyring::Keyring;
use client::{self, LocalCallExecutor};
use client::LocalCallExecutor;
use client::in_mem::Backend as InMemory;
use substrate_executor::NativeExecutionDispatch;
use runtime::{GenesisConfig, ConsensusConfig, SessionConfig, BuildExternalities};
use runtime::{GenesisConfig, ConsensusConfig, SessionConfig, BuildStorage};

fn validators() -> Vec<AccountId> {
vec![
Expand All @@ -207,33 +207,23 @@ mod tests {
}

fn client() -> Client<InMemory<Block>, LocalCallExecutor<InMemory<Block>, NativeExecutor<LocalDispatch>>, Block> {
struct GenesisBuilder;

impl client::GenesisBuilder<Block> for GenesisBuilder {
fn build(self) -> (Header, Vec<(Vec<u8>, Vec<u8>)>) {
let genesis_config = GenesisConfig {
consensus: Some(ConsensusConfig {
code: LocalDispatch::native_equivalent().to_vec(),
authorities: session_keys(),
}),
system: None,
session: Some(SessionConfig {
validators: validators(),
session_length: 100,
}),
council: Some(Default::default()),
democracy: Some(Default::default()),
parachains: Some(Default::default()),
staking: Some(Default::default()),
};

let storage = genesis_config.build_externalities();
let block = ::client::genesis::construct_genesis_block::<Block>(&storage);
(block.header, storage.into_iter().collect())
}
}
let genesis_config = GenesisConfig {
consensus: Some(ConsensusConfig {
code: LocalDispatch::native_equivalent().to_vec(),
authorities: session_keys(),
}),
system: None,
session: Some(SessionConfig {
validators: validators(),
session_length: 100,
}),
council: Some(Default::default()),
democracy: Some(Default::default()),
parachains: Some(Default::default()),
staking: Some(Default::default()),
};

::client::new_in_mem(LocalDispatch::new(), GenesisBuilder).unwrap()
::client::new_in_mem(LocalDispatch::new(), genesis_config.build_storage()).unwrap()
}

#[test]
Expand Down
5 changes: 5 additions & 0 deletions polkadot/cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,17 @@ futures = "0.1.17"
ctrlc = { git = "https://github.com/paritytech/rust-ctrlc.git" }
fdlimit = "0.1"
parking_lot = "0.4"
serde_json = "1.0"
serde = "1.0"
substrate-client = { path = "../../substrate/client" }
substrate-state-machine = { path = "../../substrate/state-machine" }
substrate-rpc = { path = "../../substrate/rpc" }
substrate-rpc-servers = { path = "../../substrate/rpc-servers" }
substrate-network = { path = "../../substrate/network" }
substrate-primitives = { path = "../../substrate/primitives" }
substrate-runtime-primitives = { path = "../../substrate/runtime/primitives" }
substrate-telemetry = { path = "../../substrate/telemetry" }
polkadot-primitives = { path = "../primitives" }
polkadot-runtime = { path = "../runtime" }
polkadot-service = { path = "../service" }
polkadot-transaction-pool = { path = "../transaction-pool" }
38 changes: 38 additions & 0 deletions polkadot/cli/poc-1.json

Large diffs are not rendered by default.

73 changes: 73 additions & 0 deletions polkadot/cli/src/chain_spec.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
// Copyright 2017 Parity Technologies (UK) Ltd.
// This file is part of Polkadot.

// Polkadot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// Polkadot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with Polkadot. If not, see <http://www.gnu.org/licenses/>.?

//! Predefined chains.

/// The chain specification (this should eventually be replaced by a more general JSON-based chain
/// specification).
#[derive(Clone, Debug)]
pub enum ChainSpec {
/// Whatever the current runtime is, with just Alice as an auth.
Development,
/// Whatever the current runtime is, with simple Alice/Bob auths.
LocalTestnet,
/// The PoC-1 testnet.
PoC1Testnet,
/// The PoC-2 testnet.
PoC2Testnet,
/// Custom Genesis file.
Custom(String),
}

impl<'a> From<&'a str> for ChainSpec {
fn from(s: &'a str) -> Self {
match s {
"dev" => ChainSpec::Development,
"local" => ChainSpec::LocalTestnet,
"poc-1" => ChainSpec::PoC1Testnet,
"poc-2" => ChainSpec::PoC2Testnet,
s => ChainSpec::Custom(s.into()),
}
}
}

impl From<ChainSpec> for String {
fn from(s: ChainSpec) -> String {
match s {
ChainSpec::Development => "dev".into(),
ChainSpec::LocalTestnet => "local".into(),
ChainSpec::PoC1Testnet => "poc-1".into(),
ChainSpec::PoC2Testnet => "poc-2".into(),
ChainSpec::Custom(f) => format!("custom ({})", f),
}
}
}

impl ::std::fmt::Display for ChainSpec {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
if let ChainSpec::Custom(n) = self {
write!(f, "Custom ({})", n)
} else {
write!(f, "{}", match *self {
ChainSpec::Development => "Development",
ChainSpec::LocalTestnet => "Local Testnet",
ChainSpec::PoC1Testnet => "PoC-1 Testnet",
ChainSpec::PoC2Testnet => "PoC-2 Testnet",
_ => unreachable!(),
})
}
}
}
12 changes: 10 additions & 2 deletions polkadot/cli/src/cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ args:
- node-key:
long: node-key
value_name: KEY
help: Specify node secret key (64-character hex string).
help: Specify node secret key (64-character hex string)
takes_value: true
- collator:
long: collator
Expand All @@ -41,6 +41,14 @@ args:
long: light
help: Run in light client mode
takes_value: false
- dev:
long: dev
help: Run in development mode; implies --chain=dev --validator --key Alice
takes_value: false
- build-genesis:
long: build-genesis
help: Build a genesis.json file, outputing to stdout
takes_value: false
- port:
long: port
value_name: PORT
Expand Down Expand Up @@ -80,6 +88,6 @@ args:
- telemetry-url:
long: telemetry-url
value_name: TELEMETRY_URL
help: The URL of the telemetry server. Implies --telemetry.
help: The URL of the telemetry server. Implies --telemetry
takes_value: true
subcommands:
Loading