Skip to content

weighted committee for autobahn#3575

Merged
pompon0 merged 5 commits into
mainfrom
gprusak-autobahn-weights
Jun 11, 2026
Merged

weighted committee for autobahn#3575
pompon0 merged 5 commits into
mainfrom
gprusak-autobahn-weights

Conversation

@pompon0

@pompon0 pompon0 commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@cursor

cursor Bot commented Jun 11, 2026

Copy link
Copy Markdown

PR Summary

High Risk
Changes core consensus and finality rules (quorum math, QC verification, vote aggregation); incorrect weight handling could accept invalid QCs or break liveness.

Overview
Autobahn committees are weighted instead of one-validator-one-vote: NewCommittee takes per-replica weights, quorum APIs (CommitQuorum, LaneQuorum, etc.) are weight thresholds, and leader / EvmShard pick replicas with probability proportional to stake via a deterministic hash.

QC validation and vote aggregation now sum signer weight rather than counting signatures. Shared voteSet tracking is used in availability (appVotes, blockVotes) and consensus (prepare, commit, timeout votes) when forming QCs. Replica/lane membership checks use HasReplica / HasLane.

Tests and helpers (GenCommittee, TestKeysWithWeight, committee_test.go) cover uneven weights; integration tests pick active keys by quorum weight. AGENTS.md adds TestRng usage notes.

Reviewed by Cursor Bugbot for commit d47f6fd. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown

The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedJun 11, 2026, 1:53 PM

@codecov

codecov Bot commented Jun 11, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 93.70629% with 9 lines in your changes missing coverage. Please review.
✅ Project coverage is 58.35%. Comparing base (3c0c729) to head (d47f6fd).
⚠️ Report is 5 commits behind head on main.

Files with missing lines Patch % Lines
...ei-tendermint/internal/autobahn/avail/app_votes.go 69.23% 2 Missing and 2 partials ⚠️
sei-tendermint/internal/autobahn/types/testonly.go 81.25% 3 Missing ⚠️
sei-tendermint/internal/autobahn/types/block.go 0.00% 0 Missing and 1 partial ⚠️
...ei-tendermint/internal/autobahn/types/committee.go 98.14% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #3575      +/-   ##
==========================================
- Coverage   59.18%   58.35%   -0.83%     
==========================================
  Files        2210     2136      -74     
  Lines      183250   174752    -8498     
==========================================
- Hits       108455   101976    -6479     
+ Misses      65003    63695    -1308     
+ Partials     9792     9081     -711     
Flag Coverage Δ
sei-chain-pr 83.65% <93.70%> (?)
sei-db 70.41% <ø> (ø)
sei-db-state-db ?

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

Files with missing lines Coverage Δ
...-tendermint/internal/autobahn/avail/block_votes.go 90.47% <100.00%> (+4.76%) ⬆️
sei-tendermint/internal/autobahn/avail/inner.go 97.40% <100.00%> (ø)
sei-tendermint/internal/autobahn/avail/state.go 79.65% <100.00%> (ø)
...ermint/internal/autobahn/consensus/commit_votes.go 93.75% <100.00%> (+0.41%) ⬆️
...rmint/internal/autobahn/consensus/prepare_votes.go 94.28% <100.00%> (+1.18%) ⬆️
...rmint/internal/autobahn/consensus/timeout_votes.go 86.66% <100.00%> (+0.95%) ⬆️
sei-tendermint/internal/autobahn/types/msg.go 83.44% <100.00%> (+1.56%) ⬆️
sei-tendermint/internal/autobahn/types/proposal.go 92.98% <100.00%> (ø)
sei-tendermint/internal/autobahn/types/timeout.go 82.89% <100.00%> (+1.56%) ⬆️
sei-tendermint/internal/autobahn/types/block.go 82.92% <0.00%> (ø)
... and 3 more

... and 76 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@pompon0 pompon0 added this pull request to the merge queue Jun 11, 2026
Merged via the queue into main with commit 2080ec0 Jun 11, 2026
60 checks passed
@pompon0 pompon0 deleted the gprusak-autobahn-weights branch June 11, 2026 15:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants