Skip to content

Commit e04ed18

Browse files
author
Jonas Bostoen
committed
feat: extend SentryMessage with remote peer address
1 parent c5e9453 commit e04ed18

File tree

2 files changed

+21
-9
lines changed

2 files changed

+21
-9
lines changed

examples/main.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,18 @@ async fn main() {
2020
tokio::task::spawn(svc.start());
2121

2222
while let Some(event) = events.next().await {
23-
if let PubsubMessage::BeaconBlock(block) = event {
23+
if let PubsubMessage::BeaconBlock(block) = event.message {
2424
info!(slot = %block.slot(), hash = ?block.canonical_root(), "Received block");
25+
let block_number = block
26+
.message()
27+
.execution_payload()
28+
.unwrap()
29+
.execution_payload
30+
.block_number;
31+
2532
println!(
26-
"Received block: {:?}",
27-
block
28-
.message()
29-
.execution_payload()
30-
.unwrap()
31-
.execution_payload
33+
"Received block {} (source peer: {:?}",
34+
block_number, event.peer_id
3235
)
3336
}
3437

src/service.rs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use std::collections::VecDeque;
2+
use std::net::SocketAddr;
23
use std::str::FromStr;
34
use std::sync::Arc;
45

@@ -23,6 +24,7 @@ use crate::{NetworkConfig, NetworkEvent};
2324
#[derive(Debug, Clone)]
2425
pub struct SentryMessage {
2526
pub peer_id: PeerId,
27+
pub remote_addr: Option<SocketAddr>,
2628
pub message: PubsubMessage<MainnetEthSpec>,
2729
}
2830

@@ -100,7 +102,7 @@ impl Service {
100102
UnboundedReceiverStream::new(rx)
101103
}
102104

103-
pub async fn start(mut self) {
105+
pub async fn start(mut self) -> ! {
104106
// Create the inner `NetworkConfig`
105107
let network_config = NetworkConfig {
106108
libp2p_port: self.cfg.libp2p_port,
@@ -219,8 +221,15 @@ impl Service {
219221
}
220222

221223
if let Some(tx) = &self.events_tx {
224+
let remote_addr = if let Some(info) = globals.peers.read().peer_info(&source) {
225+
info.seen_addresses().cloned().next()
226+
} else {
227+
None
228+
};
229+
println!("Received message from peer: {:?}, {:?}", source, remote_addr);
230+
222231
// Ignore errors if the receiver has been dropped
223-
let _ = tx.send(SentryMessage { peer_id: source, message });
232+
let _ = tx.send(SentryMessage { peer_id: source, remote_addr, message });
224233
}
225234
}
226235
NetworkEvent::RequestReceived {

0 commit comments

Comments
 (0)