Skip to content

Durable proposals for disk-backed SMT crash/HA recovery #162

Description

@jait91

In-flight proposal state on the disk-backed SMT path wasn't durable: a node that crashed or lost leadership between sending a block to BFT and finalizing it had nothing to recover from - causing recovery gaps, restart loops, and Mongo↔RocksDB-root divergence.

Fix: stage the proposed block + proposalId-tagged records in Mongo before the BFT request; on restart, resume uncertified proposals or finalize certified ones, and abandon superseded ones with their records kept invisible; validate the disk-SMT root on replay; and guard HA activate/deactivate so a stale round can't finalize into the wrong block.

Result: a disk-backed node can crash or lose leadership at any point in propose → certify → finalize and recover with no data loss, root mismatch, or proof corruption.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions