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 (12)
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 (36)
Jun 08, 9-10 AM (40)
Jun 08, 10-11 AM (24)
Jun 08, 11-12 PM (22)
Jun 08, 12-1 PM (40)
Jun 08, 1-2 PM (48)
Jun 08, 2-3 PM (33)
Jun 08, 3-4 PM (27)
Jun 08, 4-5 PM (12)
Jun 08, 5-6 PM (23)
Jun 08, 6-7 PM (14)
Jun 08, 7-8 PM (3)
Jun 08, 8-9 PM (6)
Jun 08, 9-10 PM (19)
Jun 08, 10-11 PM (29)
Jun 08, 11-12 AM (8)
Jun 09, 12-1 AM (5)
Jun 09, 1-2 AM (3)
Jun 09, 2-3 AM (1)
Jun 09, 3-4 AM (3)
Jun 09, 4-5 AM (26)
Jun 09, 5-6 AM (5)
Jun 09, 6-7 AM (23)
Jun 09, 7-8 AM (50)
Jun 09, 8-9 AM (35)
Jun 09, 9-10 AM (45)
Jun 09, 10-11 AM (51)
Jun 09, 11-12 PM (44)
Jun 09, 12-1 PM (86)
Jun 09, 1-2 PM (67)
Jun 09, 2-3 PM (36)
Jun 09, 3-4 PM (38)
Jun 09, 4-5 PM (15)
Jun 09, 5-6 PM (17)
Jun 09, 6-7 PM (18)
Jun 09, 7-8 PM (19)
Jun 09, 8-9 PM (16)
Jun 09, 9-10 PM (16)
Jun 09, 10-11 PM (26)
Jun 09, 11-12 AM (10)
Jun 10, 12-1 AM (11)
Jun 10, 1-2 AM (16)
Jun 10, 2-3 AM (11)
Jun 10, 3-4 AM (7)
Jun 10, 4-5 AM (5)
Jun 10, 5-6 AM (2)
2,744 commits this week Jun 03, 2026 - Jun 10, 2026
tracing: surface TraceLeiosDb via the Leios kernel tracer
  Adapts cardano-node to the updated ouroboros-consensus
  newLeiosDBSQLite signature (Tracer IO TraceLeiosDb -> FilePath -> ...)
  from IntersectMBO/ouroboros-consensus#2062 by contramapping the
  TraceLeiosDb constructor into the existing Consensus.LeiosKernel
  tracer. SQLite UNIQUE/PRIMARY KEY collision events are given Warning
  severity so they remain visible under the default Notice configuration.

Co-Authored-By: Claude Fable 5 <[email protected]>
pkgconf-pc-version: gate on glibc, not just linux
The test was enabled on android-prebuilt targets (isLinux && !isMusl &&
!isStatic), where it tried to build systemd for a bionic libc target and
failed with a dependency error.  systemd only builds on glibc, so gate the
systemd module set on hostPlatform.libc == "glibc" (excludes android/bionic,
musl, Windows, wasm) plus !isStatic.
fix: detect in-memory GPG signing credentials for bip32-ed25519 publishing
The signing credential check only looked for signing.keyId property and
GPG_KEY_ID env var, missing the in-memory signing properties used by CI
(signingInMemoryKey / ORG_GRADLE_PROJECT_signingInMemoryKey). This caused
unsigned artifacts to be uploaded to Maven Central, which silently rejects
them during validation.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: Yurii Shynbuiev <[email protected]>
feat(leios): enforce pipeline timing windows and unify the vote window
The pipeline framework tracked stages but most of PipelineTiming drove no
behavior: stageFor ran only on the certified path, handleEbQuorum honored
any certificate regardless of timing, and the pipeline's VoteWindowSlots
had no relationship to VoteManager's vote-acceptance window.

- Enforce the certification deadline: a certificate arriving at or past
  CertifyByDeadlineSlots is rejected (counted under certs_rejected_total),
  leaving the EB tracked but never certified, so it cannot become eligible.
- Surface the uncertified stages: updateGaugesLocked now derives a per-EB
  stage gauge via stageFor with each EB's real certified flag (exercising
  the uncertified branch in production), plus a read-only StageOf seam.
- Unify the vote window: VoteManager's vote-acceptance past bound is now
  the pipeline's VoteWindowSlots, passed through VoteManagerConfig and
  sourced from the same leiosPipelineTiming() the pipeline uses, so the two
  components admit votes over the same window and cannot drift. Replaces the
  standalone slotWindowPastTolerance.
- Remove the inert StageLengthSlots field.

ARCHITECTURE.md updated; DATABASE.md unaffected (in-memory, metrics only).

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Signed-off-by: Chris Guiney <[email protected]>
fix(blockfrost): compute network locked supply and align network eras… (#2510)
* fix(blockfrost): compute network locked supply and align network eras schema

Signed-off-by: cryptodj413 <[email protected]>

* fix(blockfrost): address review

Signed-off-by: cryptodj413 <[email protected]>

* fix(blockfrost): populate PaymentScript in import path

Signed-off-by: cryptodj413 <[email protected]>

* fix(blockfrost): address test issue

Signed-off-by: cryptodj413 <[email protected]>

---------

Signed-off-by: cryptodj413 <[email protected]>
fix(leios): count EB equivocation per slot and couple observe window to vote tolerance
Two follow-ups from review of the pipeline timing change:

- markEquivocationLocked incremented ebEquivocationTotal (and logged)
  once per EB added beyond the first, so a slot with N distinct EBs
  counted N-1 times despite the metric documenting "number of slots with
  equivocating endorser blocks". Track a per-instance equivocated flag so
  the counter and warn log fire exactly once per equivocating slot; every
  EB is still flagged for inclusion exclusion. Adds a regression test.

- Define observeFutureToleranceSlots as the vote manager's
  slotWindowFutureTolerance instead of a duplicated literal 60, so the two
  Leios components admit endorser blocks over the same future window and
  cannot drift apart.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Signed-off-by: Chris Guiney <[email protected]>