@@ -422,58 +422,64 @@ impl BlockMinerThread {
422
422
423
423
if let Some ( mut new_block) = new_block {
424
424
Self :: fault_injection_block_broadcast_stall ( & new_block) ;
425
- let mut chain_state =
426
- neon_node:: open_chainstate_with_faults ( & self . config ) . map_err ( |e| {
427
- NakamotoNodeError :: SigningCoordinatorFailure ( format ! (
428
- "Failed to open chainstate DB. Cannot mine! {e:?}"
429
- ) )
430
- } ) ?;
431
- let signer_signature = match coordinator. propose_block (
432
- & mut new_block,
433
- & self . burn_block ,
434
- & self . burnchain ,
435
- & sortdb,
436
- & mut chain_state,
437
- stackerdbs,
438
- & self . globals . counters ,
439
- & self . burn_election_block . consensus_hash ,
440
- ) {
441
- Ok ( x) => x,
442
- Err ( e) => match e {
443
- NakamotoNodeError :: StacksTipChanged => {
444
- info ! ( "Stacks tip changed while waiting for signatures" ;
445
- "signer_sighash" => %new_block. header. signer_signature_hash( ) ,
446
- "block_height" => new_block. header. chain_length,
447
- "consensus_hash" => %new_block. header. consensus_hash,
448
- ) ;
449
- return Err ( e) ;
450
- }
451
- NakamotoNodeError :: BurnchainTipChanged => {
452
- info ! ( "Burnchain tip changed while waiting for signatures" ;
453
- "signer_sighash" => %new_block. header. signer_signature_hash( ) ,
454
- "block_height" => new_block. header. chain_length,
455
- "consensus_hash" => %new_block. header. consensus_hash,
456
- ) ;
457
- return Err ( e) ;
458
- }
459
- _ => {
460
- // Sleep for a bit to allow signers to catch up
461
- let pause_ms = if * last_block_rejected {
462
- self . config . miner . subsequent_rejection_pause_ms
463
- } else {
464
- self . config . miner . first_rejection_pause_ms
465
- } ;
466
-
467
- error ! ( "Error while gathering signatures: {e:?}. Will try mining again in {pause_ms}." ;
468
- "signer_sighash" => %new_block. header. signer_signature_hash( ) ,
469
- "block_height" => new_block. header. chain_length,
470
- "consensus_hash" => %new_block. header. consensus_hash,
471
- ) ;
472
- thread:: sleep ( Duration :: from_millis ( pause_ms) ) ;
473
- * last_block_rejected = true ;
474
- return Ok ( ( ) ) ;
475
- }
476
- } ,
425
+
426
+ let signer_signature = if self . config . get_node_config ( false ) . mock_mining {
427
+ // If we're mock mining, we don't actually propose the block.
428
+ Vec :: new ( )
429
+ } else {
430
+ let mut chain_state = neon_node:: open_chainstate_with_faults ( & self . config )
431
+ . map_err ( |e| {
432
+ NakamotoNodeError :: SigningCoordinatorFailure ( format ! (
433
+ "Failed to open chainstate DB. Cannot mine! {e:?}"
434
+ ) )
435
+ } ) ?;
436
+ match coordinator. propose_block (
437
+ & mut new_block,
438
+ & self . burn_block ,
439
+ & self . burnchain ,
440
+ & sortdb,
441
+ & mut chain_state,
442
+ stackerdbs,
443
+ & self . globals . counters ,
444
+ & self . burn_election_block . consensus_hash ,
445
+ ) {
446
+ Ok ( x) => x,
447
+ Err ( e) => match e {
448
+ NakamotoNodeError :: StacksTipChanged => {
449
+ info ! ( "Stacks tip changed while waiting for signatures" ;
450
+ "signer_sighash" => %new_block. header. signer_signature_hash( ) ,
451
+ "block_height" => new_block. header. chain_length,
452
+ "consensus_hash" => %new_block. header. consensus_hash,
453
+ ) ;
454
+ return Err ( e) ;
455
+ }
456
+ NakamotoNodeError :: BurnchainTipChanged => {
457
+ info ! ( "Burnchain tip changed while waiting for signatures" ;
458
+ "signer_sighash" => %new_block. header. signer_signature_hash( ) ,
459
+ "block_height" => new_block. header. chain_length,
460
+ "consensus_hash" => %new_block. header. consensus_hash,
461
+ ) ;
462
+ return Err ( e) ;
463
+ }
464
+ _ => {
465
+ // Sleep for a bit to allow signers to catch up
466
+ let pause_ms = if * last_block_rejected {
467
+ self . config . miner . subsequent_rejection_pause_ms
468
+ } else {
469
+ self . config . miner . first_rejection_pause_ms
470
+ } ;
471
+
472
+ error ! ( "Error while gathering signatures: {e:?}. Will try mining again in {pause_ms}." ;
473
+ "signer_sighash" => %new_block. header. signer_signature_hash( ) ,
474
+ "block_height" => new_block. header. chain_length,
475
+ "consensus_hash" => %new_block. header. consensus_hash,
476
+ ) ;
477
+ thread:: sleep ( Duration :: from_millis ( pause_ms) ) ;
478
+ * last_block_rejected = true ;
479
+ return Ok ( ( ) ) ;
480
+ }
481
+ } ,
482
+ }
477
483
} ;
478
484
* last_block_rejected = false ;
479
485
0 commit comments