Add EIP-7636 support (#6793)

* Add eip7636 support

* Add `version()` to the `lighthouse_version` crate and make the `enr.rs` file use it.

* Hardcode version, Add `client_name()`, remove unneeded flag.

* Make it use the new function.

* Make cargo fmt zip it
This commit is contained in:
JKinc
2025-01-21 00:24:14 +00:00
committed by GitHub
parent 7a0388ef2a
commit 33c1648022
3 changed files with 34 additions and 1 deletions

View File

@@ -116,7 +116,8 @@ pub struct Config {
pub network_load: u8,
/// Indicates if the user has set the network to be in private mode. Currently this
/// prevents sending client identifying information over identify.
/// prevents sending client identifying information over identify and prevents
/// EIP-7636 indentifiable information being provided in the ENR.
pub private: bool,
/// Shutdown beacon node after sync is completed.

View File

@@ -8,6 +8,7 @@ use crate::types::{Enr, EnrAttestationBitfield, EnrSyncCommitteeBitfield};
use crate::NetworkConfig;
use alloy_rlp::bytes::Bytes;
use libp2p::identity::Keypair;
use lighthouse_version::{client_name, version};
use slog::{debug, warn};
use ssz::{Decode, Encode};
use ssz_types::BitVector;
@@ -188,6 +189,11 @@ pub fn build_enr<E: EthSpec>(
builder.udp6(udp6_port.get());
}
// Add EIP 7636 client information
if !config.private {
builder.client_info(client_name().to_string(), version().to_string(), None);
}
// Add QUIC fields to the ENR.
// Since QUIC is used as an alternative transport for the libp2p protocols,
// the related fields should only be added when both QUIC and libp2p are enabled