Skip to content

Commit 648b64b

Browse files
committed
fix: sync P2P peers to RPC handler, hide peer IPs from logs
- Wire PeerConnected/Disconnected events to rpc_handler.add_peer/remove_peer - system_networkState and system_peers now show correct connected peer count - Remove IP addresses from PeerIdentified log messages (security)
1 parent 7010c17 commit 648b64b

File tree

1 file changed

+16
-24
lines changed

1 file changed

+16
-24
lines changed

bins/validator-node/src/main.rs

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -725,6 +725,7 @@ async fn main() -> Result<()> {
725725
let bans = Arc::new(RwLock::new(BanList::new()));
726726

727727
// Start RPC server (enabled by default)
728+
let mut rpc_handler_opt: Option<Arc<platform_rpc::RpcHandler>> = None;
728729
if !args.no_rpc {
729730
let rpc_addr: std::net::SocketAddr =
730731
args.rpc_addr.parse().expect("Invalid RPC address format");
@@ -821,6 +822,8 @@ async fn main() -> Result<()> {
821822
rpc_server.rpc_handler().set_route_handler(handler);
822823
}
823824

825+
rpc_handler_opt = Some(rpc_server.rpc_handler());
826+
824827
tokio::spawn(async move {
825828
if let Err(e) = rpc_server.run().await {
826829
error!("RPC server error: {}", e);
@@ -830,25 +833,6 @@ async fn main() -> Result<()> {
830833
info!("RPC server started on {}", args.rpc_addr);
831834
}
832835

833-
// Migrate: ensure all challenges use mechanism_id=0 (main mechanism)
834-
{
835-
let mut cs = chain_state.write();
836-
let mut migrated = 0u32;
837-
for (_id, cfg) in cs.wasm_challenge_configs.iter_mut() {
838-
if cfg.config.mechanism_id != 0 {
839-
info!(
840-
"Migrating challenge {} mechanism_id {} -> 0",
841-
cfg.name, cfg.config.mechanism_id
842-
);
843-
cfg.config.mechanism_id = 0;
844-
migrated += 1;
845-
}
846-
}
847-
if migrated > 0 {
848-
info!("Migrated {} challenges to mechanism_id=0", migrated);
849-
}
850-
}
851-
852836
// Reload WASM modules from persisted challenges on startup
853837
if let Some(ref executor) = wasm_executor {
854838
let challenges: Vec<(platform_core::ChallengeId, String)> = {
@@ -1024,6 +1008,7 @@ async fn main() -> Result<()> {
10241008
&challenge_last_sync,
10251009
&shared_llm_validators_json,
10261010
&shared_registered_hotkeys_json,
1011+
&rpc_handler_opt,
10271012
).await;
10281013
}
10291014

@@ -1994,6 +1979,7 @@ async fn handle_network_event(
19941979
challenge_last_sync: &Arc<RwLock<std::collections::HashMap<platform_core::ChallengeId, u64>>>,
19951980
shared_llm_validators_json: &Arc<parking_lot::RwLock<Vec<u8>>>,
19961981
shared_registered_hotkeys_json: &Arc<parking_lot::RwLock<Vec<u8>>>,
1982+
rpc_handler: &Option<Arc<platform_rpc::RpcHandler>>,
19971983
) {
19981984
match event {
19991985
NetworkEvent::Message { source, message } => match message {
@@ -3620,22 +3606,28 @@ async fn handle_network_event(
36203606
},
36213607
NetworkEvent::PeerConnected(peer_id) => {
36223608
info!("Peer connected: {}", peer_id);
3609+
if let Some(handler) = rpc_handler {
3610+
handler.add_peer(peer_id.to_string());
3611+
}
36233612
}
36243613
NetworkEvent::PeerDisconnected(peer_id) => {
36253614
info!("Peer disconnected: {}", peer_id);
3615+
if let Some(handler) = rpc_handler {
3616+
handler.remove_peer(&peer_id.to_string());
3617+
}
36263618
}
36273619
NetworkEvent::PeerIdentified {
36283620
peer_id,
36293621
hotkey,
36303622
addresses,
36313623
} => {
36323624
info!(
3633-
"Peer identified: {} with {} addresses",
3634-
peer_id,
3635-
addresses.len()
3625+
peer_id = %peer_id,
3626+
address_count = addresses.len(),
3627+
"Peer identified"
36363628
);
3637-
if let Some(hk) = hotkey {
3638-
debug!(" Hotkey: {:?}", hk);
3629+
if hotkey.is_some() {
3630+
debug!(peer_id = %peer_id, "Peer hotkey verified");
36393631
}
36403632
}
36413633
}

0 commit comments

Comments
 (0)