@@ -23,7 +23,7 @@ use ccore::{
2323 ImportError , StateInfo , UnverifiedTransaction ,
2424} ;
2525use cdb:: AsHashDB ;
26- use cnetwork:: { Api , EventSender , NetworkExtension , NodeId } ;
26+ use cnetwork:: { Api , EventSender , IntoSocketAddr , NetworkExtension , NodeId } ;
2727use codechain_crypto:: BLAKE_NULL_RLP ;
2828use cstate:: { FindActionHandler , TopLevelState , TopStateView } ;
2929use ctimer:: TimerToken ;
@@ -41,6 +41,7 @@ use std::collections::hash_map::Entry;
4141use std:: collections:: { HashMap , HashSet } ;
4242use std:: fs;
4343use std:: mem:: discriminant;
44+ use std:: net:: SocketAddr ;
4445use std:: sync:: Arc ;
4546use std:: time:: Duration ;
4647use token_generator:: TokenGenerator ;
@@ -655,6 +656,16 @@ impl NetworkExtension<Event> for Extension {
655656 channel. send ( * peer) . unwrap ( ) ;
656657 }
657658 }
659+ Event :: GetPeerBestBlockHashes ( channel) => {
660+ for ( node_id, header_downloader) in self . header_downloaders . iter ( ) {
661+ channel. send ( ( SocketAddr :: from ( node_id. into_addr ( ) ) , header_downloader. best_hash ( ) ) ) . unwrap ( ) ;
662+ }
663+ }
664+ Event :: GetTargetBlockHashes ( channel) => {
665+ for target in self . body_downloader . get_target_hashes ( ) {
666+ channel. send ( target) . unwrap ( ) ;
667+ }
668+ }
658669 Event :: NewHeaders {
659670 imported,
660671 enacted,
@@ -673,6 +684,8 @@ impl NetworkExtension<Event> for Extension {
673684
674685pub enum Event {
675686 GetPeers ( EventSender < NodeId > ) ,
687+ GetPeerBestBlockHashes ( EventSender < ( SocketAddr , BlockHash ) > ) ,
688+ GetTargetBlockHashes ( EventSender < BlockHash > ) ,
676689 NewHeaders {
677690 imported : Vec < BlockHash > ,
678691 enacted : Vec < BlockHash > ,
0 commit comments