Open
Conversation
Each validator now transitions from AcceptAllCerts to RejectAllCerts when the consensus commit timestamp exceeds the epoch reconfiguration timestamp, instead of waiting for 2f+1 EndOfPublish messages. This simplifies epoch transitions and reduces latency. EndOfPublish quorum is preserved as a fallback for manual/forced epoch close. Changes: - Add timestamp_based_epoch_close feature flag (devnet only) - Add next_reconfiguration_timestamp_ms() to AuthorityPerEpochStore - Add handle_epoch_close() to ConsensusHandler with dual-path support - Guard automatic EndOfPublish sending behind feature flag - Guard checkpoint_output close_epoch() behind feature flag Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Override initial_reconfig_state to RejectAllCerts before filtering when the commit timestamp crosses the reconfiguration threshold, so user transactions are dropped in the same commit rather than the next one. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
6fccc09 to
2c49225
Compare
2c49225 to
b811290
Compare
b811290 to
7d3171f
Compare
With timestamp_based_epoch_close, close_epoch() was returning early without sending EndOfPublish. This broke trigger_reconfiguration() in simtests which relies on manual EndOfPublish quorum to close the epoch. Now close_epoch() sends EndOfPublish even with the flag enabled, which handle_epoch_close() processes via the collected_eop_quorum path. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
7d3171f to
ec94cf6
Compare
lxfind
reviewed
Apr 9, 2026
| if epoch_store.should_send_end_of_publish() { | ||
| // Skip when timestamp_based_epoch_close is enabled (epoch close is timestamp-driven). | ||
| if epoch_store.should_send_end_of_publish() | ||
| && !epoch_store.protocol_config().timestamp_based_epoch_close() |
Contributor
There was a problem hiding this comment.
In the case if EOP is manually done by an admin, we need to always preserve the crash recovery?
Contributor
Author
There was a problem hiding this comment.
Makes sense. We can recover manual eop.
lxfind
reviewed
Apr 9, 2026
| if !self | ||
| .epoch_store | ||
| .protocol_config() | ||
| .timestamp_based_epoch_close() |
Contributor
There was a problem hiding this comment.
I think this may have the same problem if EOP was manually triggered
ddf6ca1 to
f4bd3a8
Compare
f4bd3a8 to
bbb1d2f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
timestamp_based_epoch_closefeature flag (devnet and tests only)Test plan
cargo insta test -p sui-protocol-config --accept(snapshot updated)cargo check -p sui-core -p sui-nodepassesSUI_SKIP_SIMTESTS=1 cargo nextest run -p sui-corecargo simtest -p sui-e2e-tests🤖 Generated with Claude Code