• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

iotaledger / iota / 30678166217
70%

Build:
DEFAULT BRANCH: develop
Ran 01 Aug 2026 02:29AM UTC
Jobs 1
Files 1058
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

31 Jul 2026 12:24PM UTC coverage: 69.177% (+0.08%) from 69.094%
30678166217

push

github

web-flow
feat(starfish): prefer commit-sync peers that have the requested range (#12486)

# Description of change

The commit syncer draws its fetch candidates from the whole committee,
with no signal about which peers actually hold the range. A peer asked
for a range it does not have answers with an empty success, which costs
a full request and one slot in the sequential per-round pass. On a
network where only part of the committee is caught up, the wasted round
trips scale with committee size over the number of caught-up peers.

`CommitVoteMonitor` already tracks the highest commit index voted by
each authority, and `commit_syncer::Inner` already holds it — only the
aggregate `quorum_commit_index()` was being read. This uses the
per-authority value to ask peers that voted for the end of the range
first, keeping the existing shuffled order within each group.

Peers without an observed vote are ordered behind. The signal is
one-sided: entries only advance when this node observes a block from
that author, and serving additionally needs the certifying headers in
the peer's storage. One consequence to be aware of: each fetch round is
truncated to `MAX_NUM_TARGETS` (24) **after** this ordering, so on a
committee with more than 24 observed voters every round consists of
voters, and a peer whose headers do not reach us is not asked until they
do. Accepted because rounds retry forever over up to 24 peers that
provably solidified the range, and any header from such a peer carrying
a recent commit vote promotes it immediately; committees of 25 or fewer
are unaffected.

Gated by the node-local
`enable_commit_sync_peer_selection_by_commit_votes`, default on. It only
reorders candidates, so it cannot diverge consensus; with the flag off
the selection is exactly what it is today.

`test_fast_sync_voting_blocks_served_to_peer` asserts that B fetches
from A specifically, which depends on the peer order, so it sets the
flag off — the property it covers (voting headers are ser... (continued)

77 of 85 new or added lines in 4 files covered. (90.59%)

813 existing lines in 32 files now uncovered.

166143 of 240172 relevant lines covered (69.18%)

476736.64 hits per line

Uncovered Changes

Lines Coverage ∆ File
7
77.47
-1.62% crates/starfish/core/src/commit_syncer/mod.rs
1
86.01
-6.33% crates/starfish/core/src/commit_syncer/fast.rs

Coverage Regressions

Lines Coverage ∆ File
158
0.0
0.0% crates/iota-indexer/src/ingestion/primary/prepare.rs
108
90.82
0.07% crates/iota-protocol-config/src/lib.rs
105
96.72
-0.04% crates/starfish/core/src/dag_state.rs
98
86.01
-6.33% crates/starfish/core/src/commit_syncer/fast.rs
92
45.79
45.79% crates/iota-rest-kv/src/bigtable.rs
68
91.0
-0.11% crates/iota-core/src/authority/authority_per_epoch_store.rs
26
92.2
0.1% crates/starfish/core/src/block_header.rs
22
77.08
77.08% crates/iota-rest-kv/src/routes/kv_store.rs
18
44.44
44.44% crates/iota-indexer/src/models/display.rs
16
77.18
-4.8% crates/iota-grpc-server/src/transaction_execution_service/mod.rs
14
92.64
-1.64% crates/iota-core/src/consensus_adapter.rs
14
95.7
0.17% crates/starfish/core/src/commit_solidifier.rs
13
97.66
-0.03% crates/starfish/core/src/core.rs
10
89.89
-0.98% crates/iota-network/src/state_sync/mod.rs
10
86.96
86.96% crates/iota-rest-kv/src/server.rs
7
77.47
-1.62% crates/starfish/core/src/commit_syncer/mod.rs
5
90.11
-1.9% crates/starfish/core/src/leader_timeout.rs
4
79.21
-0.57% crates/iota-types/src/crypto.rs
3
86.38
-0.35% crates/iota-core/src/transaction_orchestrator.rs
3
98.73
0.02% crates/iota-single-node-benchmark/src/single_node.rs
2
85.86
-0.5% crates/iota-core/src/storage.rs
2
74.89
0.0% crates/iota-network/src/randomness/mod.rs
2
71.71
-0.49% crates/iota-types/src/error.rs
2
77.91
-2.33% crates/iota-types/src/signature_verification.rs
2
93.62
-0.08% crates/starfish/core/src/authority_service.rs
2
97.91
-0.16% crates/starfish/core/src/commit_observer.rs
2
83.41
-0.49% crates/starfish/core/src/core_thread.rs
1
86.11
0.0% crates/iota-cluster-test/src/test_case/native_transfer_test.rs
1
89.69
0.34% crates/iota-core/src/connection_monitor.rs
1
89.1
-0.14% crates/iota-network/src/discovery/mod.rs
1
93.16
-0.21% crates/starfish/core/src/storage/rocksdb_store.rs
1
96.05
-0.05% crates/starfish/core/src/transactions_synchronizer.rs
Jobs
ID Job ID Ran Files Coverage
1 nextest+simtest - 30678166217.1 01 Aug 2026 02:29AM UTC 1058
69.18
GitHub Action Run
Source Files on build 30678166217
  • Tree
  • List 1058
  • Changed 55
  • Source Changed 20
  • Coverage Changed 55
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30678166217
  • 4bbd7162 on github
  • Prev Build on develop (#30596652036)
  • Next Build on develop (#30727268367)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc