Jun 12, 11-12 PM (42)
Jun 12, 12-1 PM (24)
Jun 12, 1-2 PM (26)
Jun 12, 2-3 PM (22)
Jun 12, 3-4 PM (38)
Jun 12, 4-5 PM (23)
Jun 12, 5-6 PM (19)
Jun 12, 6-7 PM (26)
Jun 12, 7-8 PM (12)
Jun 12, 8-9 PM (17)
Jun 12, 9-10 PM (5)
Jun 12, 10-11 PM (30)
Jun 12, 11-12 AM (6)
Jun 13, 12-1 AM (6)
Jun 13, 1-2 AM (2)
Jun 13, 2-3 AM (0)
Jun 13, 3-4 AM (3)
Jun 13, 4-5 AM (0)
Jun 13, 5-6 AM (3)
Jun 13, 6-7 AM (7)
Jun 13, 7-8 AM (5)
Jun 13, 8-9 AM (6)
Jun 13, 9-10 AM (14)
Jun 13, 10-11 AM (12)
Jun 13, 11-12 PM (2)
Jun 13, 12-1 PM (23)
Jun 13, 1-2 PM (21)
Jun 13, 2-3 PM (8)
Jun 13, 3-4 PM (1)
Jun 13, 4-5 PM (4)
Jun 13, 5-6 PM (4)
Jun 13, 6-7 PM (3)
Jun 13, 7-8 PM (3)
Jun 13, 8-9 PM (7)
Jun 13, 9-10 PM (16)
Jun 13, 10-11 PM (19)
Jun 13, 11-12 AM (24)
Jun 14, 12-1 AM (18)
Jun 14, 1-2 AM (0)
Jun 14, 2-3 AM (0)
Jun 14, 3-4 AM (0)
Jun 14, 4-5 AM (2)
Jun 14, 5-6 AM (0)
Jun 14, 6-7 AM (2)
Jun 14, 7-8 AM (3)
Jun 14, 8-9 AM (0)
Jun 14, 9-10 AM (1)
Jun 14, 10-11 AM (2)
Jun 14, 11-12 PM (10)
Jun 14, 12-1 PM (8)
Jun 14, 1-2 PM (4)
Jun 14, 2-3 PM (8)
Jun 14, 3-4 PM (2)
Jun 14, 4-5 PM (1)
Jun 14, 5-6 PM (1)
Jun 14, 6-7 PM (0)
Jun 14, 7-8 PM (11)
Jun 14, 8-9 PM (1)
Jun 14, 9-10 PM (13)
Jun 14, 10-11 PM (29)
Jun 14, 11-12 AM (23)
Jun 15, 12-1 AM (8)
Jun 15, 1-2 AM (10)
Jun 15, 2-3 AM (4)
Jun 15, 3-4 AM (4)
Jun 15, 4-5 AM (1)
Jun 15, 5-6 AM (4)
Jun 15, 6-7 AM (6)
Jun 15, 7-8 AM (41)
Jun 15, 8-9 AM (26)
Jun 15, 9-10 AM (11)
Jun 15, 10-11 AM (35)
Jun 15, 11-12 PM (25)
Jun 15, 12-1 PM (40)
Jun 15, 1-2 PM (26)
Jun 15, 2-3 PM (21)
Jun 15, 3-4 PM (24)
Jun 15, 4-5 PM (21)
Jun 15, 5-6 PM (13)
Jun 15, 6-7 PM (13)
Jun 15, 7-8 PM (7)
Jun 15, 8-9 PM (26)
Jun 15, 9-10 PM (20)
Jun 15, 10-11 PM (22)
Jun 15, 11-12 AM (39)
Jun 16, 12-1 AM (11)
Jun 16, 1-2 AM (5)
Jun 16, 2-3 AM (1)
Jun 16, 3-4 AM (9)
Jun 16, 4-5 AM (6)
Jun 16, 5-6 AM (1)
Jun 16, 6-7 AM (16)
Jun 16, 7-8 AM (81)
Jun 16, 8-9 AM (18)
Jun 16, 9-10 AM (28)
Jun 16, 10-11 AM (22)
Jun 16, 11-12 PM (31)
Jun 16, 12-1 PM (37)
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 (22)
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 (9)
Jun 18, 7-8 AM (19)
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 (12)
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 (33)
Jun 19, 9-10 AM (37)
Jun 19, 10-11 AM (24)
Jun 19, 11-12 PM (0)
3,100 commits this week Jun 12, 2026 - Jun 19, 2026
cardano-config: add the LedgerDB.LSMExportPath option
Surface the LedgerDB @LSMExportPath@ key alongside @LSMDatabasePath@ in the
backend codec: an optional directory into which the LSM-tree backend exports
snapshots as it takes them. Like the database path, it is only meaningful for
the V2LSM backend, so it is carried as a second field of the V2LSM selector.

Document the key in the README and exercise it in the fullconfig.json example,
which now selects the V2LSM backend with both LSM paths.
cardano-config: allow splitting all components, trim tracing to HermodTracing
Make LocalConnections, Testing and Mempool splittable into sub-files like the
other components, by lifting them into the configuration's functor and routing
them through subFileParser under their own wrapper keys. Add example sub-files
and a split-all.json that exercises every sub-file key.

Trim the tracing placeholder to the single HermodTracing key (an inline object
or a path to a separate file), dropping the legacy top-level TraceOption* keys.

Document in the README exactly what the library parses: a per-component key
listing, which components support sub-files, and that tracing is recognised but
not parsed.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
cardano-config: surface tracing keys as an opaque placeholder
Tracing configuration is owned by the node's tracing system
(hermod/trace-dispatcher), not by cardano-config. Add a TracingConfiguration
component that captures the tracing keys opaquely so they are visible in the
configuration schema (rather than silently ignored) and preserved when
round-tripping, without interpreting or validating their contents.

It covers both accepted shapes: the legacy flat TraceOptions/TraceOption*
keys, and the newer single HermodTracing key (an inline object or a path to a
separate file). All fields are optional, so this is non-breaking.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
cardano-config: port the configuration types to autodocodec
Replace the hand-written FromJSON instances with autodocodec HasCodec codecs (deriving FromJSON/ToJSON via Autodocodec), so the parsers and the configuration documentation share a single definition. The LedgerDB snapshot configuration moves to the predictable-snapshots model: a Snapshots policy that is either a named policy or an explicit options object, with the example configs updated to match.
feat: add /scripts/:script_hash/utxos endpoint
Lists the UTXOs that hold a given script as a reference script (CIP-33),
so a script hash can be resolved directly to its deployment UTXOs for use
as reference inputs (CIP-31) — without knowing/enumerating the holding
address.

- paged route GET /scripts/:script_hash/utxos
- query uses consumed_by_tx_id IS NULL for spentness
- response mirrors /addresses/:address/utxos, minus the deprecated tx_index
- requires @blockfrost/openapi 0.1.90

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Add conversion roundtrip tests between Peras votes/certs and voting committee types
This commit adds conversion rountrip tests between concrete Peras votes
and certificates and their corresponding (abstract) counterparts in the
WFALS and EveryoneVotes voting committee implementations.

Notably, the roundtrip properties allow testing both total (WFALS) and partial
(EveryoneVotes) conversions, generating both good and bad cases and
contrasting them against their expected rountrip outcome.

Co-authored-by: Agustin Mista <[email protected]>
Co-authored-by: Thomas BAGREL <[email protected]>
Co-authored-by: Nicolas BACQUEY <[email protected]>
CIP-164: Re-introduce additive per tx plutus limits
This is a request by @Quantumplation, which has the potential of
increasing utility of Cardano through Leios, but at the cost of lower
adversarial stake tolerance (of dApps that rely on it).

Still WIP as more places would need updating, but wanted to record the
request and start the discussion.
refactor(common): simplify new Signed entity messages + extend test coverage
- remove `Message` suffix from `DiscontinuedSignedEntityType` enums
- avoid magic strings in discriminant message `From<&str>` impl
- doc: clarify that `Unknown` variant serialize as `null` for JSON
- doc: simplify some comments
- test: cover discriminants `From<&str>`
- test: simplify redundant display tests
- test: simplify json roundtrips tests by using an helper method
[UTxO-HD] Make the empty-UTxO Shelley NewEpochState obvious to clients
shelleyLedgerState (and tickedShelleyLedgerState, and the renamed
nesView -> newEpochStateWithEmptyUTxO) hand back a NewEpochState whose UTxO
field is empty by design (UTxO-HD keeps the live UTxO in the ledger tables). A
client lensing into its utxo silently gets an empty map. The type can't prevent
this (the NES field is cardano-ledger's), so make it loud:

- Rename nesView -> newEpochStateWithEmptyUTxO and give the three accessors a
  prominent haddock warning pointing at the ledger tables / forker.
- Attach a WARNING to each: a custom category 'x-shelley-empty-utxo' on
  GHC >= 9.10, a plain WARNING on older GHCs (both CPP-guarded for 9.6 compat).
  Downstream consumers now get a compile-time warning at every use.
- Our own modules legitimately project the UTxO-free NES, so each opts out
  per-file (-Wno-x-shelley-empty-utxo on >= 9.10, -Wno-warnings-deprecations
  otherwise), CPP-guarded. Per-file (not package-wide) so each is a conscious
  acknowledgement.

Verified on GHC 9.14: builds warning-free, and the warning fires for a
non-opted-out user.