Altair consensus changes and refactors (#2279)

## Proposed Changes

Implement the consensus changes necessary for the upcoming Altair hard fork.

## Additional Info

This is quite a heavy refactor, with pivotal types like the `BeaconState` and `BeaconBlock` changing from structs to enums. This ripples through the whole codebase with field accesses changing to methods, e.g. `state.slot` => `state.slot()`.


Co-authored-by: realbigsean <seananderson33@gmail.com>
This commit is contained in:
Michael Sproul
2021-07-09 06:15:32 +00:00
parent 89361573d4
commit b4689e20c6
271 changed files with 9652 additions and 8444 deletions

View File

@@ -16,7 +16,7 @@ use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4};
use std::path::PathBuf;
use std::sync::{Arc, Weak};
use tokio::runtime::Runtime;
use types::{ChainSpec, EthSpec, YamlConfig};
use types::{ChainSpec, ConfigAndPreset, EthSpec};
use validator_dir::Builder as ValidatorDirBuilder;
use warp::{
http::{
@@ -191,9 +191,9 @@ pub fn serve<T: 'static + SlotClock + Clone, E: EthSpec>(
.and(signer.clone())
.and_then(|spec: Arc<_>, signer| {
blocking_signed_json_task(signer, move || {
Ok(api_types::GenericResponse::from(
YamlConfig::from_spec::<E>(&spec),
))
let mut config = ConfigAndPreset::from_chain_spec::<E>(&spec);
config.make_backwards_compat(&spec);
Ok(api_types::GenericResponse::from(config))
})
});

View File

@@ -150,7 +150,8 @@ impl ApiTester {
pub async fn test_get_lighthouse_spec(self) -> Self {
let result = self.client.get_lighthouse_spec().await.unwrap().data;
let expected = YamlConfig::from_spec::<E>(&E::default_spec());
let mut expected = ConfigAndPreset::from_chain_spec::<E>(&E::default_spec());
expected.make_backwards_compat(&E::default_spec());
assert_eq!(result, expected);