From 1d2bb1f11d15ff628e20cd31bd3ddd0ec1f70503 Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Tue, 21 Feb 2023 15:26:09 +0100 Subject: [PATCH] chore: add eth68 to default capabilities (#1475) --- crates/net/eth-wire/src/builder.rs | 2 +- crates/net/eth-wire/src/hello.rs | 5 +++-- crates/net/eth-wire/src/types/status.rs | 7 +++---- crates/net/network/src/session/active.rs | 19 ++++++------------- crates/net/network/tests/it/session.rs | 2 +- 5 files changed, 14 insertions(+), 21 deletions(-) diff --git a/crates/net/eth-wire/src/builder.rs b/crates/net/eth-wire/src/builder.rs index 45e74adf48..23da3bce69 100644 --- a/crates/net/eth-wire/src/builder.rs +++ b/crates/net/eth-wire/src/builder.rs @@ -98,7 +98,7 @@ impl HelloBuilder { protocol_version: ProtocolVersion::V5, // TODO: proper client versioning client_version: "Ethereum/1.0.0".to_string(), - capabilities: vec![EthVersion::Eth67.into()], + capabilities: vec![EthVersion::Eth68.into()], // TODO: default port config port: 30303, id: pubkey, diff --git a/crates/net/eth-wire/src/hello.rs b/crates/net/eth-wire/src/hello.rs index ee9e99e2d5..f550b0a6a4 100644 --- a/crates/net/eth-wire/src/hello.rs +++ b/crates/net/eth-wire/src/hello.rs @@ -99,8 +99,9 @@ impl HelloMessageBuilder { HelloMessage { protocol_version: protocol_version.unwrap_or_default(), client_version: client_version.unwrap_or_else(|| DEFAULT_CLIENT_VERSION.to_string()), - capabilities: capabilities - .unwrap_or_else(|| vec![EthVersion::Eth67.into(), EthVersion::Eth66.into()]), + capabilities: capabilities.unwrap_or_else(|| { + vec![EthVersion::Eth68.into(), EthVersion::Eth67.into(), EthVersion::Eth66.into()] + }), port: port.unwrap_or(30303), id, } diff --git a/crates/net/eth-wire/src/types/status.rs b/crates/net/eth-wire/src/types/status.rs index 4b67d486eb..63cb0f8f0d 100644 --- a/crates/net/eth-wire/src/types/status.rs +++ b/crates/net/eth-wire/src/types/status.rs @@ -50,7 +50,7 @@ impl From for Status { let chainspec = ChainSpec::from(genesis); Status { - version: EthVersion::Eth67 as u8, + version: EthVersion::Eth68 as u8, chain: Chain::Id(chain), total_difficulty, blockhash: chainspec.genesis_hash(), @@ -133,7 +133,7 @@ impl Default for Status { fn default() -> Self { let mainnet_genesis = MAINNET.genesis_hash(); Status { - version: EthVersion::Eth67 as u8, + version: EthVersion::Eth68 as u8, chain: Chain::Named(ethers_core::types::Chain::Mainnet), total_difficulty: U256::from(17_179_869_184u64), blockhash: mainnet_genesis, @@ -147,6 +147,7 @@ impl Default for Status { #[cfg(test)] mod tests { + use crate::types::{EthVersion, Status}; use ethers_core::types::Chain as NamedChain; use hex_literal::hex; use rand::Rng; @@ -156,8 +157,6 @@ mod tests { use reth_rlp::{Decodable, Encodable}; use std::str::FromStr; - use crate::types::{EthVersion, Status}; - #[test] fn encode_eth_status_message() { let expected = hex!("f85643018a07aac59dabcdd74bc567a0feb27336ca7923f8fab3bd617fcb6e75841538f71c1bcfc267d7838489d9e13da0d4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3c684b715077d80"); diff --git a/crates/net/network/src/session/active.rs b/crates/net/network/src/session/active.rs index 8d58d7750f..5d267b3dbe 100644 --- a/crates/net/network/src/session/active.rs +++ b/crates/net/network/src/session/active.rs @@ -719,8 +719,7 @@ mod tests { }; use reth_ecies::util::pk2id; use reth_eth_wire::{ - EthVersion, GetBlockBodies, HelloMessage, ProtocolVersion, Status, StatusBuilder, - UnauthedEthStream, UnauthedP2PStream, + GetBlockBodies, HelloMessage, Status, StatusBuilder, UnauthedEthStream, UnauthedP2PStream, }; use reth_net_common::bandwidth_meter::BandwidthMeter; use reth_primitives::{ForkFilter, Hardfork, MAINNET}; @@ -730,13 +729,7 @@ mod tests { /// Returns a testing `HelloMessage` and new secretkey fn eth_hello(server_key: &SecretKey) -> HelloMessage { - HelloMessage { - protocol_version: ProtocolVersion::V5, - client_version: "reth/1.0.0".to_string(), - capabilities: vec![EthVersion::Eth67.into()], - port: 30303, - id: pk2id(&server_key.public_key(SECP256K1)), - } + HelloMessage::builder(pk2id(&server_key.public_key(SECP256K1))).build() } struct SessionBuilder { @@ -852,8 +845,8 @@ mod tests { protocol_breach_request_timeout: PROTOCOL_BREACH_REQUEST_TIMEOUT, } } - _ => { - panic!("unexpected message") + ev => { + panic!("unexpected message {ev:?}") } } } @@ -1048,7 +1041,7 @@ mod tests { let fut = builder.with_client_stream(local_addr, move |mut client_stream| async move { client_stream - .send(EthMessage::NewPooledTransactionHashes66(Vec::new().into())) + .send(EthMessage::NewPooledTransactionHashes68(Default::default())) .await .unwrap(); let _ = tokio::time::timeout(Duration::from_secs(100), client_stream.next()).await; @@ -1081,7 +1074,7 @@ mod tests { let message = builder.active_session_rx.next().await.unwrap(); match message { ActiveSessionMessage::ProtocolBreach { .. } => {} - _ => unreachable!(), + ev => unreachable!("{ev:?}"), } } diff --git a/crates/net/network/tests/it/session.rs b/crates/net/network/tests/it/session.rs index 32c3408bbc..12cf62a82c 100644 --- a/crates/net/network/tests/it/session.rs +++ b/crates/net/network/tests/it/session.rs @@ -33,7 +33,7 @@ async fn test_session_established_with_highest_version() { } NetworkEvent::SessionEstablished { peer_id, status, .. } => { assert_eq!(handle1.peer_id(), &peer_id); - assert_eq!(status.version, EthVersion::Eth67 as u8); + assert_eq!(status.version, EthVersion::Eth68 as u8); } ev => { panic!("unexpected event {ev:?}")