@@ -20,6 +20,7 @@ use grin_core::pow::Difficulty;
20
20
use grin_core:: { genesis, global} ;
21
21
use grin_p2p as p2p;
22
22
use grin_servers:: { resolve_dns_to_addrs, MAINNET_DNS_SEEDS , TESTNET_DNS_SEEDS } ;
23
+ use std:: fs;
23
24
use std:: net:: { SocketAddr , TcpStream } ;
24
25
use std:: time:: Duration ;
25
26
@@ -100,6 +101,14 @@ pub fn check_seeds(is_testnet: bool) -> Vec<SeedCheckResult> {
100
101
global:: set_local_chain_type ( global:: ChainTypes :: Testnet ) ;
101
102
}
102
103
104
+ let config = p2p:: types:: P2PConfig :: default ( ) ;
105
+ let adapter = Arc :: new ( p2p:: DummyAdapter { } ) ;
106
+ let peers = Arc :: new ( p2p:: Peers :: new (
107
+ p2p:: store:: PeerStore :: new ( ".__grintmp__/peer_store_root" ) . unwrap ( ) ,
108
+ adapter,
109
+ config. clone ( ) ,
110
+ ) ) ;
111
+
103
112
for s in default_seeds. iter ( ) {
104
113
info ! ( "Checking seed health for {}" , s) ;
105
114
let mut seed_result = SeedCheckResult :: default ( ) ;
@@ -113,7 +122,7 @@ pub fn check_seeds(is_testnet: bool) -> Vec<SeedCheckResult> {
113
122
seed_result. dns_resolutions_found = true ;
114
123
// Check backwards, last contains the latest (at least on my machine!)
115
124
for r in resolved_dns_entries. iter ( ) . rev ( ) {
116
- let res = check_seed_health ( * r, is_testnet) ;
125
+ let res = check_seed_health ( * r, is_testnet, & peers ) ;
117
126
if let Ok ( p) = res {
118
127
info ! (
119
128
"SUCCESS - Performed Handshake with seed for {} at {}. {} - {:?}" ,
@@ -150,18 +159,20 @@ pub fn check_seeds(is_testnet: bool) -> Vec<SeedCheckResult> {
150
159
151
160
result. push ( seed_result) ;
152
161
}
162
+
163
+ // Clean up temporary files
164
+ fs:: remove_dir_all ( ".__grintmp__" ) . expect ( "Unable to delete temporary files" ) ;
165
+
153
166
result
154
167
}
155
168
156
- fn check_seed_health ( addr : p2p:: PeerAddr , is_testnet : bool ) -> Result < p2p:: Peer , SeedCheckError > {
157
- let capabilities = p2p:: types:: Capabilities :: default ( ) ;
169
+ fn check_seed_health (
170
+ addr : p2p:: PeerAddr ,
171
+ is_testnet : bool ,
172
+ peers : & Arc < p2p:: Peers > ,
173
+ ) -> Result < p2p:: Peer , SeedCheckError > {
158
174
let config = p2p:: types:: P2PConfig :: default ( ) ;
159
- let adapter = Arc :: new ( p2p:: DummyAdapter { } ) ;
160
- let peers = Arc :: new ( p2p:: Peers :: new (
161
- p2p:: store:: PeerStore :: new ( "peer_store_root" ) ?,
162
- adapter,
163
- config. clone ( ) ,
164
- ) ) ;
175
+ let capabilities = p2p:: types:: Capabilities :: default ( ) ;
165
176
let genesis_hash = match is_testnet {
166
177
true => genesis:: genesis_test ( ) . hash ( ) ,
167
178
false => genesis:: genesis_main ( ) . hash ( ) ,
@@ -180,7 +191,7 @@ fn check_seed_health(addr: p2p::PeerAddr, is_testnet: bool) -> Result<p2p::Peer,
180
191
total_diff,
181
192
p2p:: PeerAddr ( addr) ,
182
193
& handshake,
183
- peers,
194
+ peers. clone ( ) ,
184
195
) ?;
185
196
Ok ( peer)
186
197
}
0 commit comments