mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-07 00:42:42 +00:00
Added deterministic keypair generation.
- The Account Manager has a new subcommand, allowing generation of deterministic keys given a particular validator index. - Split functionality in generate_deterministic_keypair function - Fixed up READMEs to reflect new functionality & correct naming.
This commit is contained in:
@@ -3,6 +3,7 @@ use clap::{App, Arg, SubCommand};
|
||||
use slog::{debug, info, o, Drain};
|
||||
use std::path::PathBuf;
|
||||
use validator_client::Config as ValidatorClientConfig;
|
||||
use types::test_utils::generate_deterministic_keypair;
|
||||
|
||||
fn main() {
|
||||
// Logging
|
||||
@@ -29,6 +30,21 @@ fn main() {
|
||||
.version("0.0.1")
|
||||
.author("Sigma Prime <contact@sigmaprime.io>"),
|
||||
)
|
||||
.subcommand(
|
||||
SubCommand::with_name("generate_deterministic")
|
||||
.about("Generates a deterministic validator private key FOR TESTING")
|
||||
.version("0.0.1")
|
||||
.author("Sigma Prime <contact@sigmaprime.io>")
|
||||
.arg(
|
||||
Arg::with_name("validator index")
|
||||
.long("index")
|
||||
.short("i")
|
||||
.value_name("index")
|
||||
.help("The index of the validator, for which the test key is generated")
|
||||
.takes_value(true)
|
||||
.required(true)
|
||||
)
|
||||
)
|
||||
.get_matches();
|
||||
|
||||
let config = ValidatorClientConfig::parse_args(&matches, &log)
|
||||
@@ -50,7 +66,24 @@ fn main() {
|
||||
keypair.identifier(),
|
||||
key_path.to_string_lossy()
|
||||
);
|
||||
}
|
||||
},
|
||||
("generate_deterministic", Some(gen_d_matches)) => {
|
||||
let validator_index = gen_d_matches
|
||||
.value_of("validator index")
|
||||
.expect("Validator index required.")
|
||||
.parse::<u64>()
|
||||
.expect("Invalid validator index.") as usize;
|
||||
let keypair = generate_deterministic_keypair(validator_index);
|
||||
let key_path: PathBuf = config
|
||||
.save_key(&keypair)
|
||||
.expect("Unable to save newly generated deterministic private key.");
|
||||
debug!(
|
||||
log,
|
||||
"Deterministic Keypair generated {:?}, saved to: {:?}",
|
||||
keypair.identifier(),
|
||||
key_path.to_string_lossy()
|
||||
);
|
||||
},
|
||||
_ => panic!(
|
||||
"The account manager must be run with a subcommand. See help for more information."
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user