The signer module should become signer_v1. A new signer_v0 module should be created that has an analogous Signer struct. This Signer struct’s main point of entry should be process_event, much like the current Signer struct. It will need to handle MinerMessages, BlockValidationResponse, StatusCheck, and NewBurnBlock.
With the first version, to get to parity with signer_v1, signer_v0::Signer only needs to read miner messages for block proposals, submit the proposal to the validation endpoint, and broadcast a signature over StackerDB.
This will require some refactoring of the message code in libsigner (to support the new “block signature” message), as well as a routine for performing the signature (this should be roughly identical to the code the miner uses to sign a block).
stacks-signer
The
signer
module should becomesigner_v1
. A newsigner_v0
module should be created that has an analogousSigner
struct. ThisSigner
struct’s main point of entry should beprocess_event
, much like the currentSigner
struct. It will need to handleMinerMessages
,BlockValidationResponse
,StatusCheck
, andNewBurnBlock
.With the first version, to get to parity with
signer_v1
,signer_v0::Signer
only needs to read miner messages for block proposals, submit the proposal to the validation endpoint, and broadcast a signature over StackerDB.This will require some refactoring of the message code in
libsigner
(to support the new “block signature” message), as well as a routine for performing the signature (this should be roughly identical to the code the miner uses to sign a block).