[consensus/simplex+marshal] Auto-certify locally proposed views + Improve Durability Guarantees#3543
Conversation
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
commonware-mcp | 8ae64d5 | Apr 20 2026, 09:06 PM |
Deploying monorepo with
|
| Latest commit: |
8ae64d5
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://331761a1.monorepo-eu0.pages.dev |
| Branch Preview URL: | https://cl-rm-double-certify.monorepo-eu0.pages.dev |
01ad0fe to
376f477
Compare
48a3a86 to
6196044
Compare
b94d753 to
1beb6c2
Compare
|
Pulling into draft while we reason about a more strict guarantee. |
We currently track if the proposal was local as its own flag, derived from the leader. Right now this doesn't buy us much. The original intention was to enable a more fool-proof setup where the proposer's node would keep track even in the event of crashes, but for now, this re-centers the PR on a solution that relies on the leader being known.
1beb6c2 to
fc71931
Compare
|
If we persist block during propose rather than in broadcast, it looks a LOT cleaner. Remove proposed/last_built, call |
|
I think there is one more subtle edge case where a leader restarts and persisted a block in marshal but not a vote in simplex. The leader then re-proposes on restart but the new block isn't written (same index is a no-op)? What we want to do here is load a verified for that round and pass that back as digest (or don't propose at all)? |
|
bugbot run |
|
bugbot run |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 8ae64d5. Configure here.
Codecov Report❌ Patch coverage is @@ Coverage Diff @@
## main #3543 +/- ##
==========================================
+ Coverage 95.81% 95.87% +0.06%
==========================================
Files 440 440
Lines 167647 172053 +4406
Branches 3909 4002 +93
==========================================
+ Hits 160630 164958 +4328
- Misses 5798 5827 +29
- Partials 1219 1268 +49
... and 21 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
…#3697) Updates all commonware dependencies to the most recent head at commonwarexyz/monorepo@2a7dd42. This notably contains the patches commonwarexyz/monorepo#3543 and commonwarexyz/monorepo#3641 to improve durability and persistence of proposed and verified blocks in the marshal actor. In certain scenarios (especially around epoch transitions, but also in single-node tests), there were races between simplex engines asking for new proposals (overwriting the last-proposed-block mutex), and broadcasts of proposal parents. This patch removes this logic, instead relying on the marshal actor to provide the blocks.
Overview
Updates simplex to prevent the local node from asking the application to certify its own proposals. Currently, this causes re-execution of blocks when using
standard::Deferredorcoding::Marshaledin thecertifyfallback path.TODO