:arrow_up: Update @upptime to v1.42.5
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 (46)
Jun 09, 12-1 PM (86)
Jun 09, 1-2 PM (84)
Jun 09, 2-3 PM (36)
Jun 09, 3-4 PM (38)
Jun 09, 4-5 PM (16)
Jun 09, 5-6 PM (18)
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 (28)
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 (19)
Jun 10, 4-5 AM (5)
Jun 10, 5-6 AM (2)
Jun 10, 6-7 AM (46)
Jun 10, 7-8 AM (82)
Jun 10, 8-9 AM (18)
Jun 10, 9-10 AM (59)
Jun 10, 10-11 AM (46)
Jun 10, 11-12 PM (134)
Jun 10, 12-1 PM (48)
Jun 10, 1-2 PM (33)
Jun 10, 2-3 PM (31)
Jun 10, 3-4 PM (25)
Jun 10, 4-5 PM (33)
Jun 10, 5-6 PM (12)
Jun 10, 6-7 PM (12)
Jun 10, 7-8 PM (38)
Jun 10, 8-9 PM (11)
Jun 10, 9-10 PM (9)
Jun 10, 10-11 PM (20)
Jun 10, 11-12 AM (7)
Jun 11, 12-1 AM (3)
2,815 commits this week
Jun 04, 2026
-
Jun 11, 2026
:card_file_box: Update status summary [skip ci] [upptime]
:pencil: Update summary in README [skip ci] [upptime]
docs: add leios dijkstra spin up WIP doc
:arrow_up: Update @upptime to v1.42.5
:pencil: Update summary in README [skip ci] [upptime]
:card_file_box: Update status summary [skip ci] [upptime]
Curry up RawTerm lambdas and applications, remove Liftability
feat(leios): pipeline timing and stage management (#2531)
* feat(leios): pipeline timing and stage management Add a PipelineManager that orchestrates the CIP-0164 Linear Leios pipeline on top of the existing vote/certificate machinery. It tracks endorser blocks through produce/diffuse/vote/certify/eligible stages under provisional, off-chain timing windows, detects slot-level EB equivocation, flushes in-flight state at epoch boundaries and rollbacks, and exposes the producer- and inclusion-facing seams the forge loop will consume. Scope is framework + hook only: - The pipeline is decoupled from VoteManager; both observe endorser blocks independently and share only the leios.eb_quorum event. The certificate is captured verbatim, never rebuilt. - EB equivocation keys on slot (the endorser block carries no producer identity yet) and excludes all candidates for a slot from inclusion; this complements VoteManager's (slot, voter_id) vote equivocation. - Stage 3 tracks and exposes certified EBs eligible for ranking-block inclusion via EligibleCertifiedEbs/MarkEmbedded, but the actual RB embedding is left stubbed pending the ranking-block CDDL. - Timing windows live in one provisional PipelineTiming struct, overridable via WithLeiosPipelineTiming, rather than as protocol parameters while CIP-0164 is unstable. Window decisions are slot-driven via SlotProvider.CurrentOrTipSlot (the SlotClock is private to LedgerState), and epoch/rollback flushing runs off the EventBus, mirroring VoteManager. The manager is wired into the ouroboros component via a new LeiosPipelineHandler interface, notified from storeLeiosEndorserBlock after the vote handler, and started/stopped around VoteManager in node wiring (LIFO) since it consumes its output. All state is in-memory; DATABASE.md is unaffected. ARCHITECTURE.md documents the new component and event flow. Signed-off-by: Chris Guiney <[email protected]> Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> * fix(leios): reject out-of-window endorser block observations A peer controls the slot on an endorser block it offers, which flows through storeLeiosEndorserBlock into PipelineManager.ObserveEndorserBlock. Because MayProduceEndorserBlock treats any existing instance for a slot as "already produced," a peer could pre-seed far-future slots and deny the legitimate local producer when those slots open. Bound the observation acceptance window: ignore observations for slots more than observeFutureToleranceSlots (60) ahead of the current/tip slot, or already older than InstanceTTLSlots. The future tolerance matches the vote manager's slotWindowFutureTolerance so the two Leios components admit endorser blocks over the same window, while still allowing clock-skew and diffusion slack for honest near-present blocks. The quorum path is unaffected: it is fed by the locally windowed vote manager, not raw peer input. Found by cubic and CodeRabbit on the pull request. Signed-off-by: Chris Guiney <[email protected]> Co-Authored-By: Claude Opus 4.8 (1M context) <[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]> * 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]> --------- Signed-off-by: Chris Guiney <[email protected]> Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
🟥 get-vote-receipt-api is down (0 in 0 ms) [skip ci] [upptime]
🟥 get-votes-api is down (0 in 0 ms) [skip ci] [upptime]
🟥 cast-vote-api is down (0 in 0 ms) [skip ci] [upptime]
🟥 login-api is down (0 in 0 ms) [skip ci] [upptime]
Revert "fix(protocols): route block fetch to one connection"
This reverts commit 07d0522bbf8ba5a2d3a419405cee7573832cc98b. Signed-off-by: hade <[email protected]>
🟥 blockchain-follower-api is down (0 in 0 ms) [skip ci] [upptime]
🟥 event-api is down (0 in 0 ms) [skip ci] [upptime]
🟩 get-vote-receipt-api is up (401 in 300 ms) [skip ci] [upptime]
🟩 keria is up (401 in 575 ms) [skip ci] [upptime]
🟩 login-api is up (401 in 595 ms) [skip ci] [upptime]
🟩 cast-vote-api is up (401 in 301 ms) [skip ci] [upptime]
🟩 get-votes-api is up (401 in 97 ms) [skip ci] [upptime]
🟩 user-verification-api is up (405 in 537 ms) [skip ci] [upptime]
🟩 blockchain-follower-api is up (200 in 340 ms) [skip ci] [upptime]
🟩 voting.summit.cardano.org is up (200 in 499 ms) [skip ci] [upptime]