@@ -59,7 +59,7 @@ def sync_mempools(rpc_connections):
59
59
time .sleep (1 )
60
60
61
61
62
- bitcoind_processes = []
62
+ bitcoind_processes = {}
63
63
64
64
def initialize_datadir (dir , n ):
65
65
datadir = os .path .join (dir , "node" + str (n ))
@@ -88,7 +88,7 @@ def initialize_chain(test_dir):
88
88
args = [ "bitcoind" , "-keypool=1" , "-datadir=" + datadir ]
89
89
if i > 0 :
90
90
args .append ("-connect=127.0.0.1:" + str (p2p_port (0 )))
91
- bitcoind_processes . append ( subprocess .Popen (args ) )
91
+ bitcoind_processes [ i ] = subprocess .Popen (args )
92
92
subprocess .check_call ([ "bitcoin-cli" , "-datadir=" + datadir ,
93
93
"-rpcwait" , "getblockcount" ], stdout = devnull )
94
94
devnull .close ()
@@ -149,7 +149,7 @@ def start_node(i, dir, extra_args=None, rpchost=None):
149
149
datadir = os .path .join (dir , "node" + str (i ))
150
150
args = [ "bitcoind" , "-datadir=" + datadir , "-keypool=1" ]
151
151
if extra_args is not None : args .extend (extra_args )
152
- bitcoind_processes . append ( subprocess .Popen (args ) )
152
+ bitcoind_processes [ i ] = subprocess .Popen (args )
153
153
devnull = open ("/dev/null" , "w+" )
154
154
subprocess .check_call ([ "bitcoin-cli" , "-datadir=" + datadir ] +
155
155
_rpchost_to_args (rpchost ) +
@@ -168,16 +168,21 @@ def start_nodes(num_nodes, dir, extra_args=None, rpchost=None):
168
168
def debug_log (dir , n_node ):
169
169
return os .path .join (dir , "node" + str (n_node ), "regtest" , "debug.log" )
170
170
171
+ def stop_node (node , i ):
172
+ node .stop ()
173
+ bitcoind_processes [i ].wait ()
174
+ del bitcoind_processes [i ]
175
+
171
176
def stop_nodes (nodes ):
172
177
for i in range (len (nodes )):
173
178
nodes [i ].stop ()
174
179
del nodes [:] # Emptying array closes connections as a side effect
175
180
176
181
def wait_bitcoinds ():
177
182
# Wait for all bitcoinds to cleanly exit
178
- for bitcoind in bitcoind_processes :
183
+ for bitcoind in bitcoind_processes . values () :
179
184
bitcoind .wait ()
180
- del bitcoind_processes [:]
185
+ bitcoind_processes . clear ()
181
186
182
187
def connect_nodes (from_connection , node_num ):
183
188
ip_port = "127.0.0.1:" + str (p2p_port (node_num ))
0 commit comments