Skip to content

Multi-miner , Signer block rejection  #5132

Closed
@saralab

Description

Miner 2 proposes block #156

  • Signer 2 accepts: This wasn’t a confirmed block, needs to see lack of confirmation
  • Signer 1 accepts
  • Signer 0 rejects, because it saw burn block 134 before seeing the proposal
  • 3/8 signing power rejects so the block is not accepted

All miners see burn block #134

  • Miner 2 ends its tenure
  • Miner 0 starts its tenure

Miner 0 (correctly) builds from block 155 and proposes block #156 to the signers

This repeats forever

Discussion:

  • Timer needs reset, legit bug
  • Fix the Signer to see the lack of confirmation
  • In this case they shouldn’t accept the last block (Exception in thread Thread-1 & Caught Exception from bitcoind #156) as canonical until signature threshold is reached
  • Subscribe to the mined blocks , to update their internal state.
  • Signer could poll the node too
  • Will not necessarily add latency as a result , this is needed as a fallback for Signers
  • Integration test to split the Signer set to have different visibility of blocks
  • Safety check: If a block is seen as rejected, it should be always rejected

Miner doesn’t properly track whether a block rejection already came from a signer

  • In begin_sign_v0, gathered_signatures isn’t updated with rejections
  • Not the root cause, but needs improvement

Metadata

Assignees

Type

No type

Projects

  • Status

    Status: ✅ Done

Relationships

None yet

Development

No branches or pull requests

Issue actions