May 11, 9-10 AM (77)
May 11, 10-11 AM (58)
May 11, 11-12 PM (78)
May 11, 12-1 PM (84)
May 11, 1-2 PM (102)
May 11, 2-3 PM (41)
May 11, 3-4 PM (27)
May 11, 4-5 PM (24)
May 11, 5-6 PM (26)
May 11, 6-7 PM (42)
May 11, 7-8 PM (53)
May 11, 8-9 PM (57)
May 11, 9-10 PM (22)
May 11, 10-11 PM (49)
May 11, 11-12 AM (19)
May 12, 12-1 AM (2)
May 12, 1-2 AM (2)
May 12, 2-3 AM (3)
May 12, 3-4 AM (4)
May 12, 4-5 AM (8)
May 12, 5-6 AM (11)
May 12, 6-7 AM (17)
May 12, 7-8 AM (25)
May 12, 8-9 AM (26)
May 12, 9-10 AM (35)
May 12, 10-11 AM (82)
May 12, 11-12 PM (98)
May 12, 12-1 PM (38)
May 12, 1-2 PM (69)
May 12, 2-3 PM (54)
May 12, 3-4 PM (41)
May 12, 4-5 PM (57)
May 12, 5-6 PM (40)
May 12, 6-7 PM (24)
May 12, 7-8 PM (24)
May 12, 8-9 PM (18)
May 12, 9-10 PM (8)
May 12, 10-11 PM (40)
May 12, 11-12 AM (19)
May 13, 12-1 AM (10)
May 13, 1-2 AM (2)
May 13, 2-3 AM (5)
May 13, 3-4 AM (2)
May 13, 4-5 AM (5)
May 13, 5-6 AM (29)
May 13, 6-7 AM (52)
May 13, 7-8 AM (43)
May 13, 8-9 AM (44)
May 13, 9-10 AM (21)
May 13, 10-11 AM (22)
May 13, 11-12 PM (47)
May 13, 12-1 PM (25)
May 13, 1-2 PM (44)
May 13, 2-3 PM (57)
May 13, 3-4 PM (42)
May 13, 4-5 PM (33)
May 13, 5-6 PM (30)
May 13, 6-7 PM (51)
May 13, 7-8 PM (33)
May 13, 8-9 PM (9)
May 13, 9-10 PM (24)
May 13, 10-11 PM (30)
May 13, 11-12 AM (11)
May 14, 12-1 AM (18)
May 14, 1-2 AM (3)
May 14, 2-3 AM (4)
May 14, 3-4 AM (21)
May 14, 4-5 AM (11)
May 14, 5-6 AM (18)
May 14, 6-7 AM (18)
May 14, 7-8 AM (47)
May 14, 8-9 AM (53)
May 14, 9-10 AM (35)
May 14, 10-11 AM (20)
May 14, 11-12 PM (114)
May 14, 12-1 PM (54)
May 14, 1-2 PM (151)
May 14, 2-3 PM (32)
May 14, 3-4 PM (17)
May 14, 4-5 PM (14)
May 14, 5-6 PM (37)
May 14, 6-7 PM (12)
May 14, 7-8 PM (22)
May 14, 8-9 PM (37)
May 14, 9-10 PM (35)
May 14, 10-11 PM (27)
May 14, 11-12 AM (14)
May 15, 12-1 AM (18)
May 15, 1-2 AM (15)
May 15, 2-3 AM (5)
May 15, 3-4 AM (3)
May 15, 4-5 AM (13)
May 15, 5-6 AM (14)
May 15, 6-7 AM (10)
May 15, 7-8 AM (31)
May 15, 8-9 AM (23)
May 15, 9-10 AM (52)
May 15, 10-11 AM (71)
May 15, 11-12 PM (70)
May 15, 12-1 PM (73)
May 15, 1-2 PM (73)
May 15, 2-3 PM (66)
May 15, 3-4 PM (26)
May 15, 4-5 PM (12)
May 15, 5-6 PM (30)
May 15, 6-7 PM (29)
May 15, 7-8 PM (25)
May 15, 8-9 PM (8)
May 15, 9-10 PM (34)
May 15, 10-11 PM (34)
May 15, 11-12 AM (25)
May 16, 12-1 AM (2)
May 16, 1-2 AM (2)
May 16, 2-3 AM (3)
May 16, 3-4 AM (3)
May 16, 4-5 AM (0)
May 16, 5-6 AM (6)
May 16, 6-7 AM (2)
May 16, 7-8 AM (10)
May 16, 8-9 AM (1)
May 16, 9-10 AM (2)
May 16, 10-11 AM (1)
May 16, 11-12 PM (13)
May 16, 12-1 PM (11)
May 16, 1-2 PM (8)
May 16, 2-3 PM (15)
May 16, 3-4 PM (10)
May 16, 4-5 PM (2)
May 16, 5-6 PM (2)
May 16, 6-7 PM (2)
May 16, 7-8 PM (10)
May 16, 8-9 PM (6)
May 16, 9-10 PM (4)
May 16, 10-11 PM (27)
May 16, 11-12 AM (42)
May 17, 12-1 AM (7)
May 17, 1-2 AM (1)
May 17, 2-3 AM (0)
May 17, 3-4 AM (1)
May 17, 4-5 AM (0)
May 17, 5-6 AM (3)
May 17, 6-7 AM (2)
May 17, 7-8 AM (1)
May 17, 8-9 AM (1)
May 17, 9-10 AM (1)
May 17, 10-11 AM (6)
May 17, 11-12 PM (6)
May 17, 12-1 PM (4)
May 17, 1-2 PM (5)
May 17, 2-3 PM (9)
May 17, 3-4 PM (4)
May 17, 4-5 PM (8)
May 17, 5-6 PM (14)
May 17, 6-7 PM (9)
May 17, 7-8 PM (1)
May 17, 8-9 PM (4)
May 17, 9-10 PM (2)
May 17, 10-11 PM (20)
May 17, 11-12 AM (13)
May 18, 12-1 AM (10)
May 18, 1-2 AM (4)
May 18, 2-3 AM (5)
May 18, 3-4 AM (9)
May 18, 4-5 AM (14)
May 18, 5-6 AM (2)
May 18, 6-7 AM (37)
May 18, 7-8 AM (28)
May 18, 8-9 AM (25)
May 18, 9-10 AM (19)
4,132 commits this week May 11, 2026 - May 18, 2026
Leios voting: LeiosVoteState + leiosVoting thread + threadnet test
Add the voting capability on top of the diffusion layer: an EB
becomes eligible for certification once enough peers have voted
'yes' on it (via the 'MsgLeiosVotes' message on the LeiosNotify
protocol from the previous chunk).

Voting state
- 'LeiosVoteState' (new module) — aggregated vote state across all
  peers, with 'addVote' / 'subscribeVotes' write/read API.
- 'NodeKernel.getLeiosVoteState' field plus the
  'NodeKernelArgs.leiosVotingKey' / 'NodeKernel.leiosVoting' background
  thread that subscribes to local 'AcquiredEbTxs' notifications and
  emits one vote per acquired EB.

LeiosNotify wiring
- The 'MsgLeiosVotes' server case now calls 'addVote' on each
  incoming vote (replacing the chunk-2 no-op stub).
- The notify server multiplexes EB offers with a 'processVote' loop
  that drains 'subscribeVotes leiosVoteState' and publishes
  'MsgLeiosVotes' to peers.

Tests
- 'Test.LeiosVoteState' (foundation-level unit tests).
- 'Test.ThreadNet.Leios' — end-to-end threadnet driver that asserts
  cert blocks happen, no vacuous runs, gap > 'minCertificationGap',
  all nodes converge, and the post-resolve replay matches the live
  ledger.

cabal
- Exposes 'LeiosVoteState'; wires 'Test.LeiosVoteState' /
  'Test.ThreadNet.Leios' into the test suites.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
Leios demo: ImmDBServer schedule-driven Leios + schedule generator
Adapt the ImmDBServer tool to drive a Leios demo from a pre-recorded
schedule: replay EBs / cert-blocks at slot timestamps and serve them
over the LeiosNotify / LeiosFetch mini-protocols introduced in the
diffusion chunk. The actual schedule generator lives at
'ouroboros-consensus/app/leios-schedule-gen.hs' (committed with the
diffusion chunk for cabal layout reasons).

- 'immdb-server' grows --leios-db / --leios-schedule / --initial-slot
  / --initial-time / --address.
- 'Cardano.Tools.ImmDBServer.Diffusion' adds the LeiosSchedule type
  and a scheduler thread that ticks through schedule entries.
- 'Cardano.Tools.ImmDBServer.MiniProtocols' grows LeiosNotify /
  LeiosFetch responders, send/recv tracers, and a slot-delay aware
  chainSyncServer.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
feat(5243): plumb ledger minting through tx builders
Add toLedgerMintValue for wallet mint/burn TokenMaps and feed the signed ledger MultiAsset through mkTransactionLedger, constructUnsignedTxLedger, buildLedgerTx, and buildLedgerTxRaw.

The converter properties cover totality, empty input, mint-only, burn-only, netting, phantom-key absence, empty-bucket absence, and disjoint roundtrip. The builder specs cover buildLedgerTx and both buildLedgerTxRaw input branches.

Verification:

cabal test cardano-wallet-primitive:test -O0 -v0 --test-show-details=streaming --test-options='--match toLedgerMintValue'

cabal test cardano-wallet-unit:unit -O0 -v0 --test-show-details=streaming --test-options='--match explicit'

fourmolu --mode check touched Haskell files

git diff --check
testnet(amaru): add epoch240 variant pointing at rebased amaru fork
Adds a new cardano_amaru_epoch240 testnet variant and bumps both 240
and 360 docker-compose to the rebased amaru-bootstrap-producer image
(:bab6ba6...). That image was built locally from
lambdasistemi/amaru-bootstrap#42 and pushed to GHCR manually because
the bootstrap CI's Live Bootstrap Producer step is currently blocked
by an upstream supranational/blst tarball content shift (same rev,
different content) — orthogonal to the amaru rebase.

The amaru fork at SHA 3ac5d14e rebases the existing 11-patch stack
(runtime testnet params, era-history flags, ledger rotation / forecast
/ saturation fixes) onto pragma-org/amaru@bc90e534 — 65 commits ahead
of the prior fork base 75e8a8c4.

Purpose: verify the rebased patch stack still produces an
Antithesis-consumable bundle and that amaru runs cleanly against it.