@@ -506,6 +506,7 @@ def create_simple_node(self):
506506 connect_nodes (self .nodes [i ], idx )
507507
508508 def prepare_masternodes (self ):
509+ self .log .info ("Preparing %d masternodes" % self .mn_count )
509510 for idx in range (0 , self .mn_count ):
510511 self .prepare_masternode (idx )
511512
@@ -541,6 +542,8 @@ def prepare_masternode(self, idx):
541542 self .mninfo .append (MasternodeInfo (proTxHash , ownerAddr , votingAddr , bls ['public' ], bls ['secret' ], address , txid , collateral_vout ))
542543 self .sync_all ()
543544
545+ self .log .info ("Prepared masternode %d: collateral_txid=%s, collateral_vout=%d, protxHash=%s" % (idx , txid , collateral_vout , proTxHash ))
546+
544547 def remove_mastermode (self , idx ):
545548 mn = self .mninfo [idx ]
546549 rawtx = self .nodes [0 ].createrawtransaction ([{"txid" : mn .collateral_txid , "vout" : mn .collateral_vout }], {self .nodes [0 ].getnewaddress (): 999.9999 })
@@ -550,6 +553,8 @@ def remove_mastermode(self, idx):
550553 self .sync_all ()
551554 self .mninfo .remove (mn )
552555
556+ self .log .info ("Removed masternode %d" , idx )
557+
553558 def prepare_datadirs (self ):
554559 # stop faucet node so that we can copy the datadir
555560 self .stop_node (0 )
@@ -562,6 +567,8 @@ def prepare_datadirs(self):
562567 self .start_node (0 )
563568
564569 def start_masternodes (self ):
570+ self .log .info ("Starting %d masternodes" , self .mn_count )
571+
565572 start_idx = len (self .nodes )
566573
567574 self .add_nodes (self .mn_count )
@@ -604,20 +611,22 @@ def do_connect(idx):
604611 executor .shutdown ()
605612
606613 def setup_network (self ):
607- # create faucet node for collateral and transactions
614+ self . log . info ( "Creating and starting controller node" )
608615 self .add_nodes (1 , extra_args = [self .extra_args ])
609616 self .start_node (0 )
610617 required_balance = MASTERNODE_COLLATERAL * self .mn_count + 1
618+ self .log .info ("Generating %d coins" % required_balance )
611619 while self .nodes [0 ].getbalance () < required_balance :
612620 self .bump_mocktime (1 )
613621 set_node_times (self .nodes , self .mocktime )
614622 self .nodes [0 ].generate (1 )
615- # create connected simple nodes
616- for i in range (0 , self .num_nodes - self .mn_count - 1 ):
623+ num_simple_nodes = self .num_nodes - self .mn_count - 1
624+ self .log .info ("Creating and starting %s simple nodes" , num_simple_nodes )
625+ for i in range (0 , num_simple_nodes ):
617626 self .create_simple_node ()
618627 sync_masternodes (self .nodes , True )
619628
620- # activate DIP3
629+ self . log . info ( "Activating DIP3" )
621630 if not self .fast_dip3_enforcement :
622631 while self .nodes [0 ].getblockcount () < 500 :
623632 self .nodes [0 ].generate (10 )
@@ -756,6 +765,10 @@ def check_dkg_comitments():
756765 wait_until (check_dkg_comitments , timeout = timeout , sleep = 0.1 )
757766
758767 def mine_quorum (self , expected_contributions = 5 , expected_complaints = 0 , expected_justifications = 0 , expected_commitments = 5 ):
768+ self .log .info ("Mining quorum: expected_contributions=%d, expected_complaints=%d, expected_justifications=%d, "
769+ "expected_commitments=%d" % (expected_contributions , expected_complaints ,
770+ expected_justifications , expected_commitments ))
771+
759772 quorums = self .nodes [0 ].quorum ("list" )
760773
761774 # move forward to next DKG
@@ -766,7 +779,7 @@ def mine_quorum(self, expected_contributions=5, expected_complaints=0, expected_
766779 self .nodes [0 ].generate (skip_count )
767780 sync_blocks (self .nodes )
768781
769- # Make sure all reached phase 1 (init)
782+ self . log . info ( "Waiting for phase 1 (init)" )
770783 self .wait_for_quorum_phase (1 , None , 0 )
771784 # Give nodes some time to connect to neighbors
772785 time .sleep (2 )
@@ -775,41 +788,41 @@ def mine_quorum(self, expected_contributions=5, expected_complaints=0, expected_
775788 self .nodes [0 ].generate (2 )
776789 sync_blocks (self .nodes )
777790
778- # Make sure all reached phase 2 (contribute) and received all contributions
791+ self . log . info ( "Waiting for phase 2 (contribute)" )
779792 self .wait_for_quorum_phase (2 , "receivedContributions" , expected_contributions )
780793 self .bump_mocktime (1 )
781794 set_node_times (self .nodes , self .mocktime )
782795 self .nodes [0 ].generate (2 )
783796 sync_blocks (self .nodes )
784797
785- # Make sure all reached phase 3 (complain) and received all complaints
798+ self . log . info ( "Waiting for phase 3 (complain)" )
786799 self .wait_for_quorum_phase (3 , "receivedComplaints" , expected_complaints )
787800 self .bump_mocktime (1 )
788801 set_node_times (self .nodes , self .mocktime )
789802 self .nodes [0 ].generate (2 )
790803 sync_blocks (self .nodes )
791804
792- # Make sure all reached phase 4 (justify)
805+ self . log . info ( "Waiting for phase 4 (justify)" )
793806 self .wait_for_quorum_phase (4 , "receivedJustifications" , expected_justifications )
794807 self .bump_mocktime (1 )
795808 set_node_times (self .nodes , self .mocktime )
796809 self .nodes [0 ].generate (2 )
797810 sync_blocks (self .nodes )
798811
799- # Make sure all reached phase 5 (commit)
812+ self . log . info ( "Waiting for phase 5 (commit)" )
800813 self .wait_for_quorum_phase (5 , "receivedPrematureCommitments" , expected_commitments )
801814 self .bump_mocktime (1 )
802815 set_node_times (self .nodes , self .mocktime )
803816 self .nodes [0 ].generate (2 )
804817 sync_blocks (self .nodes )
805818
806- # Make sure all reached phase 6 (mining)
819+ self . log . info ( "Waiting for phase 6 (mining)" )
807820 self .wait_for_quorum_phase (6 , None , 0 )
808821
809- # Wait for final commitment
822+ self . log . info ( "Waiting final commitment" )
810823 self .wait_for_quorum_commitment ()
811824
812- # mine the final commitment
825+ self . log . info ( "Mining final commitment" )
813826 self .bump_mocktime (1 )
814827 set_node_times (self .nodes , self .mocktime )
815828 self .nodes [0 ].generate (1 )
@@ -820,12 +833,15 @@ def mine_quorum(self, expected_contributions=5, expected_complaints=0, expected_
820833 self .nodes [0 ].generate (1 )
821834 sync_blocks (self .nodes )
822835 new_quorum = self .nodes [0 ].quorum ("list" , 1 )["llmq_5_60" ][0 ]
836+ quorum_info = self .nodes [0 ].quorum ("info" , 100 , new_quorum )
823837
824838 # Mine 8 (SIGN_HEIGHT_OFFSET) more blocks to make sure that the new quorum gets eligable for signing sessions
825839 self .nodes [0 ].generate (8 )
826840
827841 sync_blocks (self .nodes )
828842
843+ self .log .info ("New quorum: height=%d, quorumHash=%s, minedBlock=%s" % (quorum_info ["height" ], new_quorum , quorum_info ["minedBlock" ]))
844+
829845 return new_quorum
830846
831847class ComparisonTestFramework (BitcoinTestFramework ):
0 commit comments