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

iotaledger / iota / 26485628984
67%

Build:
DEFAULT BRANCH: develop
Ran 27 May 2026 02:36AM UTC
Jobs 1
Files 1076
Run time 3min
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

26 May 2026 06:44PM UTC coverage: 66.893% (+0.02%) from 66.875%
26485628984

push

github

web-flow
upstream(iota-core): cache signed_effects_digests in memory (#11612)

# Description of change

Port of MystenLabs/sui#26431 ("Cache `signed_effects_digests` in memory
to avoid disk reads").

`get_signed_effects_digest(&tx_digest)` is called on every transaction
this validator processes and reads from the RocksDB
`signed_effects_digests` column family. The cardinality of that table is
bounded by the set of transactions for which the validator has signed
effects but which haven't yet been finalized in a checkpoint — small
(hundreds to low thousands), but the call is high-frequency and the vast
majority of lookups return `None`.

Adds `signed_effects_digests_cache: DashMap<TransactionDigest,
TransactionEffectsDigest>`:

- Populated from disk at epoch startup (one-time scan of the column
family).
- Updated on every successful write to disk.
- Pruned at the same time as the on-disk batch delete in the
finalized-checkpoint path.
- `get_signed_effects_digest` reads only from the in-memory map.

Disk writes are unchanged — crash recovery still re-populates the cache
from disk on next startup.

A test-mode-gated consistency check compares cache vs disk on every
read, with a one-second retry to handle the write-before-cache-insert
race (the disk batch is flushed first, then the cache is inserted; a
concurrent read in the millisecond window between would otherwise
spuriously panic). On divergence, the assertion panics with the
offending tx digest.

The patch mirrors upstream almost line-for-line. IOTA's
`AuthorityPerEpochStore::new` returns `IotaResult<Arc<Self>>` (not bare
`Arc<Self>`), and the cleanup function is
`notify_commit_of_finalized_checkpoint` (not
`handle_finalized_checkpoint`) — code mapped accordingly.

## Links to any relevant issues

- Upstream: MystenLabs/sui#26431

## How the change has been tested

- [ ] Basic tests (linting, compilation, formatting, unit/integration
tests)
- [ ] Patch-specific tests (correctness, functionality coverage)
- [ ]... (continued)

14 of 21 new or added lines in 1 file covered. (66.67%)

5309 existing lines in 139 files now uncovered.

152188 of 227510 relevant lines covered (66.89%)

466477.49 hits per line

Uncovered Changes

Lines Coverage ∆ File
7
91.23
-0.35% crates/iota-core/src/authority/authority_per_epoch_store.rs

Coverage Regressions

Lines Coverage ∆ File
399
0.0
0.0% crates/iota-indexer/src/read.rs
296
69.78
0.0% crates/iota/src/client_commands.rs
285
81.58
0.19% crates/iota-core/src/authority.rs
244
12.78
0.0% crates/iota-graphql-rpc/src/types/object.rs
207
60.82
1.57% crates/iota-json-rpc-types/src/iota_transaction.rs
202
41.23
0.0% crates/iota-package-resolver/src/lib.rs
186
55.03
0.0% crates/iota-replay/src/replay.rs
180
0.0
0.0% crates/iota-open-rpc/src/examples.rs
158
56.05
1.99% crates/telemetry-subscribers/src/lib.rs
135
70.29
-0.07% crates/iota-core/src/authority/authority_store.rs
111
0.0
0.0% crates/iota-graphql-rpc/src/types/iota_names_registration.rs
105
91.23
-0.35% crates/iota-core/src/authority/authority_per_epoch_store.rs
104
16.47
0.0% crates/iota-indexer/src/apis/governance_api.rs
104
53.97
0.0% crates/iota/src/validator_commands.rs
101
0.0
0.0% crates/iota-indexer/src/ingestion/primary/prepare.rs
100
53.69
0.71% crates/iota-json-rpc-types/src/iota_object.rs
87
69.57
0.0% crates/iota-core/src/grpc_indexes.rs
86
50.0
0.78% crates/iota-types/src/iota_sdk_types_conversions.rs
85
80.13
-0.03% crates/iota-core/src/jsonrpc_index.rs
74
0.0
0.0% crates/iota-indexer/src/apis/write_api.rs
66
47.87
0.0% crates/iota-replay/src/data_fetcher.rs
65
70.84
0.0% crates/iota-json/src/lib.rs
65
80.55
0.0% iota-execution/latest/iota-adapter/src/execution_engine.rs
64
1.64
0.0% crates/iota-graphql-rpc/src/types/query.rs
63
0.0
0.0% crates/iota-tool/src/db_tool/index_search.rs
58
8.04
0.0% crates/iota-indexer/src/types.rs
58
46.09
0.0% crates/iota-transactional-test-runner/src/simulator_persisted_store.rs
55
0.0
0.0% crates/iota-graphql-rpc/src/types/coin_metadata.rs
54
93.55
0.0% iota-execution/latest/iota-adapter/src/programmable_transactions/execution.rs
52
84.73
-0.05% iota-execution/latest/iota-adapter/src/temporary_store.rs
50
0.0
0.0% crates/iota-indexer/src/apis/indexer_api.rs
47
86.95
0.0% crates/iota/src/client_ptb/builder.rs
45
92.3
0.0% iota-execution/latest/iota-adapter/src/programmable_transactions/context.rs
44
0.0
0.0% crates/iota-indexer/src/ingestion/common/prepare.rs
44
60.96
0.0% crates/simulacrum/src/lib.rs
40
83.19
-0.02% crates/iota-json-rpc/src/read_api.rs
40
71.47
0.0% crates/iota-transaction-builder/src/utils.rs
37
0.0
0.0% crates/iota-graphql-rpc/src/types/event/mod.rs
36
0.0
0.0% crates/iota-graphql-rpc/src/types/coin.rs
35
0.0
0.0% crates/iota-core/src/generate_format.rs
33
32.19
0.0% crates/iota-graphql-rpc/src/types/move_type.rs
33
63.4
-0.43% crates/iota-grpc-server/src/merge.rs
33
90.74
0.0% crates/iota-grpc-server/src/types.rs
31
68.93
0.0% crates/iota-json-rpc/src/indexer_api.rs
31
64.67
0.0% crates/iota-types/src/storage/mod.rs
29
0.0
0.0% crates/iota-graphql-rpc/src/types/stake.rs
29
67.68
0.0% crates/iota-grpc-server/src/state_service/list_dynamic_fields.rs
29
78.87
0.0% iota-execution/latest/iota-move-natives/src/object_runtime/object_store.rs
27
82.08
0.0% crates/iota-json-rpc-types/src/iota_move.rs
27
39.6
-4.95% crates/iota-json-rpc-types/src/object_changes.rs
26
50.5
0.0% crates/iota-json-rpc-types/src/iota_event.rs
23
89.84
0.0% crates/iota-genesis-builder/src/stardust/migration/verification/util.rs
23
89.98
1.51% crates/iota-test-transaction-builder/src/lib.rs
22
0.0
0.0% crates/iota-node/src/main.rs
22
46.39
0.0% crates/iota/src/clever_error_rendering.rs
21
49.79
0.0% crates/iota-analytics-indexer/src/handlers/mod.rs
21
89.71
0.0% iota-execution/latest/iota-move-natives/src/object_runtime/mod.rs
20
80.42
1.05% crates/iota-sdk/src/lib.rs
20
75.29
0.0% crates/iota-types/src/iota_serde.rs
19
77.31
0.0% iota-execution/latest/iota-move-natives/src/config.rs
17
65.45
0.0% crates/iota-json-rpc/src/authority_state.rs
17
79.06
0.0% crates/iota/src/client_ptb/ast.rs
17
93.45
0.0% crates/iota-transactional-test-runner/src/programmable_transaction_test_parser/parser.rs
17
86.47
2.64% crates/iota-transaction-builder/src/lib.rs
16
85.59
0.0% crates/iota-cluster-test/src/helper.rs
16
97.08
0.0% crates/iota-genesis-builder/src/stardust/migration/executor.rs
15
0.0
0.0% crates/iota-analytics-indexer/src/handlers/df_handler.rs
15
83.82
0.0% crates/iota-core/src/storage.rs
15
75.37
-0.68% crates/test-cluster/src/lib.rs
14
89.29
0.0% crates/iota-genesis-builder/src/stardust/migration/verification/foundry.rs
14
93.78
0.0% iota-execution/latest/iota-move-natives/src/test_scenario.rs
13
97.43
0.0% crates/iota-json-rpc/src/coin_api.rs
12
75.26
2.06% crates/iota-core/src/test_utils.rs
12
55.17
0.0% crates/iota-names/src/config.rs
12
0.0
0.0% crates/iota-names/src/lib.rs
12
50.51
-1.37% crates/iota-sdk/src/apis/read.rs
11
87.37
0.0% crates/iota-genesis-builder/src/stardust/migration/verification/alias.rs
11
86.81
0.0% crates/iota-genesis-builder/src/stardust/migration/verification/nft.rs
11
84.31
0.0% crates/iota-types/src/auth_context/fields_v1.rs
10
90.62
-0.07% crates/iota-protocol-config/src/lib.rs
10
82.93
-4.07% crates/iota-transaction-builder/src/package.rs
10
86.26
-0.16% crates/iota-types/src/effects/mod.rs
9
36.67
0.0% crates/iota-indexer/src/models/events.rs
9
64.63
-1.89% crates/iota-types/src/storage/shared_in_memory_store.rs
8
0.0
0.0% crates/iota-analytics-indexer/src/handlers/event_handler.rs
8
76.19
4.08% crates/iota-json-rpc-types/src/lib.rs
8
59.24
-3.36% crates/iota-stardust-types/src/block/output/alias.rs
8
60.84
-4.82% crates/iota-stardust-types/src/block/output/nft.rs
8
41.3
0.0% crates/iota-types/src/account_abstraction/authenticator_function.rs
7
90.13
-0.97% crates/iota-core/src/epoch/randomness.rs
7
83.43
0.0% crates/iota-grpc-server/src/event_filter.rs
7
74.1
-0.43% crates/iota-network/src/randomness/mod.rs
7
87.91
-7.69% iota-execution/latest/iota-move-natives/src/transaction_context.rs
6
0.0
0.0% crates/iota-graphql-rpc/src/types/dry_run_result.rs
6
80.3
0.0% crates/iota-transaction-builder/src/stake.rs
5
77.52
0.21% crates/iota-core/src/checkpoints/mod.rs
5
80.52
0.0% crates/iota-grpc-server/src/state_service/list_owned_objects.rs
5
84.1
0.17% crates/iota-grpc-server/src/transaction_filter.rs
5
29.06
0.0% crates/iota-indexer/src/models/objects.rs
5
91.56
0.0% crates/iota-types/src/lib.rs
5
89.47
0.0% iota-execution/latest/iota-adapter/src/error.rs
5
94.24
0.0% iota-execution/latest/iota-verifier/src/one_time_witness_verifier.rs
4
88.63
0.0% crates/iota-core/src/authority/test_authority_builder.rs
4
88.28
-0.34% crates/iota-genesis-builder/src/lib.rs
4
0.0
0.0% crates/iota-indexer/src/models/display.rs
4
94.05
0.0% crates/iota-json-rpc/src/balance_changes.rs
4
99.1
0.0% crates/iota/src/client_ptb/parser.rs
4
56.92
-0.77% crates/iota-stardust-types/src/block/output/basic.rs
4
56.52
-2.17% crates/iota-stardust-types/src/block/output/foundry.rs
4
88.06
-5.97% crates/iota-types/src/quorum_driver_types.rs
4
83.14
0.0% crates/iota-types/src/transaction.rs
4
98.75
0.0% crates/transaction-fuzzer/src/programmable_transaction_gen.rs
3
97.44
0.0% crates/iota-genesis-builder/src/stardust/types/vested_reward.rs
3
91.94
0.0% crates/iota-json-rpc/src/transaction_builder_api.rs
3
20.9
-1.69% crates/iota-stardust-types/src/block/output/mod.rs
3
65.96
-6.38% crates/iota-stardust-types/src/block/output/output_id.rs
3
97.96
-2.04% crates/iota-types/src/mock_checkpoint_builder.rs
3
80.37
-0.93% crates/iota-types/src/multisig.rs
3
91.78
-0.1% crates/starfish/core/src/header_synchronizer.rs
3
56.67
0.0% iota-execution/latest/iota-adapter/src/type_layout_resolver.rs
3
94.55
0.0% iota-execution/latest/iota-verifier/src/struct_with_key_verifier.rs
2
93.1
0.0% crates/iota-core/src/authority/authority_store_types.rs
2
98.33
0.0% crates/iota-genesis-builder/src/stardust/types/output/basic.rs
2
96.47
0.0% crates/iota-json-rpc/src/object_changes.rs
2
89.08
-0.21% crates/iota-network/src/state_sync/mod.rs
2
36.84
0.0% crates/iota-node-storage/src/lib.rs
2
0.0
0.0% crates/iota-tool/src/fire_drill.rs
2
54.55
0.0% crates/iota-types/src/timelock/stardust_upgrade_label.rs
2
88.99
-0.22% crates/starfish/core/src/commit_syncer/fast.rs
1
80.6
0.23% crates/iota-core/src/authority_server.rs
1
89.69
0.34% crates/iota-core/src/connection_monitor.rs
1
0.0
0.0% crates/iota-indexer/src/models/transactions.rs
1
64.35
-0.33% crates/iota-light-client/src/verifier.rs
1
89.03
-0.14% crates/iota-network/src/discovery/mod.rs
1
97.56
0.0% crates/iota-single-node-benchmark/src/tx_generator/move_tx_generator.rs
1
92.41
0.0% crates/iota-types/src/auth_context/mod.rs
1
79.56
-0.12% crates/iota-types/src/crypto.rs
1
87.5
0.0% iota-execution/latest/iota-move-natives/src/object_runtime/fingerprint.rs
1
99.4
0.0% iota-execution/latest/iota-verifier/src/entry_points_verifier.rs
Jobs
ID Job ID Ran Files Coverage
1 nextest+simtest - 26485628984.1 27 May 2026 02:36AM UTC 1076
66.89
GitHub Action Run
Source Files on build 26485628984
  • Tree
  • List 1076
  • Changed 183
  • Source Changed 144
  • Coverage Changed 159
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26485628984
  • 4a69e6e5 on github
  • Prev Build on develop (#26427363945)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc