Open
Conversation
Add MysticetiCompress to ConsensusProtocol enum with from_str parsing, helper methods (is_mysticeti_compress, uses_dual_dag), and wire into all match arms: PushCausal dissemination, no erasure coding, Blake3 transaction commitment, ancestor-based subdag collection, full-block format, wave_length=3 with pipeline=true (3 pipelined committers).
Add Optional<BlockReference> field for MysticetiCompress unprovable certificate mechanism. Includes accessors on BlockHeader and VerifiedBlock. All existing callers pass None. Digest integration deferred to block building step.
…cetiCompress Add optional unprovable_certificate field to BlockHeader to support the MysticetiCompress protocol. This field references a leader block at round r-2 that is claimed to have been seen by 2f+1 validators at round r-1, and is part of the signed block hash for compression. Changes: - Add unprovable_certificate: Option<BlockReference> field to BlockHeader - Add accessor methods unprovable_certificate() to BlockHeader and VerifiedBlock - Initialize field to None in all BlockHeader constructors - Update BlockDigest hashing to include unprovable_certificate in digest - Update all Block Digest::new and new_without_transactions calls to pass parameter - Update Signer::sign_block and PublicKey::verify_signature_in_block to handle field Co-Authored-By: Claude <noreply@anthropic.com>
MysticetiCompress non-leaders include at most own_prev + leader at r-1. Leaders keep the full clean-DAG frontier. compute_unprovable_certificate checks direct evidence (2f+1 votes at r-1) and propagation (f+1 at r).
Replace SailfishPlusPlus-specific checks with uses_dual_dag() helper: - Certified ref recovery now applies to both SailfishPlusPlus and MysticetiCompress - proposal_round logic for vertex certification applies to both dual DAG protocols This enables MysticetiCompress to benefit from the same vertex certification and proposal timing mechanisms as SailfishPlusPlus. Co-Authored-By: Claude <noreply@anthropic.com>
Replace explicit SailfishPlusPlus checks with uses_dual_dag() helper in dag_state.rs to support both SailfishPlusPlus and MysticetiCompress protocols for: - Vertex certification recovery from storage - Proposal round calculation (requires certified vertices) - Certified parent quorum checks This enables MysticetiCompress to benefit from the dual DAG infrastructure (clean/dirty DAG with vertex certification). Co-Authored-By: Claude <noreply@anthropic.com>
…etiCompress Ensure unprovable_certificate targets are included in missing dependencies check. When a MysticetiCompress block references an unprovable certificate, that certificate block must be present in the vertex certification set before the block can be processed. This maintains ancestor-closure invariant for the clean DAG. Co-Authored-By: Claude <noreply@anthropic.com>
|
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
Bluestreakconsensus protocol and rename the original MysticetiCompress implementation to its final public nameunprovable_certificate, plus Bluestreak-specific block validation rulesunprovable_certificateedges during commit and linearizationpullTest plan
cargo check --all-featurescargo test -p starfish-core --lib bluestreak