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

iotaledger / iota / 18148376031
64%

Build:
DEFAULT BRANCH: develop
Ran 01 Oct 2025 04:06AM UTC
Jobs 1
Files 1430
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

30 Sep 2025 01:18PM UTC coverage: 65.784% (+0.02%) from 65.763%
18148376031

push

github

web-flow
feat(Starfish): send Merkle root as transaction commitment (#8663)

# Description of change

This PR changes transaction commitment to Merkle root of encoded
transactions.

More precisely, the transaction data of the proposed block is serialised
and broken into info_length shards (info_length = f + 1 for n = 3f + 1).
Then these shards are encoded into n shards (n - number of validators).
After that, a Merkle tree with n leaves is built, and each leaf is a
hash of a shard. The root of this tree is transaction commitment.

To achieve that, the following changes have been introduced:
1. One encoder is added to the core. It is used to compute transaction
commitment to include in the block header of the created block.
2. n encoders are created during the subscription process, one encoder
for each connection. These encoders are used to verify the transaction
commitment of the blocks received through streaming.
3. Encoders are also created in the transaction synchronizer to verify
the transaction data received through this path as well.
4. Computation of transaction commitment was removed from the function
that reads transactions from the database. Instead, we read transaction
commitments from the corresponding headers. It may be later optimised
by, for example, storing commitments separately or together with
transactions.
5. Any struct that implements the trait ShardEncoder can be used. At the
moment, the trait is implemented for ReedSolomonEncoder and
TrivialEncoder. TrivialEncoder doesn't actually do anything; it returns
the same vector of shards as it is given. It is used for small
committees of size < 4, since ReedSolomonEncoder doesn't work for
info_length=n.

## Links to any relevant issues

`fixes #8649 `.

## How the change has been tested

- [x] Basic tests (linting, compilation, formatting, unit/integration
tests)
- [ ] Patch-specific tests (correctness, functionality coverage)
- [ ] I have added tests that prove my fix is effective or that my
fea... (continued)

331 of 332 new or added lines in 12 files covered. (99.7%)

193 existing lines in 31 files now uncovered.

230269 of 350037 relevant lines covered (65.78%)

2384773.74 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
97.59
97.59% crates/starfish/core/src/encoder.rs

Uncovered Existing Lines

Lines Coverage ∆ File
1
91.18
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.22
-0.14% crates/iota-network/src/state_sync/mod.rs
1
97.92
-1.04% crates/iota-surfer/src/surfer_task.rs
1
84.38
-0.78% crates/iota-surfer/src/surf_strategy.rs
1
80.0
1.18% crates/starfish/config/src/crypto.rs
2
93.39
0.02% crates/starfish/core/src/transactions_synchronizer.rs
3
68.18
-13.64% crates/iota-config/src/certificate_deny_config.rs
3
88.03
-0.25% crates/iota-genesis-builder/src/lib.rs
3
82.35
0.0% crates/iota-genesis-builder/src/stardust/types/output_header.rs
3
74.83
0.0% crates/iota-types/src/crypto.rs
3
87.57
-0.87% crates/iota-types/src/effects/effects_v1.rs
3
79.61
-0.42% crates/starfish/core/src/network/tonic_network.rs
4
95.02
-1.42% crates/iota-core/src/authority/test_authority_builder.rs
4
81.33
-5.33% crates/iota-types/src/quorum_driver_types.rs
4
80.17
-0.21% crates/iota-types/src/transaction.rs
5
83.72
-0.82% crates/iota-core/src/traffic_controller/mod.rs
5
55.39
0.15% crates/iota-json-rpc-types/src/iota_object.rs
5
46.46
-5.05% crates/iota-json-rpc-types/src/object_changes.rs
5
79.85
-0.76% crates/iota-sdk/src/wallet_context.rs
6
81.88
-0.18% crates/iota-core/src/authority.rs
6
56.1
-0.94% crates/iota-core/src/storage.rs
6
77.39
-5.22% crates/iota-genesis-builder/src/validator_info.rs
7
92.03
-0.57% crates/iota-transaction-builder/src/lib.rs
8
47.44
-2.73% crates/iota-sdk/src/apis/read.rs
8
85.63
-0.56% crates/iota-test-transaction-builder/src/lib.rs
13
59.69
-1.67% crates/iota-core/src/authority/authority_store_pruner.rs
18
90.72
-1.11% consensus/core/src/synchronizer.rs
20
57.19
-0.82% crates/iota-json-rpc-types/src/iota_transaction.rs
20
77.2
1.47% crates/test-cluster/src/lib.rs
23
74.11
-3.42% consensus/core/src/authority_service.rs
Jobs
ID Job ID Ran Files Coverage
1 nextest+simtest - 18148376031.1 01 Oct 2025 04:06AM UTC 1432
65.77
GitHub Action Run
Source Files on build 18148376031
  • Tree
  • List 1430
  • Changed 64
  • Source Changed 14
  • Coverage Changed 63
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #18148376031
  • da98d81e on github
  • Prev Build on develop (#18115747496)
  • Next Build on develop (#18237655678)
  • 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