@@ -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