perf(gossip): preverify inbound CRDS and cache verifying keys#36
Merged
Lythaeon merged 1 commit intoMar 12, 2026
Merged
Conversation
d6d3fd9
into
feature/semantic-dedupe-ledger-mode
2 checks passed
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
This PR tightens the vendored gossip receive path used by SOF's observer runtime.
The main changes are:
This is intended to keep the gossip ingest path cheaper under sustained packet volume without changing the higher-level runtime behavior that is already being validated on the live system.
Changes
crates/sof-solana-gossip/src/cluster_info.rsPullResponseandPushMessageCRDS values before full signature verification.now, CRDS timeout, and CRDS snapshot state instead of recalculating those per packet.SOF_GOSSIP_VERIFY_PUBKEY_CACHE_CAPACITYSOF_GOSSIP_VERIFY_PUBKEY_CACHE_SHARDScrates/sof-solana-gossip/src/crds_value.rsCrdsValueand batched verification helpers.Mutex<LruCache<...>>with a sharded concurrentDashMapcache for expanded Ed25519 verifying keys.crates/sof-solana-gossip/src/protocol.rscrates/sof-solana-gossip/src/cluster_info_metrics.rscrates/sof-solana-gossip/src/gossip_service.rscrates/sof-solana-gossip/Cargo.tomled25519-dalekanddashmaprequired by the new cache-aware verification path.For slice-related changes, include:
sof-solana-gossipMotivation
Business motivation:
Technical motivation:
Alternative approaches considered:
Scope and impact
sof-solana-gossipTesting
Commands/results:
Both passed locally on this branch.
Related issues and documentation
docs/architecture/README.mdReviewer checklist
docs/architecture/ard/0003-slice-dependency-contracts.md)Additional notes
Trade-offs, follow-up work, or deviations from standards.