Jun 01, 6-7 PM (32)
Jun 01, 7-8 PM (37)
Jun 01, 8-9 PM (9)
Jun 01, 9-10 PM (12)
Jun 01, 10-11 PM (30)
Jun 01, 11-12 AM (22)
Jun 02, 12-1 AM (13)
Jun 02, 1-2 AM (8)
Jun 02, 2-3 AM (5)
Jun 02, 3-4 AM (14)
Jun 02, 4-5 AM (10)
Jun 02, 5-6 AM (43)
Jun 02, 6-7 AM (32)
Jun 02, 7-8 AM (58)
Jun 02, 8-9 AM (65)
Jun 02, 9-10 AM (28)
Jun 02, 10-11 AM (19)
Jun 02, 11-12 PM (15)
Jun 02, 12-1 PM (47)
Jun 02, 1-2 PM (66)
Jun 02, 2-3 PM (97)
Jun 02, 3-4 PM (23)
Jun 02, 4-5 PM (17)
Jun 02, 5-6 PM (27)
Jun 02, 6-7 PM (29)
Jun 02, 7-8 PM (18)
Jun 02, 8-9 PM (9)
Jun 02, 9-10 PM (19)
Jun 02, 10-11 PM (33)
Jun 02, 11-12 AM (22)
Jun 03, 12-1 AM (13)
Jun 03, 1-2 AM (31)
Jun 03, 2-3 AM (16)
Jun 03, 3-4 AM (0)
Jun 03, 4-5 AM (7)
Jun 03, 5-6 AM (12)
Jun 03, 6-7 AM (80)
Jun 03, 7-8 AM (16)
Jun 03, 8-9 AM (24)
Jun 03, 9-10 AM (22)
Jun 03, 10-11 AM (39)
Jun 03, 11-12 PM (76)
Jun 03, 12-1 PM (93)
Jun 03, 1-2 PM (28)
Jun 03, 2-3 PM (62)
Jun 03, 3-4 PM (26)
Jun 03, 4-5 PM (24)
Jun 03, 5-6 PM (23)
Jun 03, 6-7 PM (15)
Jun 03, 7-8 PM (17)
Jun 03, 8-9 PM (19)
Jun 03, 9-10 PM (9)
Jun 03, 10-11 PM (31)
Jun 03, 11-12 AM (14)
Jun 04, 12-1 AM (12)
Jun 04, 1-2 AM (4)
Jun 04, 2-3 AM (1)
Jun 04, 3-4 AM (5)
Jun 04, 4-5 AM (1)
Jun 04, 5-6 AM (0)
Jun 04, 6-7 AM (14)
Jun 04, 7-8 AM (10)
Jun 04, 8-9 AM (11)
Jun 04, 9-10 AM (19)
Jun 04, 10-11 AM (11)
Jun 04, 11-12 PM (14)
Jun 04, 12-1 PM (53)
Jun 04, 1-2 PM (39)
Jun 04, 2-3 PM (60)
Jun 04, 3-4 PM (12)
Jun 04, 4-5 PM (4)
Jun 04, 5-6 PM (7)
Jun 04, 6-7 PM (46)
Jun 04, 7-8 PM (27)
Jun 04, 8-9 PM (4)
Jun 04, 9-10 PM (2)
Jun 04, 10-11 PM (24)
Jun 04, 11-12 AM (7)
Jun 05, 12-1 AM (6)
Jun 05, 1-2 AM (8)
Jun 05, 2-3 AM (1)
Jun 05, 3-4 AM (1)
Jun 05, 4-5 AM (1)
Jun 05, 5-6 AM (5)
Jun 05, 6-7 AM (9)
Jun 05, 7-8 AM (12)
Jun 05, 8-9 AM (8)
Jun 05, 9-10 AM (11)
Jun 05, 10-11 AM (12)
Jun 05, 11-12 PM (8)
Jun 05, 12-1 PM (52)
Jun 05, 1-2 PM (61)
Jun 05, 2-3 PM (26)
Jun 05, 3-4 PM (24)
Jun 05, 4-5 PM (17)
Jun 05, 5-6 PM (7)
Jun 05, 6-7 PM (14)
Jun 05, 7-8 PM (10)
Jun 05, 8-9 PM (6)
Jun 05, 9-10 PM (2)
Jun 05, 10-11 PM (20)
Jun 05, 11-12 AM (9)
Jun 06, 12-1 AM (6)
Jun 06, 1-2 AM (0)
Jun 06, 2-3 AM (3)
Jun 06, 3-4 AM (4)
Jun 06, 4-5 AM (0)
Jun 06, 5-6 AM (24)
Jun 06, 6-7 AM (1)
Jun 06, 7-8 AM (2)
Jun 06, 8-9 AM (3)
Jun 06, 9-10 AM (0)
Jun 06, 10-11 AM (3)
Jun 06, 11-12 PM (6)
Jun 06, 12-1 PM (2)
Jun 06, 1-2 PM (2)
Jun 06, 2-3 PM (2)
Jun 06, 3-4 PM (18)
Jun 06, 4-5 PM (1)
Jun 06, 5-6 PM (6)
Jun 06, 6-7 PM (0)
Jun 06, 7-8 PM (6)
Jun 06, 8-9 PM (0)
Jun 06, 9-10 PM (1)
Jun 06, 10-11 PM (27)
Jun 06, 11-12 AM (9)
Jun 07, 12-1 AM (14)
Jun 07, 1-2 AM (2)
Jun 07, 2-3 AM (0)
Jun 07, 3-4 AM (0)
Jun 07, 4-5 AM (1)
Jun 07, 5-6 AM (1)
Jun 07, 6-7 AM (3)
Jun 07, 7-8 AM (0)
Jun 07, 8-9 AM (0)
Jun 07, 9-10 AM (1)
Jun 07, 10-11 AM (2)
Jun 07, 11-12 PM (2)
Jun 07, 12-1 PM (5)
Jun 07, 1-2 PM (35)
Jun 07, 2-3 PM (2)
Jun 07, 3-4 PM (4)
Jun 07, 4-5 PM (2)
Jun 07, 5-6 PM (4)
Jun 07, 6-7 PM (0)
Jun 07, 7-8 PM (0)
Jun 07, 8-9 PM (17)
Jun 07, 9-10 PM (1)
Jun 07, 10-11 PM (21)
Jun 07, 11-12 AM (9)
Jun 08, 12-1 AM (9)
Jun 08, 1-2 AM (5)
Jun 08, 2-3 AM (3)
Jun 08, 3-4 AM (4)
Jun 08, 4-5 AM (2)
Jun 08, 5-6 AM (9)
Jun 08, 6-7 AM (5)
Jun 08, 7-8 AM (25)
Jun 08, 8-9 AM (35)
Jun 08, 9-10 AM (40)
Jun 08, 10-11 AM (24)
Jun 08, 11-12 PM (20)
Jun 08, 12-1 PM (40)
Jun 08, 1-2 PM (46)
Jun 08, 2-3 PM (29)
Jun 08, 3-4 PM (22)
Jun 08, 4-5 PM (11)
Jun 08, 5-6 PM (18)
Jun 08, 6-7 PM (0)
2,872 commits this week
Jun 01, 2026
-
Jun 08, 2026
fix(bootstrap): honor era-history sidecar when importing testnet tvar snapshots
The node-snapshot (tvar) import path derived the current era's epoch size from the network default (86400), ignoring custom-testnet genesis. Load the history.<slot>.<hash>.json sidecar (as the .cbor path already does via make_era_history) and use it to interpret the snapshot, but only for Testnet(_); public networks keep the snapshot-derived history unchanged. Signed-off-by: paolino <[email protected]>
fix(ledger): saturate epoch subtraction in stake distribution lookups
Two sites in amaru-ledger/src/state.rs were doing unchecked Epoch subtraction on a u64-backed Epoch, producing u64::MAX-1 (or panicking, depending on overflow checks) when the latest snapshot or the slot-derived current epoch was below the rewards/leader-schedule horizon (epoch < 2): - StakeDistributionObserver::get_pool: `current_epoch - 2` becomes saturating_sub(2). Headers validated very early in the chain (or with a custom era history that maps slots to low epoch numbers) no longer surface a misleading "no stake distribution available for pool access 18446744073709551614" — the error now correctly says "pool access 0" and points at a real missing snapshot. - initial_stake_distributions: `latest_epoch - Epoch::from(2)` and `- Epoch::from(1)` become saturating_sub(2) / saturating_sub(1). Bundles produced by amaru-bootstrap from cold-start short-epoch testnets (e.g. lambdasistemi/amaru-bootstrap#34's antithesis reproducer) where the most_recent_snapshot is epoch 0 or 1 no longer hit a u64 underflow on Ledger::new; for_epoch(0) is exercised normally and surfaces a sensible StoreError if the snapshot is genuinely absent. This is a defensive correctness improvement only — it does not change behaviour for any chain past epoch 2. Surfaced by the new live amaru-run consumer test in lambdasistemi/amaru-bootstrap#35. Signed-off-by: Paolo Veronelli <[email protected]> Signed-off-by: paolino <[email protected]>
fix(consensus): guard against ln(1-f) panic when active_slot_coeff >= 1
assert_leader_stake currently computes c = ln(1 - active_slot_coeff) unconditionally. For genesis params with activeSlotsCoeff = 1.0 (used by the antithesis short-epoch fixture in lambdasistemi/amaru-bootstrap and by the live consumer test in lambdasistemi/amaru-bootstrap#35) this is ln(0), and pallas-math's FixedDecimal::ln panics with "ln of a value in (-inf,0] is undefined". When f = 1, every slot is leader-elected with probability 1 — the leader-stake assertion is trivially satisfied for any pool with non-zero relative stake. Mirroring the pre-existing zero-active-stake guard added in b69fa13e, short-circuit to Ok before the ln call. The math is continuous at f -> 1 (exp(x*c) with c -> -inf collapses to 0, which is < recip_q, so the ordering is LT = Ok), so the guard does not change behaviour for any f < 1. Surfaced by the live amaru-run consumer test in lambdasistemi/amaru-bootstrap#35 once lambdasistemi/amaru#2 (saturating epoch subtraction) let header validation reach this code path on a cold-start short-epoch chain. Signed-off-by: Paolo Veronelli <[email protected]> Signed-off-by: paolino <[email protected]>
fix(ledger): forecast testnet stake distribution lookups
Port of lambdasistemi 36ea009c onto upstream/main's rewritten state.rs. Generated private testnets (db-synthesizer / amaru-bootstrap) can serve block headers from the next leader schedule before the stable ledger has materialized that epoch's snapshot. Add an opt-in forecast on StakeDistributionObserver::get_pool that falls back to the latest cached distribution when the requested epoch is strictly newer; only enabled for NetworkName::Testnet(_). Public networks (mainnet/preprod/preview) keep the existing strict lookup behaviour. Signed-off-by: paolino <[email protected]>
fix: avoid zero active stake panic in header validation
Signed-off-by: paolino <[email protected]>
feat: allow runtime testnet parameters
Signed-off-by: paolino <[email protected]>
feat(create-snapshots): add --targets-file and --cardano-db-dir for offline/testnet snapshots
Signed-off-by: paolino <[email protected]>
testnet(amaru): set epoch_length=256 so the stability window fits within an epoch
stability_window=3k/f=150 and randomness_stabilization_window=4k/f=200 must be smaller than the epoch; the previous epoch_length=120 made the rewards stake snapshot never stabilize in-epoch, so the relay died with RewardsSummaryNotReady at the first boundary. 256 clears both windows.
testnet(amaru): drop nonces.json gates; migrated producer bakes nonces into chain.db
chore: upgrade crate versions
* mithril-cardano-node-chain from `0.1.26` to `0.1.27` * mithril-dmq from `0.1.25` to `0.1.26` * mithril-end-to-end from `0.4.138` to `0.4.139` * mithril-infra/assets/infra.version from `0.5.15` to `0.5.16` * mithril-test-lab/cardano-devnet/VERSION from `0.4.36` to `0.4.37`
docs: update CHANGELOG
chore(deps): bump github.com/blinklabs-io/gouroboros
Bumps [github.com/blinklabs-io/gouroboros](https://github.com/blinklabs-io/gouroboros) from 0.180.1 to 0.181.0. - [Release notes](https://github.com/blinklabs-io/gouroboros/releases) - [Changelog](https://github.com/blinklabs-io/gouroboros/blob/main/RELEASE_NOTES.md) - [Commits](https://github.com/blinklabs-io/gouroboros/compare/v0.180.1...v0.181.0) --- updated-dependencies: - dependency-name: github.com/blinklabs-io/gouroboros dependency-version: 0.181.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]>
chore(deps): bump golang.org/x/image from 0.41.0 to 0.42.0
Bumps [golang.org/x/image](https://github.com/golang/image) from 0.41.0 to 0.42.0. - [Commits](https://github.com/golang/image/compare/v0.41.0...v0.42.0) --- updated-dependencies: - dependency-name: golang.org/x/image dependency-version: 0.42.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]>
chore(deps): bump github.com/SundaeSwap-finance/kugo from 1.3.0 to 1.3.1
Bumps [github.com/SundaeSwap-finance/kugo](https://github.com/SundaeSwap-finance/kugo) from 1.3.0 to 1.3.1. - [Release notes](https://github.com/SundaeSwap-finance/kugo/releases) - [Changelog](https://github.com/SundaeSwap-finance/kugo/blob/main/CHANGELOG.md) - [Commits](https://github.com/SundaeSwap-finance/kugo/compare/v1.3.0...v1.3.1) --- updated-dependencies: - dependency-name: github.com/SundaeSwap-finance/kugo dependency-version: 1.3.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]>
chore(deps): bump github.com/blinklabs-io/plutigo from 0.1.14 to 0.1.15
Bumps [github.com/blinklabs-io/plutigo](https://github.com/blinklabs-io/plutigo) from 0.1.14 to 0.1.15. - [Release notes](https://github.com/blinklabs-io/plutigo/releases) - [Changelog](https://github.com/blinklabs-io/plutigo/blob/main/RELEASE_NOTES.md) - [Commits](https://github.com/blinklabs-io/plutigo/compare/v0.1.14...v0.1.15) --- updated-dependencies: - dependency-name: github.com/blinklabs-io/plutigo dependency-version: 0.1.15 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]>
docs(website): add explanation for Shelley genesis configuration file setup
feat: make DMQ node stable(beta) on mainnet and preprod
build(deps): plutigo 0.1.15 (#1812)
Signed-off-by: Chris Gianelloni <[email protected]>
feat(infra): support genesis configuration for DMQ node
feat(devnet): support genesis configuration for DMQ node
chore: use DMQ node '0.6.0.0' by default
chore(deps): bump the actions-deps group across 1 directory with 7 updates
Bumps the actions-deps group with 7 updates in the / directory: | Package | From | To | | --- | --- | --- | | [actions/checkout](https://github.com/actions/checkout) | `6.0.2` | `6.0.3` | | [github/codeql-action](https://github.com/github/codeql-action) | `4.36.0` | `4.36.2` | | [hoverkraft-tech/compose-action](https://github.com/hoverkraft-tech/compose-action) | `2.6.0` | `3.0.0` | | [rtCamp/action-slack-notify](https://github.com/rtcamp/action-slack-notify) | `2.3.3` | `2.4.0` | | [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) | `4.0.0` | `4.1.0` | | [scalacenter/sbt-dependency-submission](https://github.com/scalacenter/sbt-dependency-submission) | `3.2.2` | `3.2.3` | | [scala-steward-org/scala-steward-action](https://github.com/scala-steward-org/scala-steward-action) | `2.88.0` | `2.90.0` | Updates `actions/checkout` from 6.0.2 to 6.0.3 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/de0fac2e4500dabe0009e67214ff5f5447ce83dd...df4cb1c069e1874edd31b4311f1884172cec0e10) Updates `github/codeql-action` from 4.36.0 to 4.36.2 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/7211b7c8077ea37d8641b6271f6a365a22a5fbfa...8aad20d150bbac5944a9f9d289da16a4b0d87c1e) Updates `hoverkraft-tech/compose-action` from 2.6.0 to 3.0.0 - [Release notes](https://github.com/hoverkraft-tech/compose-action/releases) - [Commits](https://github.com/hoverkraft-tech/compose-action/compare/d2bee4f07e8ca410d6b196d00f90c12e7d48c33a...11beaa1c2dae4e8ed7b1665aa074723b6cecb0e4) Updates `rtCamp/action-slack-notify` from 2.3.3 to 2.4.0 - [Release notes](https://github.com/rtcamp/action-slack-notify/releases) - [Commits](https://github.com/rtcamp/action-slack-notify/compare/e31e87e03dd19038e411e38ae27cbad084a90661...33ca3be66c6f378fe1610fd1d5258632dbed5e58) Updates `docker/setup-qemu-action` from 4.0.0 to 4.1.0 - [Release notes](https://github.com/docker/setup-qemu-action/releases) - [Commits](https://github.com/docker/setup-qemu-action/compare/ce360397dd3f832beb865e1373c09c0e9f86d70a...06116385d9baf250c9f4dcb4858b16962ea869c3) Updates `scalacenter/sbt-dependency-submission` from 3.2.2 to 3.2.3 - [Release notes](https://github.com/scalacenter/sbt-dependency-submission/releases) - [Commits](https://github.com/scalacenter/sbt-dependency-submission/compare/1cc96a7038ea2b014c200c1dae3a0cc92293b91d...d84eef4c09e633bcf5f113bcad7fd5e9af1baee9) Updates `scala-steward-org/scala-steward-action` from 2.88.0 to 2.90.0 - [Release notes](https://github.com/scala-steward-org/scala-steward-action/releases) - [Commits](https://github.com/scala-steward-org/scala-steward-action/compare/b186ab858ce163f9af7b016fac32cfb3f2c2f503...708c1d682b14b9785201afb25c8ffece0a9d126f) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 6.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions-deps - dependency-name: github/codeql-action dependency-version: 4.36.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions-deps - dependency-name: hoverkraft-tech/compose-action dependency-version: 3.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions-deps - dependency-name: rtCamp/action-slack-notify dependency-version: 2.4.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions-deps - dependency-name: docker/setup-qemu-action dependency-version: 4.1.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions-deps - dependency-name: scalacenter/sbt-dependency-submission dependency-version: 3.2.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions-deps - dependency-name: scala-steward-org/scala-steward-action dependency-version: 2.90.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions-deps ... Signed-off-by: dependabot[bot] <[email protected]>
build(deps): plutigo 0.1.15
Signed-off-by: Chris Gianelloni <[email protected]>
refactor: split the chain store implementation code
Signed-off-by: Eric Torreborre <[email protected]>