Skip to content

Commit 66287db

Browse files
committed
CRC: do not default to the local supported version unless it does not support global consensus
Signed-off-by: Jacinta Ferrant <[email protected]>
1 parent bcf5e62 commit 66287db

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

stacks-signer/src/v0/signer.rs

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -723,15 +723,26 @@ impl Signer {
723723
self.global_state_evaluator
724724
.insert_update(self.stacks_address, update);
725725
};
726-
let latest_version = self
727-
.global_state_evaluator
728-
.determine_latest_supported_signer_protocol_version()
729-
.unwrap_or_else(|| {
726+
let Some(latest_version) = self
727+
.global_state_evaluator
728+
.determine_latest_supported_signer_protocol_version()
729+
.or_else(|| {
730+
// Don't default if we are in a global consensus activation state as its pointless
731+
if SortitionStateVersion::from_protocol_version(local_version).uses_global_state() {
732+
None
733+
} else {
734+
warn!("{self}: No consensus on signer protocol version. Defaulting to local state version: {local_version}.");
735+
Some(local_version)
736+
}
737+
})
738+
else {
730739
warn!(
731-
"{self}: No consensus on signer protocol version. Defaulting to local supported version: {local_version}"
740+
"{self}: No consensus on signer protocol version. Unable to validate block. Rejecting.";
741+
"signer_signature_hash" => %block.header.signer_signature_hash(),
742+
"block_id" => %block.block_id(),
732743
);
733-
local_version
734-
});
744+
return Some(self.create_block_rejection(RejectReason::NoSignerConsensus, block));
745+
};
735746
let state_version = SortitionStateVersion::from_protocol_version(latest_version);
736747
if state_version.uses_global_state() {
737748
self.check_block_against_global_state(stacks_client, block)

0 commit comments

Comments
 (0)