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

iotaledger / iota / 29175417705
69%

Build:
DEFAULT BRANCH: develop
Ran 12 Jul 2026 02:27AM UTC
Jobs 1
Files 1121
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

11 Jul 2026 10:01AM UTC coverage: 68.305% (+0.1%) from 68.208%
29175417705

push

github

web-flow
feat(core): replace `full_checkpoint_content` table with a size-bounded in-memory cache (#12146)

## Description

Every checkpoint synced via p2p state sync had its full contents
(transactions + effects + signatures) written to disk twice: once into
the perpetual store (transactions/effects) and once as a serialized blob
into the `full_checkpoint_content` RocksDB table — only for the blob to
be deleted again ~5,000 checkpoints later by the checkpoint executor.
This is pure write amplification plus tombstone/compaction churn for
data that lives minutes to hours.

The table was purely a read optimization: every consumer already has a
complete fallback that reconstructs `FullCheckpointContents` from the
permanent `checkpoint_content` table plus the transaction and effects
stores. Validators never populated the table at all (they don't sync
contents via p2p), so the reconstruction path has always been the
production serving path on validators.

This PR replaces the table with a size-bounded in-memory cache:

- **New `FullCheckpointContentsCache`**
(`iota-core/src/checkpoints/full_checkpoint_contents_cache.rs`): keyed
by sequence number with a contents-digest index, byte-accounted via
`bcs::serialized_size`, evicting lowest sequence numbers first when over
budget (keeps the newest window — what tip-following peers request). It
serves the checkpoint executor's bulk transaction loads, peer requests
via state sync, and the state-sync re-check.
- **New config knob** `full-checkpoint-contents-cache-size-mb` in
`NodeConfig` (default **1024 MiB**, `0` disables the cache; consumers
then always use the reconstruction fallback).
- **Dropped column families**: `full_checkpoint_content` and
`checkpoint_sequence_by_contents_digest` are marked
`#[deprecated_db_map]` and auto-dropped on the first open after upgrade.
No migration needed — the data was a short-lived cache and is
reconstructable.
- **Removed** the hardcoded `NUM_SAVED_FULL_CHECKPOINT_CONTENTS = 5_000`
pruni... (continued)

481 of 485 new or added lines in 7 files covered. (99.18%)

576 existing lines in 17 files now uncovered.

163435 of 239273 relevant lines covered (68.3%)

458242.15 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
80.01
2.51% crates/iota-core/src/checkpoints/mod.rs

Coverage Regressions

Lines Coverage ∆ File
291
82.21
0.21% crates/iota-core/src/authority.rs
166
78.44
1.19% crates/iota-core/src/authority/authority_store_pruner.rs
37
85.34
-0.14% crates/iota-config/src/node.rs
31
0.0
0.0% crates/iota-tool/src/db_tool/mod.rs
17
94.81
3.95% crates/iota-core/src/checkpoints/checkpoint_executor/mod.rs
10
69.7
-0.82% crates/iota-core/src/authority/authority_store.rs
4
90.96
-0.16% crates/iota-core/src/authority/authority_per_epoch_store.rs
3
80.01
2.51% crates/iota-core/src/checkpoints/mod.rs
3
91.5
-0.13% crates/iota-core/src/execution_cache/writeback_cache.rs
3
88.4
-0.6% crates/iota-types/src/messages_checkpoint.rs
2
93.67
-0.24% crates/iota-core/src/consensus_adapter.rs
2
96.3
-0.32% crates/iota-core/src/overload_monitor.rs
2
74.89
0.0% crates/iota-network/src/randomness/mod.rs
2
97.18
-2.82% crates/starfish/core/src/commit_consumer.rs
1
90.71
0.0% crates/iota-network/src/state_sync/mod.rs
1
89.62
-0.11% crates/starfish/core/src/commit_syncer/fast.rs
1
75.02
-0.1% crates/test-cluster/src/lib.rs
Jobs
ID Job ID Ran Files Coverage
1 nextest+simtest - 29175417705.1 12 Jul 2026 02:27AM UTC 1121
68.3
GitHub Action Run
Source Files on build 29175417705
  • Tree
  • List 1121
  • Changed 38
  • Source Changed 9
  • Coverage Changed 38
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29175417705
  • 224439ea on github
  • Prev Build on develop (#29134827759)
  • Next Build on develop (#29217649699)
  • 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