diff --git a/.travis.yml b/.travis.yml index 3337de420..8518c5d45 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ language: rust script: + - cargo fmt --all -- --check - cargo build --verbose --all - cargo test --verbose --all rust: @@ -10,3 +11,5 @@ matrix: allow_failures: - rust: nightly fast_finish: true +install: + - rustup component add rustfmt diff --git a/beacon_chain/attestation_validation/src/lib.rs b/beacon_chain/attestation_validation/src/lib.rs index 254d6134e..825371ed0 100644 --- a/beacon_chain/attestation_validation/src/lib.rs +++ b/beacon_chain/attestation_validation/src/lib.rs @@ -14,9 +14,9 @@ mod justified_slot; mod shard_block; mod signature; -pub use crate::enums::{Invalid, Outcome, Error}; pub use crate::block_inclusion::validate_attestation_for_block; -pub use crate::justified_slot::validate_attestation_justified_slot; +pub use crate::enums::{Error, Invalid, Outcome}; pub use crate::justified_block::validate_attestation_justified_block_hash; -pub use crate::signature::validate_attestation_signature; +pub use crate::justified_slot::validate_attestation_justified_slot; pub use crate::shard_block::validate_attestation_data_shard_block_hash; +pub use crate::signature::validate_attestation_signature; diff --git a/beacon_chain/genesis/src/lib.rs b/beacon_chain/genesis/src/lib.rs index e590fa8be..6f45863aa 100644 --- a/beacon_chain/genesis/src/lib.rs +++ b/beacon_chain/genesis/src/lib.rs @@ -3,8 +3,8 @@ extern crate types; extern crate validator_induction; extern crate validator_shuffling; -mod beacon_state; mod beacon_block; +mod beacon_state; pub use crate::beacon_block::genesis_beacon_block; pub use crate::beacon_state::{genesis_beacon_state, Error as GenesisError}; diff --git a/beacon_chain/types/src/test_utils/mod.rs b/beacon_chain/types/src/test_utils/mod.rs index f3e382e6e..eb54f2a53 100644 --- a/beacon_chain/types/src/test_utils/mod.rs +++ b/beacon_chain/types/src/test_utils/mod.rs @@ -6,12 +6,13 @@ pub mod address; pub mod aggregate_signature; pub mod bitfield; pub mod hash256; -pub mod signature; -pub mod secret_key; pub mod public_key; +pub mod secret_key; +pub mod signature; pub trait TestRandom -where T: RngCore +where + T: RngCore, { fn random_for_test(rng: &mut T) -> Self; } @@ -35,7 +36,8 @@ impl TestRandom for usize { } impl TestRandom for Vec -where U: TestRandom +where + U: TestRandom, { fn random_for_test(rng: &mut T) -> Self { vec![ diff --git a/beacon_chain/types/src/validator_record.rs b/beacon_chain/types/src/validator_record.rs index 5f74d28d2..3f4a43261 100644 --- a/beacon_chain/types/src/validator_record.rs +++ b/beacon_chain/types/src/validator_record.rs @@ -1,5 +1,5 @@ use super::bls::PublicKey; -use super::{Hash256}; +use super::Hash256; use crate::test_utils::TestRandom; use rand::RngCore; use ssz::{Decodable, DecodeError, Encodable, SszStream}; @@ -40,7 +40,7 @@ pub struct ValidatorRecord { pub exit_count: u64, pub custody_commitment: Hash256, pub latest_custody_reseed_slot: u64, - pub penultimate_custody_reseed_slot: u64 + pub penultimate_custody_reseed_slot: u64, } impl ValidatorRecord { @@ -132,7 +132,7 @@ impl Decodable for ValidatorRecord { exit_count, custody_commitment, latest_custody_reseed_slot, - penultimate_custody_reseed_slot + penultimate_custody_reseed_slot, }, i, )) diff --git a/beacon_chain/utils/bls/src/lib.rs b/beacon_chain/utils/bls/src/lib.rs index 9d27d870b..d7a3ff15d 100644 --- a/beacon_chain/utils/bls/src/lib.rs +++ b/beacon_chain/utils/bls/src/lib.rs @@ -19,8 +19,8 @@ pub use self::bls_aggregates::AggregatePublicKey; pub const BLS_AGG_SIG_BYTE_SIZE: usize = 97; use hashing::canonical_hash; -use std::default::Default; use ssz::ssz_encode; +use std::default::Default; fn extend_if_needed(hash: &mut Vec) { // NOTE: bls_aggregates crate demands 48 bytes, this may be removed as we get closer to production diff --git a/beacon_chain/validator_induction/src/inductor.rs b/beacon_chain/validator_induction/src/inductor.rs index 720e38fa4..f00c9ec55 100644 --- a/beacon_chain/validator_induction/src/inductor.rs +++ b/beacon_chain/validator_induction/src/inductor.rs @@ -1,19 +1,19 @@ -use bls::{verify_proof_of_possession}; -use types::{BeaconState, Deposit, ValidatorRecord, ValidatorStatus}; +use bls::verify_proof_of_possession; use spec::ChainSpec; +use types::{BeaconState, Deposit, ValidatorRecord, ValidatorStatus}; #[derive(Debug, PartialEq, Clone)] pub enum ValidatorInductionError { InvalidShard, InvaidProofOfPossession, - InvalidWithdrawalCredentials + InvalidWithdrawalCredentials, } pub fn process_deposit( state: &mut BeaconState, deposit: &Deposit, - spec: &ChainSpec) --> Result { + spec: &ChainSpec, +) -> Result { let deposit_input = &deposit.deposit_data.deposit_input; let deposit_data = &deposit.deposit_data; @@ -22,18 +22,22 @@ pub fn process_deposit( return Err(ValidatorInductionError::InvaidProofOfPossession); } - let validator_index = state.validator_registry.iter() + let validator_index = state + .validator_registry + .iter() .position(|validator| validator.pubkey == deposit_input.pubkey); match validator_index { Some(i) => { - if state.validator_registry[i].withdrawal_credentials == deposit_input.withdrawal_credentials { + if state.validator_registry[i].withdrawal_credentials + == deposit_input.withdrawal_credentials + { state.validator_balances[i] += deposit_data.value; return Ok(i); } Err(ValidatorInductionError::InvalidWithdrawalCredentials) - }, + } None => { let validator = ValidatorRecord { pubkey: deposit_input.pubkey.clone(), @@ -45,7 +49,7 @@ pub fn process_deposit( exit_count: 0, custody_commitment: deposit_input.custody_commitment, latest_custody_reseed_slot: 0, - penultimate_custody_reseed_slot: 0 + penultimate_custody_reseed_slot: 0, }; match min_empty_validator_index(state, spec) { @@ -53,7 +57,7 @@ pub fn process_deposit( state.validator_registry[i] = validator; state.validator_balances[i] = deposit_data.value; Ok(i) - }, + } None => { state.validator_registry.push(validator); state.validator_balances.push(deposit_data.value); @@ -64,14 +68,13 @@ pub fn process_deposit( } } -fn min_empty_validator_index( - state: &BeaconState, - spec: &ChainSpec -) -> Option { +fn min_empty_validator_index(state: &BeaconState, spec: &ChainSpec) -> Option { for i in 0..state.validator_registry.len() { if state.validator_balances[i] == 0 && state.validator_registry[i].latest_status_change_slot - + spec.zero_balance_validator_ttl <= state.slot { + + spec.zero_balance_validator_ttl + <= state.slot + { return Some(i); } } @@ -107,7 +110,10 @@ mod tests { (dep.deposit_data.deposit_input.pubkey == val.pubkey) & (dep.deposit_data.deposit_input.withdrawal_credentials == val.withdrawal_credentials) & (dep.deposit_data.deposit_input.randao_commitment == val.randao_commitment) - & (verify_proof_of_possession(&dep.deposit_data.deposit_input.proof_of_possession, &val.pubkey)) + & (verify_proof_of_possession( + &dep.deposit_data.deposit_input.proof_of_possession, + &val.pubkey, + )) } #[test] @@ -120,7 +126,10 @@ mod tests { let result = process_deposit(&mut state, &deposit, &spec); assert_eq!(result.unwrap(), 0); - assert!(deposit_equals_record(&deposit, &state.validator_registry[0])); + assert!(deposit_equals_record( + &deposit, + &state.validator_registry[0] + )); assert_eq!(state.validator_registry.len(), 1); assert_eq!(state.validator_balances.len(), 1); } @@ -135,7 +144,10 @@ mod tests { let result = process_deposit(&mut state, &deposit, &spec); deposit.deposit_data.value = DEPOSIT_GWEI; assert_eq!(result.unwrap(), i); - assert!(deposit_equals_record(&deposit, &state.validator_registry[i])); + assert!(deposit_equals_record( + &deposit, + &state.validator_registry[i] + )); assert_eq!(state.validator_registry.len(), i + 1); assert_eq!(state.validator_balances.len(), i + 1); } @@ -151,7 +163,8 @@ mod tests { deposit.deposit_data.value = DEPOSIT_GWEI; validator.pubkey = deposit.deposit_data.deposit_input.pubkey.clone(); - validator.withdrawal_credentials = deposit.deposit_data.deposit_input.withdrawal_credentials; + validator.withdrawal_credentials = + deposit.deposit_data.deposit_input.withdrawal_credentials; validator.randao_commitment = deposit.deposit_data.deposit_input.randao_commitment; state.validator_registry.push(validator); @@ -160,7 +173,10 @@ mod tests { let result = process_deposit(&mut state, &deposit, &spec); assert_eq!(result.unwrap(), 0); - assert!(deposit_equals_record(&deposit, &state.validator_registry[0])); + assert!(deposit_equals_record( + &deposit, + &state.validator_registry[0] + )); assert_eq!(state.validator_balances[0], DEPOSIT_GWEI * 2); assert_eq!(state.validator_registry.len(), 1); assert_eq!(state.validator_balances.len(), 1); @@ -183,7 +199,10 @@ mod tests { let result = process_deposit(&mut state, &deposit, &spec); assert_eq!(result.unwrap(), 0); - assert!(deposit_equals_record(&deposit, &state.validator_registry[0])); + assert!(deposit_equals_record( + &deposit, + &state.validator_registry[0] + )); assert_eq!(state.validator_balances[0], DEPOSIT_GWEI); assert_eq!(state.validator_registry.len(), 1); assert_eq!(state.validator_balances.len(), 1); @@ -195,11 +214,15 @@ mod tests { let mut deposit = get_deposit(); let spec = ChainSpec::foundation(); deposit.deposit_data.value = DEPOSIT_GWEI; - deposit.deposit_data.deposit_input.proof_of_possession = create_proof_of_possession(&Keypair::random()); + deposit.deposit_data.deposit_input.proof_of_possession = + create_proof_of_possession(&Keypair::random()); let result = process_deposit(&mut state, &deposit, &spec); - assert_eq!(result, Err(ValidatorInductionError::InvaidProofOfPossession)); + assert_eq!( + result, + Err(ValidatorInductionError::InvaidProofOfPossession) + ); assert_eq!(state.validator_registry.len(), 0); assert_eq!(state.validator_balances.len(), 0); } diff --git a/beacon_chain/validator_induction/src/lib.rs b/beacon_chain/validator_induction/src/lib.rs index f6dec3cfa..7119d6c2e 100644 --- a/beacon_chain/validator_induction/src/lib.rs +++ b/beacon_chain/validator_induction/src/lib.rs @@ -1,8 +1,8 @@ extern crate bls; extern crate hashing; -extern crate types; extern crate spec; +extern crate types; mod inductor; -pub use crate::inductor::{ValidatorInductionError, process_deposit}; +pub use crate::inductor::{process_deposit, ValidatorInductionError}; diff --git a/lighthouse/beacon_chain/tests/chain_test.rs b/lighthouse/beacon_chain/tests/chain_test.rs index aec6c08e6..8d2cfa501 100644 --- a/lighthouse/beacon_chain/tests/chain_test.rs +++ b/lighthouse/beacon_chain/tests/chain_test.rs @@ -1,4 +1,4 @@ -use chain::{BlockProcessingOutcome, BeaconChain}; +use chain::{BeaconChain, BlockProcessingOutcome}; use db::{ stores::{BeaconBlockStore, BeaconStateStore}, MemoryDB, diff --git a/lighthouse/db/src/disk_db.rs b/lighthouse/db/src/disk_db.rs index b084f483f..9d8a71bc4 100644 --- a/lighthouse/db/src/disk_db.rs +++ b/lighthouse/db/src/disk_db.rs @@ -44,7 +44,8 @@ impl DiskDB { let db = match columns { None => DB::open(&options, db_path), Some(columns) => DB::open_cf(&options, db_path, columns), - }.expect("Unable to open local database");; + } + .expect("Unable to open local database");; Self { db } } diff --git a/lighthouse/db/src/stores/beacon_state_store.rs b/lighthouse/db/src/stores/beacon_state_store.rs index 122b22509..a54e19249 100644 --- a/lighthouse/db/src/stores/beacon_state_store.rs +++ b/lighthouse/db/src/stores/beacon_state_store.rs @@ -42,10 +42,10 @@ mod tests { use super::super::super::MemoryDB; use super::*; - use std::sync::Arc; use ssz::ssz_encode; - use types::Hash256; + use std::sync::Arc; use types::test_utils::{SeedableRng, TestRandom, XorShiftRng}; + use types::Hash256; test_crud_for_store!(BeaconStateStore, DB_COLUMN); diff --git a/lighthouse/main.rs b/lighthouse/main.rs index b2c199db9..3102feaf7 100644 --- a/lighthouse/main.rs +++ b/lighthouse/main.rs @@ -12,8 +12,8 @@ mod config; use std::path::PathBuf; -use clap::{App, Arg}; use crate::config::LighthouseConfig; +use clap::{App, Arg}; use slog::Drain; fn main() { @@ -32,13 +32,15 @@ fn main() { .value_name("DIR") .help("Data directory for keys and databases.") .takes_value(true), - ).arg( + ) + .arg( Arg::with_name("port") .long("port") .value_name("PORT") .help("Network listen port for p2p connections.") .takes_value(true), - ).get_matches(); + ) + .get_matches(); let mut config = LighthouseConfig::default();