chore: add example for sending tx hashes (#14094)

This commit is contained in:
Matthias Seitz
2025-01-30 11:44:28 +01:00
committed by GitHub
parent 97278abe01
commit 277e9f6e1e
2 changed files with 23 additions and 9 deletions

View File

@ -171,3 +171,6 @@ pub use transactions::{FilterAnnouncement, MessageFilter, ValidateTx68};
/// re-export p2p interfaces
pub use reth_network_p2p as p2p;
/// re-export types crate
pub use reth_eth_wire_types as types;

View File

@ -14,8 +14,9 @@ use futures::StreamExt;
use reth_chainspec::DEV;
use reth_network::{
config::rng_secret_key, eth_requests::IncomingEthRequest, p2p::HeadersClient,
transactions::NetworkTransactionEvent, BlockDownloaderProvider, FetchClient, NetworkConfig,
NetworkEventListenerProvider, NetworkHandle, NetworkInfo, NetworkManager, Peers,
transactions::NetworkTransactionEvent, types::NewPooledTransactionHashes68,
BlockDownloaderProvider, FetchClient, NetworkConfig, NetworkEventListenerProvider,
NetworkHandle, NetworkInfo, NetworkManager, Peers,
};
#[tokio::main]
@ -67,7 +68,7 @@ async fn main() -> eyre::Result<()> {
let Some(eth_request) = eth_request else {break};
match eth_request {
IncomingEthRequest::GetBlockHeaders { peer_id, request, response } => {
println!("Received block headers request: {:?}, {:?}", peer_id, request);
println!("Received block headers request: {peer_id:?}, {request:?}");
response.send(Ok(vec![DEV.genesis_header().clone()].into())).unwrap();
}
IncomingEthRequest::GetBlockBodies { .. } => {}
@ -79,7 +80,9 @@ async fn main() -> eyre::Result<()> {
let Some(transaction_message) = transaction_message else {break};
match transaction_message {
NetworkTransactionEvent::IncomingTransactions { .. } => {}
NetworkTransactionEvent::IncomingPooledTransactionHashes{ .. } => {}
NetworkTransactionEvent::IncomingPooledTransactionHashes { peer_id, msg } => {
println!("Received incoming tx hashes broadcast: {peer_id:?}, {msg:?}");
}
NetworkTransactionEvent::GetPooledTransactions { .. } => {}
NetworkTransactionEvent::GetTransactionsHandle(_) => {}
}
@ -111,5 +114,13 @@ async fn run_peer(handle: NetworkHandle) -> eyre::Result<()> {
let header = client.get_header(0.into()).await.unwrap();
println!("Got header: {:?}", header);
// send a (bogus) hashes message
let hashes = NewPooledTransactionHashes68 {
types: vec![1],
sizes: vec![2],
hashes: vec![Default::default()],
};
peer.send_transactions_hashes(*handle.peer_id(), hashes.into());
Ok(())
}