chore(consensus): remove Mysticeti and make Starfish the sole consensus protocol#11280
Closed
polinikita wants to merge 8 commits intodevelopfrom
Closed
chore(consensus): remove Mysticeti and make Starfish the sole consensus protocol#11280polinikita wants to merge 8 commits intodevelopfrom
polinikita wants to merge 8 commits intodevelopfrom
Conversation
This commit removes the Mysticeti consensus protocol implementation as it has been fully replaced by the Starfish protocol on all networks. Changes: - Delete entire consensus/ directory (config, core, simtests crates) - Remove consensus-config and consensus-core dependencies from workspace - Update all source files to use starfish_config and starfish_core - Remove mysticeti_adapter and mysticeti_manager modules - Remove MysticetiConsensusHandler in favor of StarfishConsensusHandler - Simplify ConsensusManager to only support Starfish protocol - Remove ConsensusChoice enum from protocol config - Remove Mysticeti CI job from nightly workflow - Remove CONSENSUS_PROTOCOL environment variable support - Update imports in test files to use starfish_core types - Update epoch_start_iota_system_state.rs to use Starfish committee Resolves: #11075
- Simplify ConsensusProtocol enum to only support Starfish - Remove Mysticeti and SwapEachEpoch variants - Update protocol setup to always use Starfish
…nsus Update the consensus_protocol parameter comment to clarify that only Starfish is currently supported, removing outdated reference to switching between Mysticeti and Starfish.
This function was only used by the Mysticeti consensus protocol which has been removed. It is no longer needed.
… fuzzer - Delete legacy consensus-overview Grafana dashboard (replaced by starfish-overview) - Strip -p/PROTOCOL flag from run.sh, run-all-benchmark.sh, run-all-fuzz.sh, dual-run.sh - Simplify fuzzer stress runners to a single run (drop paired Mysticeti/Starfish loop) - Update READMEs and fuzzer docs to drop Mysticeti references
…lters
- Drop consensus-{config,core} filter entries from .github/crates-filters.yml
- Simplify split-cluster-sync-check.sh to assume Starfish (only remaining protocol)
- Rename test_iota_and_mysticeti_committee_are_same to *_consensus_committee_are_same
- Replace Mysticeti references in code comments (tonic_network, universal_committer,
commit_consumer, checkpoint_executor, protocol-config) with neutral wording
- Change starfish tonic client user_agent from "mysticeti" to "starfish"
Rewrite consensus-related documentation to reflect Starfish as the production protocol on all IOTA networks. Mysticeti is kept only as historical context (Starfish's predecessor) where relevant. - consensus.mdx: replace Mysticeti-first narrative with Starfish-first; keep 'Improvements over Mysticeti' as a historical subsection - about-iota.mdx, iota-architecture.mdx, epochs.mdx, iota-compared.mdx: update the protocol the validators run to Starfish - research-papers.mdx: update relevance notes for Mysticeti, Starfish, and HammerHead entries to reflect current production state - consensus quiz: update answers to reference Starfish
Member
Author
|
Superseded by 4 focused PRs for easier review. Tracking issue remains #11075. |
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.
Description of change
Starfish is now enabled on all networks (Devnet, Testnet, Mainnet), which makes the legacy Mysticeti implementation dead code. This PR removes Mysticeti end-to-end:
consensus/directory (consensus/core,consensus/config,consensus/simtests) and drop theconsensus-core/consensus-configworkspace dependencies.mysticeti_adapter,mysticeti_manager,MysticetiConsensusHandler,LazyMysticetiClient, and theProtocolManager::Mysticetivariant.ConsensusManagernow delegates directly toStarfishManager— no more runtime protocol selection, no moreCONSENSUS_PROTOCOLenv var, no morepick_protocol().ConsensusChoiceenum and its accessors fromiota-protocol-config. Migrate all remainingconsensus_core::/consensus_config::imports tostarfish_core/starfish_config.iota-aws-orchestrator: drop the Mysticeti andSwapEachEpochvariants, strip theCONSENSUS_PROTOCOL=...export from the validator setup script.nightly.yml, drop theconsensusProtocolinput from_rust_tests.yml, remove the leftoverCONSENSUS_PROTOCOLforwarding fromsimtest-run.sh,_rust.yml, docker-compose, andrun.sh.consensus-overviewGrafana dashboard (Starfish has its own), simplify the private-networkrun.sh, fuzz/benchmark scripts, and Python stress runners to a single-protocol flow.dual-run.shno longer alternates between protocols.consensus.mdx,about-iota.mdx,iota-architecture.mdx,epochs.mdx,iota-compared.mdx, andresearch-papers.mdxto describe Starfish as the current protocol and keep Mysticeti as historical context only. Update the consensus quiz answers.test_iota_and_mysticeti_committee_are_same→*_consensus_committee_are_same, change starfish tonic clientuser_agentfrommysticetitostarfish, remove mentions of Mysticeti from comments throughout the tree.Net effect: 134 files changed, 210 insertions, 51,101 deletions.
Residuals intentionally left in place
crates/iota-protocol-config/src/snapshots/*.snap— historical serialized protocol configs, must stay frozen.max_accumulated_txn_cost_per_object_in_mysticeti_commitfield iniota-protocol-configand its call sites — renaming the field changes protocol config serialization and requires regenerating all snapshot files + bumping the protocol version. Deferred to a follow-up.crates/iota-open-rpc/spec/openrpc.json— auto-generated; mirrors the field name above.Links to any relevant issues
Fixes #11075
How the change has been tested