mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-02 16:21:42 +00:00
## Issue Addressed Closes #1823 ## Proposed Changes * Use OS-level file locking for validator keystores, eliminating problems with lockfiles lingering after ungraceful shutdowns (`SIGKILL`, power outage). I'm using the `fs2` crate because it's cross-platform (unlike `file-lock`), and it seems to have the most downloads on crates.io. * Deprecate + disable `--delete-lockfiles` CLI param, it's no longer necessary * Delete the `validator_dir::Manager`, as it was mostly dead code and was only used in the `validator list` command, which has been rewritten to read the validator definitions YAML instead. ## Additional Info Tested on: - [x] Linux - [x] macOS - [x] Docker Linux - [x] Docker macOS - [ ] Windows
30 lines
802 B
Rust
30 lines
802 B
Rust
use account_utils::validator_definitions::ValidatorDefinitions;
|
|
use clap::App;
|
|
use std::path::PathBuf;
|
|
|
|
pub const CMD: &str = "list";
|
|
|
|
pub fn cli_app<'a, 'b>() -> App<'a, 'b> {
|
|
App::new(CMD).about("Lists the public keys of all validators.")
|
|
}
|
|
|
|
pub fn cli_run(validator_dir: PathBuf) -> Result<(), String> {
|
|
eprintln!("validator-dir path: {:?}", validator_dir);
|
|
let validator_definitions = ValidatorDefinitions::open(&validator_dir).map_err(|e| {
|
|
format!(
|
|
"No validator definitions found in {:?}: {:?}",
|
|
validator_dir, e
|
|
)
|
|
})?;
|
|
|
|
for def in validator_definitions.as_slice() {
|
|
println!(
|
|
"{} ({})",
|
|
def.voting_public_key,
|
|
if def.enabled { "enabled" } else { "disabled" }
|
|
);
|
|
}
|
|
|
|
Ok(())
|
|
}
|