mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-06 10:11:44 +00:00
Altair networking (#2300)
## Issue Addressed Resolves #2278 ## Proposed Changes Implements the networking components for the Altair hard fork https://github.com/ethereum/eth2.0-specs/blob/dev/specs/altair/p2p-interface.md ## Additional Info This PR acts as the base branch for networking changes and tracks https://github.com/sigp/lighthouse/pull/2279 . Changes to gossip, rpc and discovery can be separate PRs to be merged here for ease of review. Co-authored-by: realbigsean <seananderson33@gmail.com>
This commit is contained in:
@@ -1380,23 +1380,27 @@ pub fn serve<T: BeaconChainTypes>(
|
||||
let enr = network_globals.local_enr();
|
||||
let p2p_addresses = enr.multiaddr_p2p_tcp();
|
||||
let discovery_addresses = enr.multiaddr_p2p_udp();
|
||||
let meta_data = network_globals.local_metadata.read();
|
||||
Ok(api_types::GenericResponse::from(api_types::IdentityData {
|
||||
peer_id: network_globals.local_peer_id().to_base58(),
|
||||
enr,
|
||||
p2p_addresses,
|
||||
discovery_addresses,
|
||||
metadata: api_types::MetaData {
|
||||
seq_number: network_globals.local_metadata.read().seq_number,
|
||||
seq_number: *meta_data.seq_number(),
|
||||
attnets: format!(
|
||||
"0x{}",
|
||||
hex::encode(meta_data.attnets().clone().into_bytes()),
|
||||
),
|
||||
syncnets: format!(
|
||||
"0x{}",
|
||||
hex::encode(
|
||||
network_globals
|
||||
.local_metadata
|
||||
.read()
|
||||
.attnets
|
||||
.clone()
|
||||
meta_data
|
||||
.syncnets()
|
||||
.map(|x| x.clone())
|
||||
.unwrap_or_default()
|
||||
.into_bytes()
|
||||
),
|
||||
)
|
||||
),
|
||||
},
|
||||
}))
|
||||
@@ -1896,7 +1900,7 @@ pub fn serve<T: BeaconChainTypes>(
|
||||
|
||||
publish_network_message(
|
||||
&network_tx,
|
||||
NetworkMessage::Subscribe {
|
||||
NetworkMessage::AttestationSubscribe {
|
||||
subscriptions: vec![subscription],
|
||||
},
|
||||
)?;
|
||||
|
||||
@@ -11,8 +11,8 @@ use eth2::StatusCode;
|
||||
use eth2::{types::*, BeaconNodeHttpClient, Timeouts};
|
||||
use eth2_libp2p::discv5::enr::{CombinedKey, EnrBuilder};
|
||||
use eth2_libp2p::{
|
||||
rpc::methods::MetaData,
|
||||
types::{EnrBitfield, SyncState},
|
||||
rpc::methods::{MetaData, MetaDataV2},
|
||||
types::{EnrAttestationBitfield, EnrSyncCommitteeBitfield, SyncState},
|
||||
Enr, EnrExt, NetworkGlobals, PeerId,
|
||||
};
|
||||
use futures::stream::{Stream, StreamExt};
|
||||
@@ -162,10 +162,11 @@ impl ApiTester {
|
||||
let log = null_logger().unwrap();
|
||||
|
||||
// Default metadata
|
||||
let meta_data = MetaData {
|
||||
let meta_data = MetaData::V2(MetaDataV2 {
|
||||
seq_number: SEQ_NUMBER,
|
||||
attnets: EnrBitfield::<MainnetEthSpec>::default(),
|
||||
};
|
||||
attnets: EnrAttestationBitfield::<MainnetEthSpec>::default(),
|
||||
syncnets: EnrSyncCommitteeBitfield::<MainnetEthSpec>::default(),
|
||||
});
|
||||
let enr_key = CombinedKey::generate_secp256k1();
|
||||
let enr = EnrBuilder::new("v4").build(&enr_key).unwrap();
|
||||
let enr_clone = enr.clone();
|
||||
@@ -277,10 +278,11 @@ impl ApiTester {
|
||||
let log = null_logger().unwrap();
|
||||
|
||||
// Default metadata
|
||||
let meta_data = MetaData {
|
||||
let meta_data = MetaData::V2(MetaDataV2 {
|
||||
seq_number: SEQ_NUMBER,
|
||||
attnets: EnrBitfield::<MainnetEthSpec>::default(),
|
||||
};
|
||||
attnets: EnrAttestationBitfield::<MainnetEthSpec>::default(),
|
||||
syncnets: EnrSyncCommitteeBitfield::<MainnetEthSpec>::default(),
|
||||
});
|
||||
let enr_key = CombinedKey::generate_secp256k1();
|
||||
let enr = EnrBuilder::new("v4").build(&enr_key).unwrap();
|
||||
let enr_clone = enr.clone();
|
||||
@@ -1338,6 +1340,7 @@ impl ApiTester {
|
||||
metadata: eth2::types::MetaData {
|
||||
seq_number: 0,
|
||||
attnets: "0x0000000000000000".to_string(),
|
||||
syncnets: "0x00".to_string(),
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user