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

iotaledger / iota / 17420368135
63%

Build:
DEFAULT BRANCH: develop
Ran 03 Sep 2025 03:53AM UTC
Jobs 1
Files 1417
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

02 Sep 2025 01:14PM UTC coverage: 65.853% (+0.04%) from 65.817%
17420368135

push

github

web-flow
feat(iota-core): compute object hotness based on online gradient descent algorithm (#7946)

# Description of change

This PR introduces a predictive mechanism for estimating the minimum gas
price required for transactions involving shared objects.

The predictor builds upon historical congestion data collected by the
`CongestionTracker` module (see #7559) and dynamically adjusts
object-specific hotness (i.e., weights) using an online gradient descent (OGD)
algorithm.

The function `get_suggested_gas_price_with_ogd` estimates a gas
price based on the set of shared objects accessed by a transaction. It
aims to balance execution success (avoiding underestimation) with user
cost efficiency (avoiding overestimation).

## Links to any relevant issues

Be sure to reference any related issues by adding `fixes #(issue)`.

## How the change has been tested

- [x] Basic tests (linting, compilation, formatting, unit/integration
tests)
- [ ] Patch-specific tests (correctness, functionality coverage)
- [x] 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

### Release Notes

- [ ] Protocol:
- [x] Nodes (Validators and Full nodes): Introduced computation of
object hotness based on online gradient descent improving the upstream's
logic for recommended suggested gas price calculations.
- [ ] Indexer:
- [ ] JSON-RPC:
- [ ] GraphQL:
- [ ] CLI:
- [ ] Rust SDK:
- [ ] REST API:

---------

Signed-off-by: salaheldinsoliman <salaheldin_sameh@aucegypt.edu>
Signed-off-by: Roman Overko <roman.overko@iota.org>

295 of 332 new or added lines in 2 files covered. (88.86%)

62 existing lines in 7 files now uncovered.

228708 of 347300 relevant lines covered (65.85%)

2267190.75 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
37
86.45
5.29% crates/iota-core/src/congestion_tracker.rs

Uncovered Existing Lines

Lines Coverage ∆ File
1
97.92
-1.04% crates/iota-surfer/src/surfer_task.rs
1
84.38
2.34% crates/iota-surfer/src/surf_strategy.rs
2
93.22
-0.15% crates/starfish/core/src/transactions_synchronizer.rs
3
74.83
-0.11% crates/iota-types/src/crypto.rs
5
91.94
-0.73% crates/iota-core/src/transaction_manager.rs
6
53.51
-1.36% crates/iota-core/src/storage.rs
44
93.44
0.22% crates/iota-protocol-config/src/lib.rs
Jobs
ID Job ID Ran Files Coverage
1 nextest+simtest - 17420368135.1 03 Sep 2025 03:53AM UTC 1419
65.84
GitHub Action Run
Source Files on build 17420368135
  • Tree
  • List 1417
  • Changed 22
  • Source Changed 3
  • Coverage Changed 22
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #17420368135
  • ac465ec8 on github
  • Prev Build on develop (#17390664841)
  • Next Build on develop (#17450599605)
  • 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