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

iotaledger / iota
69%

Build:
DEFAULT BRANCH: develop
Repo Added 25 Nov 2024 10:41AM UTC
Token yKKuQEyCdK2Zjpx0P9aXmMMadtLkrfmxk regen
Build 551 Last
Files 1123
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

LAST BUILD ON BRANCH develop
branch: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • claude/gallant-tesla-ciku68
  • dev-tools/fix-toolchain
  • dev-tools/include-external-crates-coverage
  • dev-tools/reenable-coverage-ci
  • develop

27 Jul 2026 07:04PM UTC coverage: 68.777% (-0.5%) from 69.308%
30320534718

push

github

web-flow
fix(iota-grpc-server): feed embedded batch errors into the traffic-control error policy (#12131)

# Description of change

The e2e migration of the traffic-control tests off the node JSON-RPC
(#12130) surfaced gaps in the fullnode gRPC traffic control around
**batch APIs**:

1. **Embedded per-item errors never fed the error policy.** Batch APIs
report per-item failures as `google.rpc.Status` values embedded inside
an otherwise *successful* gRPC response. The `TrafficControlLayer`
derives its tally from the transport-level status only, so a client
spamming e.g. invalid transactions produced `Code::Ok` tallies and could
never be error-blocked.
2. **A batch counted as a single request under the spam policy**,
regardless of how many items it carried — so a client could dilute its
request rate simply by batching.

(The first gap was originally misdiagnosed as a headers-vs-trailers
issue; the `handler_errors_feed_the_error_policy` test shows unary
handler errors *are* visible to the layer — tonic returns them as a
trailers-only response, so `grpc-status` is in the HTTP headers. The
real blind spot is the batch response body.)

## Fix

- `TrafficControlLayer` injects a `TallyHandle` (client IP + traffic
controller) into the request extensions.
- Batch handlers report **each item** through the handle: every item
counts as one request for the spam policy and, on a client error, feeds
the error policy. The layer skips its default per-request tally when a
handler has accounted for the items (no double counting).
- Endpoints covered:
- `ExecuteTransactions`, `SimulateTransactions` — unary; tallied per
response item.
- `GetObjects`, `GetTransactions` — server-streaming; tallied per item
as the response stream is consumed. Per-item read failures ride inside
`Ok` responses and are tallied as `Code::Ok` (a client cannot know an
object or transaction was pruned), so they feed the spam policy only. A
stream-level error (e.g. a single item exceeding the request's messag... (continued)

79 of 89 new or added lines in 4 files covered. (88.76%)

3131 existing lines in 88 files now uncovered.

168080 of 244384 relevant lines covered (68.78%)

459535.24 hits per line

Relevant lines Covered
Build:
Build:
244384 RELEVANT LINES 168080 COVERED LINES
459535.24 HITS PER LINE
Source Files on develop
  • Tree
  • List 1123
  • Changed 109
  • Source Changed 44
  • Coverage Changed 102
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
30320534718 develop fix(iota-grpc-server): feed embedded batch errors into the traffic-control error policy (#12131) # Description of change The e2e migration of the traffic-control tests off the node JSON-RPC (#12130) surfaced gaps in the fullnode gRPC traffic con... push 28 Jul 2026 02:30AM UTC web-flow github
68.78
30230091073 develop feat(iota-node,iota-swarm-config): submit deny rule proposals on startup and epoch change (#12221) (#12232) # Description of change Part of #10749. Validators now announce their local `TransactionDenyConfig` as a `DenyRuleProposal` through conse... push 27 Jul 2026 02:29AM UTC web-flow github
69.31
30183072700 develop feat(iota-node,iota-swarm-config): submit deny rule proposals on startup and epoch change (#12221) (#12232) push 26 Jul 2026 02:28AM UTC GitHub github
69.3
30138718525 develop feat(iota-node,iota-swarm-config): submit deny rule proposals on startup and epoch change (#12221) (#12232) # Description of change Part of #10749. Validators now announce their local `TransactionDenyConfig` as a `DenyRuleProposal` through conse... push 25 Jul 2026 02:41AM UTC web-flow github
69.32
30059281414 develop feat(iota-core): use governance deny rules in post-consensus validation (#12220) (#12231) push 24 Jul 2026 02:31AM UTC GitHub github
69.13
29972112380 develop feat: bump iota-move-vs-code to v1.4.0 (#12399) # Description of change bump iota-move-vs-code to v1.4.0 push 23 Jul 2026 03:27AM UTC web-flow github
68.54
29883424813 develop refactor: replace SignatureScheme with the SDK enum (#12342) # Description of change Replaces the node's `SignatureScheme` enum with a re-export of `iota_sdk_types::SignatureScheme` (part of #11590; flag bytes and lowercase display strings alrea... push 22 Jul 2026 02:40AM UTC web-flow github
69.08
29793442693 develop feat(ci): use merge queues (#12322) # Description of change ## Motivation Heavy CI (Rust tests + simtests, split-cluster compatibility checks) currently runs on every non-draft PR push. Contributors pushing several commits in a row saturate the... push 21 Jul 2026 02:40AM UTC web-flow github
68.84
29711150958 develop feat(starfish-config): reduce default soft_leader_timeout to 5 ms (#12298) # Description of change Reduce the default StarfishSpeed `soft_leader_timeout` from 100 ms to 5 ms. Local operational parameter only — no protocol version change; per-aut... push 20 Jul 2026 03:10AM UTC web-flow github
68.82
29668768143 develop feat(starfish-config): reduce default soft_leader_timeout to 5 ms (#12298) # Description of change Reduce the default StarfishSpeed `soft_leader_timeout` from 100 ms to 5 ms. Local operational parameter only — no protocol version change; per-aut... push 19 Jul 2026 02:32AM UTC web-flow github
68.82
See All Builds (550)

Badge your Repo: iota

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

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

Refresh
  • Settings
  • Repo on GitHub
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