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

iotaledger / iota / 29381900237

14 Jul 2026 09:08PM UTC coverage: 68.378% (+0.03%) from 68.351%
29381900237

push

github

web-flow
upstream(iota-core): pipeline BCS deserialization in consensus commit handler (#12145)

# Description of change

- Port of upstream PR:
[MystenLabs/sui#27052](https://github.com/MystenLabs/sui/pull/27052)
- Description: Splits Starfish consensus output processing into two
stages connected by a small bounded channel (capacity 2): a dedicated
deserialize worker BCS-parses each commit's transactions while the
handler processes the previous one. A single worker per stage plus a
FIFO channel preserve commit ordering by construction, and the small
capacity applies backpressure when the handler is the bottleneck instead
of buffering parsed commits unboundedly.

Adapted to the fork:

- Ported only the deserialization-pipelining half.
`handle_consensus_output` now takes the pre-parsed transactions as a
`ConsensusOutputTransactions` parameter; a `#[cfg(test)]`
`handle_consensus_output_for_test` wrapper performs the inline
deserialization so the existing single-arg unit-test callsites are
unchanged. `StarfishConsensusHandler::new` spawns the deserialize worker
and the handler via a `tokio::task::JoinSet` (replacing the single
`JoinHandle`, with `abort_all` on drop), and the bounded channel uses
`monitored_mpsc::channel("consensus_deserialized_commits", 2)`.
- Dropped the upstream `finalized_transactions_cache` /
`is_recently_finalized` replacement: it serves the FPC voting path,
which IOTA does not have (there is no `is_recently_finalized` reader),
so that piece is N/A here.

## Links to any relevant issues

## How the change has been tested

- [x] Basic tests (linting, compilation, formatting, unit/integration
tests)
- [x] Patch-specific tests (correctness, functionality coverage)
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] I have checked that new and existing unit tests pass locally with
my changes

42 of 43 new or added lines in 1 file covered. (97.67%)

2083 existing lines in 62 files now uncovered.

163786 of 239532 relevant lines covered (68.38%)

490419.65 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

91.45
/crates/iota-core/src/execution_cache/writeback_cache.rs


Source Not Available

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