Skip to content

fix: raise gossipsub control limit to 128 KiB - #1339

Merged
shane-moore merged 1 commit into
sigp:unstablefrom
shane-moore:fix/1335-gossipsub-control-limit
Oct 6, 2026
Merged

shane-moore merged 1 commit into
sigp:unstablefrom
shane-moore:fix/1335-gossipsub-control-limit

Conversation

@shane-moore

Copy link
Copy Markdown
Member

Problem, Evidence, and Context (Required)

Closes #1335.

Anchor inherits gossipsub's 16 KiB cumulative control/subscription limit. Normal go-ssv gossip can exceed it, causing RPC rejection and contributing to the subscription loss reported in a mixed-client devnet.

Change Overview (Required)

Raise the control budget to 128 KiB, matching Anchor's pinned Lighthouse v8.2.1 on the same gossipsub fork. This allows larger control RPCs through the size check while retaining the independent 5,000,000-byte total-message limit.

Risks, Trade-offs, and Mitigations (Required)

The larger budget permits more control processing per RPC. It remains finite, but is not guaranteed to accommodate every aggregated Go RPC. The incident's exact rejected size was not measured, and this change does not repair subscription recovery or address #1336/#1337.

Validation (Required)

  • cargo test --release --locked -p network: 63 passed.
  • cargo clippy --locked -p network --all-targets -- -D warnings: passed.
  • make cargo-fmt-check and git diff --check: passed.
  • Verified the setter against the pinned dependency and the matching Lighthouse configuration.

Existing tests exercise configuration construction and integration, not this threshold specifically. Mixed-client runtime recovery has not been verified.

Rollback (Required for behavior or runtime changes; optional otherwise)

Revert the change and restart Anchor. No configuration or data migration is required.

Match the pinned Lighthouse control budget to accommodate larger go-ssv gossip RPCs. Addresses sigp#1335.
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.15%. Comparing base (d0c4c7e) to head (d871ae2).

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #1339      +/-   ##
============================================
- Coverage     71.17%   71.15%   -0.02%     
============================================
  Files           168      168              
  Lines         30562    30564       +2     
============================================
- Hits          21751    21749       -2     
- Misses         8811     8815       +4     
Flag Coverage Δ
rust 71.15% <100.00%> (-0.02%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@shane-moore

Copy link
Copy Markdown
Member Author

lgtm! review from opus 5.5 (high effort): checked the setter reaches the inbound codec on the pinned fork (c774d4e), the limit is decode-only so mixed old/new Anchor peers are unaffected, and the value matches Lighthouse b263df5.

one note for the soak: go-libp2p-pubsub merges IHAVEs across topics into one RPC per peer, so 128 KiB fits about 6 full go-ssv IHAVEs (1,500 IDs each). worth grepping ardent logs for rpc control size exceeds after deploy; if it shows up, 512 KiB is the next step per #1335.

@shane-moore
shane-moore merged commit 1e72f60 into sigp:unstable Oct 6, 2026
21 checks passed
@shane-moore
shane-moore deleted the fix/1335-gossipsub-control-limit branch October 6, 2026 18:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants