Jun 16, 1-2 PM (49)
Jun 16, 2-3 PM (34)
Jun 16, 3-4 PM (28)
Jun 16, 4-5 PM (37)
Jun 16, 5-6 PM (17)
Jun 16, 6-7 PM (26)
Jun 16, 7-8 PM (9)
Jun 16, 8-9 PM (11)
Jun 16, 9-10 PM (4)
Jun 16, 10-11 PM (31)
Jun 16, 11-12 AM (9)
Jun 17, 12-1 AM (8)
Jun 17, 1-2 AM (8)
Jun 17, 2-3 AM (11)
Jun 17, 3-4 AM (4)
Jun 17, 4-5 AM (1)
Jun 17, 5-6 AM (6)
Jun 17, 6-7 AM (99)
Jun 17, 7-8 AM (33)
Jun 17, 8-9 AM (23)
Jun 17, 9-10 AM (56)
Jun 17, 10-11 AM (18)
Jun 17, 11-12 PM (19)
Jun 17, 12-1 PM (57)
Jun 17, 1-2 PM (28)
Jun 17, 2-3 PM (37)
Jun 17, 3-4 PM (26)
Jun 17, 4-5 PM (19)
Jun 17, 5-6 PM (16)
Jun 17, 6-7 PM (10)
Jun 17, 7-8 PM (14)
Jun 17, 8-9 PM (12)
Jun 17, 9-10 PM (37)
Jun 17, 10-11 PM (29)
Jun 17, 11-12 AM (14)
Jun 18, 12-1 AM (12)
Jun 18, 1-2 AM (8)
Jun 18, 2-3 AM (5)
Jun 18, 3-4 AM (11)
Jun 18, 4-5 AM (11)
Jun 18, 5-6 AM (11)
Jun 18, 6-7 AM (10)
Jun 18, 7-8 AM (20)
Jun 18, 8-9 AM (83)
Jun 18, 9-10 AM (45)
Jun 18, 10-11 AM (51)
Jun 18, 11-12 PM (23)
Jun 18, 12-1 PM (67)
Jun 18, 1-2 PM (14)
Jun 18, 2-3 PM (53)
Jun 18, 3-4 PM (44)
Jun 18, 4-5 PM (64)
Jun 18, 5-6 PM (24)
Jun 18, 6-7 PM (21)
Jun 18, 7-8 PM (13)
Jun 18, 8-9 PM (17)
Jun 18, 9-10 PM (23)
Jun 18, 10-11 PM (30)
Jun 18, 11-12 AM (26)
Jun 19, 12-1 AM (13)
Jun 19, 1-2 AM (9)
Jun 19, 2-3 AM (5)
Jun 19, 3-4 AM (2)
Jun 19, 4-5 AM (11)
Jun 19, 5-6 AM (4)
Jun 19, 6-7 AM (92)
Jun 19, 7-8 AM (18)
Jun 19, 8-9 AM (38)
Jun 19, 9-10 AM (39)
Jun 19, 10-11 AM (27)
Jun 19, 11-12 PM (30)
Jun 19, 12-1 PM (53)
Jun 19, 1-2 PM (66)
Jun 19, 2-3 PM (32)
Jun 19, 3-4 PM (61)
Jun 19, 4-5 PM (9)
Jun 19, 5-6 PM (4)
Jun 19, 6-7 PM (17)
Jun 19, 7-8 PM (16)
Jun 19, 8-9 PM (11)
Jun 19, 9-10 PM (45)
Jun 19, 10-11 PM (30)
Jun 19, 11-12 AM (8)
Jun 20, 12-1 AM (4)
Jun 20, 1-2 AM (0)
Jun 20, 2-3 AM (4)
Jun 20, 3-4 AM (1)
Jun 20, 4-5 AM (8)
Jun 20, 5-6 AM (6)
Jun 20, 6-7 AM (6)
Jun 20, 7-8 AM (6)
Jun 20, 8-9 AM (2)
Jun 20, 9-10 AM (2)
Jun 20, 10-11 AM (0)
Jun 20, 11-12 PM (2)
Jun 20, 12-1 PM (7)
Jun 20, 1-2 PM (1)
Jun 20, 2-3 PM (9)
Jun 20, 3-4 PM (11)
Jun 20, 4-5 PM (1)
Jun 20, 5-6 PM (0)
Jun 20, 6-7 PM (2)
Jun 20, 7-8 PM (8)
Jun 20, 8-9 PM (7)
Jun 20, 9-10 PM (0)
Jun 20, 10-11 PM (17)
Jun 20, 11-12 AM (5)
Jun 21, 12-1 AM (14)
Jun 21, 1-2 AM (0)
Jun 21, 2-3 AM (1)
Jun 21, 3-4 AM (0)
Jun 21, 4-5 AM (1)
Jun 21, 5-6 AM (0)
Jun 21, 6-7 AM (9)
Jun 21, 7-8 AM (1)
Jun 21, 8-9 AM (2)
Jun 21, 9-10 AM (2)
Jun 21, 10-11 AM (1)
Jun 21, 11-12 PM (2)
Jun 21, 12-1 PM (0)
Jun 21, 1-2 PM (17)
Jun 21, 2-3 PM (4)
Jun 21, 3-4 PM (10)
Jun 21, 4-5 PM (4)
Jun 21, 5-6 PM (8)
Jun 21, 6-7 PM (7)
Jun 21, 7-8 PM (19)
Jun 21, 8-9 PM (0)
Jun 21, 9-10 PM (1)
Jun 21, 10-11 PM (15)
Jun 21, 11-12 AM (15)
Jun 22, 12-1 AM (12)
Jun 22, 1-2 AM (6)
Jun 22, 2-3 AM (9)
Jun 22, 3-4 AM (4)
Jun 22, 4-5 AM (2)
Jun 22, 5-6 AM (29)
Jun 22, 6-7 AM (17)
Jun 22, 7-8 AM (49)
Jun 22, 8-9 AM (90)
Jun 22, 9-10 AM (53)
Jun 22, 10-11 AM (64)
Jun 22, 11-12 PM (74)
Jun 22, 12-1 PM (47)
Jun 22, 1-2 PM (56)
Jun 22, 2-3 PM (119)
Jun 22, 3-4 PM (46)
Jun 22, 4-5 PM (49)
Jun 22, 5-6 PM (29)
Jun 22, 6-7 PM (33)
Jun 22, 7-8 PM (13)
Jun 22, 8-9 PM (13)
Jun 22, 9-10 PM (11)
Jun 22, 10-11 PM (32)
Jun 22, 11-12 AM (36)
Jun 23, 12-1 AM (18)
Jun 23, 1-2 AM (18)
Jun 23, 2-3 AM (23)
Jun 23, 3-4 AM (11)
Jun 23, 4-5 AM (13)
Jun 23, 5-6 AM (30)
Jun 23, 6-7 AM (27)
Jun 23, 7-8 AM (33)
Jun 23, 8-9 AM (28)
Jun 23, 9-10 AM (38)
Jun 23, 10-11 AM (60)
Jun 23, 11-12 PM (44)
Jun 23, 12-1 PM (12)
Jun 23, 1-2 PM (0)
3,638 commits this week Jun 16, 2026 - Jun 23, 2026
fix: sync with leios prototype-2026w25 (#2600)
Disable and remove parts of the merged CIP-0164 support for Linear Leios
to mimic what the Haskell reference node has implemented.

- Enabled Dijkstra and Leios networking automatically for -n leios / magic
  164, not just runMode: leios or startEra:  dijkstra, in config.go:373.
- Split Leios protocol knobs so the standalone leios-votes mini-protocol is
  disabled against prototype peers, while votes are handled inline over
  leios-notify; wired this in node.go:220 and ouroboros/ouroboros.go:130.
- Changed EB handling so a MsgBlockOffer fetches and stores only the EB
  manifest; transaction bodies are fetched only after MsgBlockTxsOffer, because
  fetching earlier resets the prototype relay connection in
  ouroboros/leiosnotify.go:270.
- Added batched EB transaction fetching: one 64-tx bitmap window at a time,
  re-requesting missing txs, using response bitmaps when present and prefix
  fallback when absent in ouroboros/leiosnotify.go:454.
- Routed pushed full votes from MsgVotesOffer.FullVotes into the Leios vote
  manager in ouroboros/leiosnotify.go:412.
- Stopped trying to merge/splice endorser txs into ranking-block CBOR; the
  ranking block’s body hash covers only its own body. Instead, Dingo resolves
  the EB from the Dijkstra header extension and exposes cached EB txs to ledger
  via EndorserBlockTxsByHash in ouroboros/leios_merged.go:263.
- Added ledger-side EB application: decode standalone EB transactions, persist
  their CBOR as a standalone blob with DOFF offsets, apply their UTxO effects
  before the referencing ranking block, and record metadata under the ranking
  block so rollback removes it in ledger/leios_apply.go:38.
- Adjusted Dijkstra validation: run per-tx validation only when the referenced
  EB was applied; otherwise skip because historical/current missing EBs make
  inputs unresolvable. Validation disagreements on EB-applied Dijkstra blocks
  are logged and trusted for now in ledger/state.go:3523.
- Added sync recovery fixes for Leios-style one-relay sync: local ledger
  reconcile on plateau before recycling peers, and no recycling when there is
  only one eligible upstream in node_chainsync_recycler.go:184.
- Fixed deep rollback cleanup for SQLite by chunking deleted transaction hash
  lists so rollback does not exceed SQLite bind-variable limits in
  database/plugin/metadata/sqlite/transaction.go:4633.

Signed-off-by: Chris Gianelloni <[email protected]>
Peras: Add asserts in the implForgeCert (#2038)
There is a chance that incompatible ordering functions may be passed to
the `verifyCert`. And we need to catch this problem sooner and prevent
from building incorrect cert with mismatched amount of votes, so we add
a check that the size of the deduplicated voters and certs is the same.

See https://github.com/tweag/cardano-peras/issues/240 for the deeper
discussion.
Generate suggested recovery phrase with the system CSPRNG (#5298)
The personal wallet UI recovery-phrase suggestion (`pickMnemonic`) now
draws entropy from `Cardano.Mnemonic.genEntropy`, matching how the
wallet API and CLI generate recovery phrases.

The handler type `pickMnemonic :: Int -> Maybe Bool -> IO (Maybe
[Text])` is unchanged, so the New Wallet "Hint" button behaviour is the
same.