Fix Schlesi-splitting penalty bug (#1166)

* Fix Schlesi-splitting penalty bug
* Print correct spec version in lcli
This commit is contained in:
Michael Sproul
2020-05-19 13:49:23 +10:00
committed by GitHub
parent 309cd95b2c
commit ddd63c0de1
5 changed files with 20 additions and 4 deletions

View File

@@ -225,7 +225,9 @@ fn get_attestation_delta<T: EthSpec>(
delta.penalize(spec.base_rewards_per_epoch.safe_mul(base_reward)?)?;
// Additionally, all validators whose FFG target didn't match are penalized extra
if !validator.is_previous_epoch_target_attester {
// This condition is equivalent to this condition from the spec:
// `index not in get_unslashed_attesting_indices(state, matching_target_attestations)`
if validator.is_slashed || !validator.is_previous_epoch_target_attester {
delta.penalize(
validator
.current_epoch_effective_balance

View File

@@ -56,6 +56,8 @@ pub trait EthSpec: 'static + Default + Sync + Send + Clone + Debug + PartialEq {
fn default_spec() -> ChainSpec;
fn spec_name() -> &'static str;
fn genesis_epoch() -> Epoch {
Epoch::new(Self::GenesisEpoch::to_u64())
}
@@ -159,6 +161,10 @@ impl EthSpec for MainnetEthSpec {
fn default_spec() -> ChainSpec {
ChainSpec::mainnet()
}
fn spec_name() -> &'static str {
"mainnet"
}
}
pub type FoundationBeaconState = BeaconState<MainnetEthSpec>;
@@ -196,6 +202,10 @@ impl EthSpec for MinimalEthSpec {
fn default_spec() -> ChainSpec {
ChainSpec::minimal()
}
fn spec_name() -> &'static str {
"minimal"
}
}
pub type MinimalBeaconState = BeaconState<MinimalEthSpec>;
@@ -231,6 +241,10 @@ impl EthSpec for InteropEthSpec {
fn default_spec() -> ChainSpec {
ChainSpec::interop()
}
fn spec_name() -> &'static str {
"interop"
}
}
pub type InteropBeaconState = BeaconState<InteropEthSpec>;