Week 36 · 2026
Aug 31 – Sep 6, 2026 · gathered Sep 7, 2026
- 2
- PRs merged
- 3
- PRs opened
- 2
- Closed
- 2
- Opened
- 2
- Releases
- 3
- Repos
- 23
- Commits
- 4
- Comments
Highlights
A quiet week by the counters (2 PRs merged, 3 opened, 23 commits, two issues opened and two closed) but a loud one in substance: Hydra 2.4.0 shipped on Tuesday, and 2.4.1, a security release, superseded it on Wednesday. Anyone running 2.3.0 or 2.4.0 should upgrade to 2.4.1 immediately.
Reactive. Hydra 2.4.0 is the first release since 2.3.0 (W29). Its
headline is a pair of security fixes to incremental commits: a snapshot now
identifies exactly which deposit it approves and the on-chain validators
enforce it, so an increment can only claim the deposit the parties actually
signed, and a recover transaction can only spend a single deposit. Those
fixes change the Hydra scripts and the snapshot signature payload, so the
upgrade is breaking: open heads must be closed and fanned out first, and the
persisted hydra.db migrates to CBOR on first start with no downgrade path.
The rest of the release is this quarter's work as covered in these notes:
the CBOR database and opt-in binary client API (W34), the Blockfrost
speedups (W33, W35), linux/arm64 docker images (W35), the Typst/Agda
specification (W35), the etcd crash under sustained load (W33) and log
flushing (W35), plus close transactions on large heads no longer missing
their validity window, layer 2 validity bounds working past the era-history
forecast horizon on long-running nodes, unclaimable deposits rejected up
front with a new DepositTooLarge error, and deposit validity windows no
longer capped at a flat 100 seconds (the operator-precedence quirk found in
the timing analysis for #2850, which fixed it). Configuration changes to
note: --deposit-period is now a protocol parameter embedded on-chain at
init and must be identical across parties, the new --deposit-activation
flag separately controls when deposits become active, SyncedStatusReport
is gone from the WebSocket API, hydra-tui renamed --cardano-signing-key
to --funds-signing-key, and the --blockfrost-retry-timeout and
--blockfrost-query-timeout options are gone, with command lines and
config files still using them rejected.
A day later, 2.4.1 replaced it and 2.4.0 was marked deprecated. When confirming a snapshot, hydra-node re-applied the requested transactions through an optimized path that skipped signature verification and Plutus script evaluation, on the assumption they had been validated on receipt; an unvalidated transaction could reach that path, so a malicious head participant could get a transaction with an invalid signature or failing script into a confirmed snapshot and steal funds (GHSA-cg83-6w6r-6hx3). 2.4.1 removes the optimization: transactions are now always fully validated, signatures and scripts included, when processing a snapshot request. It is a drop-in replacement for 2.4.0, with the Hydra scripts, snapshot signature and database format unchanged.
All three PRs opened last week have now merged: the smoke-test speedup
(#2850, Tuesday), the mixed-value fanout generators (#2851, Thursday), and
the partial-fanout chunk-size search (#2849, Monday after the week closed).
All three were described in W35. Of this week's three: the
Commit/DecommitFinalized rollback fix (#2852) closes a gap in deposit
rollback recovery (#2741) where CommitFinalized clears the deposit id and
drops the pending deposit, so a chain rollback past the increment
transaction leaves the node with nothing to re-post; #2854 moves isolated
functionality out of the core packages into seven new libs/ packages
(event sourcing, a persistent queue, JSON tracing, labelled io-classes,
tagged CBOR encoding, secret handling and test port allocation), 146 files,
merged the following Monday; and #2856 is an experiment raising
maxTxsPerSnapshot from 1000 to 4000 and putting it through the PR
benchmarks, following the cap sweep for #2455 that found 2.7x the
saturation throughput at that value (opened Friday).
Issue-wise, #1585, the 2024 request for binary protocols on disk and the wire, was closed as delivered by 2.4.1, and #2824, the Blockfrost speedup follow-up, as done; #2853 proposes watchtower checkpoints, and #2855 reports a head wedging in FanoutProgress when a client selects the whole remainder.
Maintenance and DevX (M5). hydra-explorer deployment housekeeping after last week's EC2 redeploy: its secrets are now managed with agenix.
KPI & Outcome Achievement (M6). Routine only: the W35 note published.
Activity
Merged PRs, issues, and releases grouped by deliverable — the evidence behind the narrative above.
Other / Reactive
- MergedGenerate non-ada UTxO in the fanout property testscardano-scaling/hydra · @vrom911
- MergedSpeed up smoke testscardano-scaling/hydra · @noonio
- PR openedSee what 4k looks like on the PR benchmarkscardano-scaling/hydra · @noonio
- PR openedExperiment in moving some code out into libscardano-scaling/hydra · @noonio
- PR openedCommit/DecommitFinalized rollbackcardano-scaling/hydra · @v0d1ch
- Release2.4.1cardano-scaling/hydra · @v0d1ch
- Release2.4.0cardano-scaling/hydra · @v0d1ch
18 commits · cardano-scaling/hydra
M5 Maintenance and DevX
In progress3 commits · cardano-scaling/hydra-explorer
M6 KPI & Outcome Achievement
Not started2 commits · cardano-scaling/hydra-updates
M3 Operational Excellence
In progress- Issue openedHead can wedge in FanoutProgress when a client selects the whole remaindercardano-scaling/hydra · @vrom911
- Issue openedFeature: watchtower checkpoints — non-custodial operator heads for external userscardano-scaling/hydra · @v0d1ch
- Issue closedFollow-up on Blockfrost speedupscardano-scaling/hydra · @noonio
M2 Performance
Done- Issue closedBinary Protocols for disk storage and websocketcardano-scaling/hydra · @Quantumplation