mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-07 16:55:46 +00:00
Improve eth1 logging
This commit is contained in:
@@ -4,7 +4,7 @@ use exit_future::Exit;
|
|||||||
use futures::Future;
|
use futures::Future;
|
||||||
use integer_sqrt::IntegerSquareRoot;
|
use integer_sqrt::IntegerSquareRoot;
|
||||||
use rand::prelude::*;
|
use rand::prelude::*;
|
||||||
use slog::{crit, error, trace, Logger};
|
use slog::{crit, debug, error, trace, Logger};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::iter::DoubleEndedIterator;
|
use std::iter::DoubleEndedIterator;
|
||||||
use std::iter::FromIterator;
|
use std::iter::FromIterator;
|
||||||
@@ -254,6 +254,16 @@ impl<T: EthSpec, S: Store> Eth1ChainBackend<T> for CachingEth1Backend<T, S> {
|
|||||||
.take(1)
|
.take(1)
|
||||||
.collect::<Vec<_>>()
|
.collect::<Vec<_>>()
|
||||||
.first()
|
.first()
|
||||||
|
.map(|block| {
|
||||||
|
trace!(
|
||||||
|
self.log,
|
||||||
|
"Choosing default eth1_data";
|
||||||
|
"eth1_block_number" => block.number,
|
||||||
|
"eth1_block_hash" => format!("{:?}", block.hash),
|
||||||
|
);
|
||||||
|
|
||||||
|
block
|
||||||
|
})
|
||||||
.and_then(|&block| block.clone().eth1_data())
|
.and_then(|&block| block.clone().eth1_data())
|
||||||
.unwrap_or_else(|| {
|
.unwrap_or_else(|| {
|
||||||
crit!(
|
crit!(
|
||||||
@@ -266,6 +276,15 @@ impl<T: EthSpec, S: Store> Eth1ChainBackend<T> for CachingEth1Backend<T, S> {
|
|||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
|
debug!(
|
||||||
|
self.log,
|
||||||
|
"Produced vote for eth1 chain";
|
||||||
|
"is_period_tail" => is_period_tail(state),
|
||||||
|
"deposit_root" => format!("{:?}", eth1_data.deposit_root),
|
||||||
|
"deposit_count" => eth1_data.deposit_count,
|
||||||
|
"block_hash" => format!("{:?}", eth1_data.block_hash),
|
||||||
|
);
|
||||||
|
|
||||||
Ok(eth1_data)
|
Ok(eth1_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -403,8 +422,6 @@ fn collect_valid_votes<T: EthSpec>(
|
|||||||
new_eth1_data: Eth1DataBlockNumber,
|
new_eth1_data: Eth1DataBlockNumber,
|
||||||
all_eth1_data: Eth1DataBlockNumber,
|
all_eth1_data: Eth1DataBlockNumber,
|
||||||
) -> Eth1DataVoteCount {
|
) -> Eth1DataVoteCount {
|
||||||
let slots_per_eth1_voting_period = T::SlotsPerEth1VotingPeriod::to_u64();
|
|
||||||
|
|
||||||
let mut valid_votes = HashMap::new();
|
let mut valid_votes = HashMap::new();
|
||||||
|
|
||||||
state
|
state
|
||||||
@@ -415,10 +432,7 @@ fn collect_valid_votes<T: EthSpec>(
|
|||||||
.get(vote)
|
.get(vote)
|
||||||
.map(|block_number| (vote.clone(), *block_number))
|
.map(|block_number| (vote.clone(), *block_number))
|
||||||
.or_else(|| {
|
.or_else(|| {
|
||||||
let slot = state.slot % slots_per_eth1_voting_period;
|
if is_period_tail(state) {
|
||||||
let period_tail = slot >= slots_per_eth1_voting_period.integer_sqrt();
|
|
||||||
|
|
||||||
if period_tail {
|
|
||||||
all_eth1_data
|
all_eth1_data
|
||||||
.get(vote)
|
.get(vote)
|
||||||
.map(|block_number| (vote.clone(), *block_number))
|
.map(|block_number| (vote.clone(), *block_number))
|
||||||
@@ -437,6 +451,15 @@ fn collect_valid_votes<T: EthSpec>(
|
|||||||
valid_votes
|
valid_votes
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Indicates if the given `state` is in the tail of it's eth1 voting period (i.e., the later
|
||||||
|
/// slots).
|
||||||
|
fn is_period_tail<E: EthSpec>(state: &BeaconState<E>) -> bool {
|
||||||
|
let slots_per_eth1_voting_period = E::SlotsPerEth1VotingPeriod::to_u64();
|
||||||
|
let slot = state.slot % slots_per_eth1_voting_period;
|
||||||
|
|
||||||
|
slot >= slots_per_eth1_voting_period.integer_sqrt()
|
||||||
|
}
|
||||||
|
|
||||||
/// Selects the winning vote from `valid_votes`.
|
/// Selects the winning vote from `valid_votes`.
|
||||||
fn find_winning_vote(valid_votes: Eth1DataVoteCount) -> Option<Eth1Data> {
|
fn find_winning_vote(valid_votes: Eth1DataVoteCount) -> Option<Eth1Data> {
|
||||||
valid_votes
|
valid_votes
|
||||||
|
|||||||
Reference in New Issue
Block a user