🟩 keria is up (401 in 547 ms) [skip ci] [upptime]
Mar 17, 10-11 PM (37)
Mar 17, 11-12 AM (21)
Mar 18, 12-1 AM (1)
Mar 18, 1-2 AM (11)
Mar 18, 2-3 AM (9)
Mar 18, 3-4 AM (0)
Mar 18, 4-5 AM (6)
Mar 18, 5-6 AM (5)
Mar 18, 6-7 AM (3)
Mar 18, 7-8 AM (12)
Mar 18, 8-9 AM (20)
Mar 18, 9-10 AM (80)
Mar 18, 10-11 AM (87)
Mar 18, 11-12 PM (64)
Mar 18, 12-1 PM (72)
Mar 18, 1-2 PM (49)
Mar 18, 2-3 PM (130)
Mar 18, 3-4 PM (44)
Mar 18, 4-5 PM (26)
Mar 18, 5-6 PM (33)
Mar 18, 6-7 PM (43)
Mar 18, 7-8 PM (39)
Mar 18, 8-9 PM (23)
Mar 18, 9-10 PM (32)
Mar 18, 10-11 PM (40)
Mar 18, 11-12 AM (31)
Mar 19, 12-1 AM (30)
Mar 19, 1-2 AM (13)
Mar 19, 2-3 AM (6)
Mar 19, 3-4 AM (4)
Mar 19, 4-5 AM (4)
Mar 19, 5-6 AM (1)
Mar 19, 6-7 AM (29)
Mar 19, 7-8 AM (58)
Mar 19, 8-9 AM (118)
Mar 19, 9-10 AM (73)
Mar 19, 10-11 AM (199)
Mar 19, 11-12 PM (54)
Mar 19, 12-1 PM (61)
Mar 19, 1-2 PM (48)
Mar 19, 2-3 PM (76)
Mar 19, 3-4 PM (138)
Mar 19, 4-5 PM (29)
Mar 19, 5-6 PM (19)
Mar 19, 6-7 PM (31)
Mar 19, 7-8 PM (19)
Mar 19, 8-9 PM (36)
Mar 19, 9-10 PM (13)
Mar 19, 10-11 PM (41)
Mar 19, 11-12 AM (18)
Mar 20, 12-1 AM (4)
Mar 20, 1-2 AM (4)
Mar 20, 2-3 AM (8)
Mar 20, 3-4 AM (9)
Mar 20, 4-5 AM (10)
Mar 20, 5-6 AM (4)
Mar 20, 6-7 AM (51)
Mar 20, 7-8 AM (27)
Mar 20, 8-9 AM (29)
Mar 20, 9-10 AM (38)
Mar 20, 10-11 AM (33)
Mar 20, 11-12 PM (22)
Mar 20, 12-1 PM (33)
Mar 20, 1-2 PM (91)
Mar 20, 2-3 PM (19)
Mar 20, 3-4 PM (52)
Mar 20, 4-5 PM (24)
Mar 20, 5-6 PM (20)
Mar 20, 6-7 PM (14)
Mar 20, 7-8 PM (15)
Mar 20, 8-9 PM (15)
Mar 20, 9-10 PM (16)
Mar 20, 10-11 PM (22)
Mar 20, 11-12 AM (18)
Mar 21, 12-1 AM (8)
Mar 21, 1-2 AM (2)
Mar 21, 2-3 AM (5)
Mar 21, 3-4 AM (2)
Mar 21, 4-5 AM (1)
Mar 21, 5-6 AM (2)
Mar 21, 6-7 AM (6)
Mar 21, 7-8 AM (3)
Mar 21, 8-9 AM (9)
Mar 21, 9-10 AM (7)
Mar 21, 10-11 AM (5)
Mar 21, 11-12 PM (4)
Mar 21, 12-1 PM (3)
Mar 21, 1-2 PM (8)
Mar 21, 2-3 PM (3)
Mar 21, 3-4 PM (9)
Mar 21, 4-5 PM (7)
Mar 21, 5-6 PM (12)
Mar 21, 6-7 PM (12)
Mar 21, 7-8 PM (2)
Mar 21, 8-9 PM (1)
Mar 21, 9-10 PM (5)
Mar 21, 10-11 PM (24)
Mar 21, 11-12 AM (21)
Mar 22, 12-1 AM (0)
Mar 22, 1-2 AM (6)
Mar 22, 2-3 AM (5)
Mar 22, 3-4 AM (0)
Mar 22, 4-5 AM (1)
Mar 22, 5-6 AM (6)
Mar 22, 6-7 AM (6)
Mar 22, 7-8 AM (1)
Mar 22, 8-9 AM (1)
Mar 22, 9-10 AM (2)
Mar 22, 10-11 AM (3)
Mar 22, 11-12 PM (5)
Mar 22, 12-1 PM (1)
Mar 22, 1-2 PM (1)
Mar 22, 2-3 PM (2)
Mar 22, 3-4 PM (6)
Mar 22, 4-5 PM (6)
Mar 22, 5-6 PM (17)
Mar 22, 6-7 PM (32)
Mar 22, 7-8 PM (48)
Mar 22, 8-9 PM (7)
Mar 22, 9-10 PM (1)
Mar 22, 10-11 PM (21)
Mar 22, 11-12 AM (23)
Mar 23, 12-1 AM (5)
Mar 23, 1-2 AM (4)
Mar 23, 2-3 AM (9)
Mar 23, 3-4 AM (7)
Mar 23, 4-5 AM (2)
Mar 23, 5-6 AM (4)
Mar 23, 6-7 AM (1)
Mar 23, 7-8 AM (7)
Mar 23, 8-9 AM (33)
Mar 23, 9-10 AM (36)
Mar 23, 10-11 AM (17)
Mar 23, 11-12 PM (97)
Mar 23, 12-1 PM (62)
Mar 23, 1-2 PM (53)
Mar 23, 2-3 PM (73)
Mar 23, 3-4 PM (67)
Mar 23, 4-5 PM (86)
Mar 23, 5-6 PM (65)
Mar 23, 6-7 PM (21)
Mar 23, 7-8 PM (18)
Mar 23, 8-9 PM (16)
Mar 23, 9-10 PM (16)
Mar 23, 10-11 PM (35)
Mar 23, 11-12 AM (31)
Mar 24, 12-1 AM (1)
Mar 24, 1-2 AM (3)
Mar 24, 2-3 AM (14)
Mar 24, 3-4 AM (4)
Mar 24, 4-5 AM (3)
Mar 24, 5-6 AM (4)
Mar 24, 6-7 AM (3)
Mar 24, 7-8 AM (102)
Mar 24, 8-9 AM (40)
Mar 24, 9-10 AM (30)
Mar 24, 10-11 AM (167)
Mar 24, 11-12 PM (26)
Mar 24, 12-1 PM (42)
Mar 24, 1-2 PM (129)
Mar 24, 2-3 PM (12)
Mar 24, 3-4 PM (40)
Mar 24, 4-5 PM (47)
Mar 24, 5-6 PM (110)
Mar 24, 6-7 PM (16)
Mar 24, 7-8 PM (8)
Mar 24, 8-9 PM (13)
Mar 24, 9-10 PM (6)
Mar 24, 10-11 PM (10)
4,537 commits this week
Mar 17, 2026
-
Mar 24, 2026
🟩 login-api is up (401 in 541 ms) [skip ci] [upptime]
🟥 login-api is down (0 in 0 ms) [skip ci] [upptime]
🟥 get-vote-receipt-api is down (0 in 0 ms) [skip ci] [upptime]
🟥 event-api is down (0 in 0 ms) [skip ci] [upptime]
🟥 1694ballot.cardano.org is down (0 in 0 ms) [skip ci] [upptime]
🟥 blockchain-follower-api is down (0 in 0 ms) [skip ci] [upptime]
🟩 API (All properties) is up (204 in 667 ms) [skip ci] [upptime]
docs: align v0.163.3 title casing
docs: classify v0.163.3 as bug fix
Update from 5813f47e1f7c09a71c6aa15cba8cd464e65def53
revert(txsubmission): remove unnecessary rate limiter
TxSubmission is a pull-based protocol — the server goroutine calls RequestTxIds to pull transactions from the peer, so it inherently controls the pace. Rate limiting after the pull was pointless for network protection and actively harmful: under load, the limiter rejected batches already received, creating a tight retry loop that starved chainsync/blockfetch of CPU (20 peers × rate limit checks = CPU death, BP fell 20 blocks behind on preview). The natural rate limit is the processing time of RequestTxs + mempool.AddTransaction. The mempool handles dedup internally. This reverts ae017a4 and subsequent backoff fixes. Signed-off-by: wcatz <[email protected]>
test(conway): add regression test for rule 7 with real preview-net TX
Decode the exact transaction CBOR from preview-net slot 107726771 (tx 02eb5d86...529138) — a CIP-68 NFT script deployment with a ScriptDataHash, 1 witness datum, and 0 redeemers — and verify that UtxoValidateRedeemerAndScriptWitnesses does not reject it. Signed-off-by: wcatz <[email protected]>
refactor: change assets_state to use read_with_rollbacks
Signed-off-by: William Hankins <[email protected]>
refactor: change address_state to use read_with_rollbacks
Signed-off-by: William Hankins <[email protected]>
Add `Stop` hook and set the model with effort
fix(txsubmission): backoff and drop under sustained rate limiting
The TxSubmission server goroutine entered a tight wait-retry loop when rate-limited under mempool flooding, starving chainsync/blockfetch of CPU. With 20+ peers this caused the BP to fall 20 blocks behind tip. Add exponential backoff (150ms base, 5s cap) with a reused time.Timer to eliminate GC pressure. After 3 consecutive rate limit hits, drop the offered TxIds and return to blocking on RequestTxIds — the peer will re-offer them, and the goroutine parks at zero CPU. Log only the 1st hit and every 10th to reduce log noise from 60 lines/sec to ~6. Replace sync.Mutex + map with sync.Map in the rate limiter for lock-free reads on the hot path (existing peers). Signed-off-by: wcatz <[email protected]>
fix(conway): allow ScriptDataHash with witness datums and no redeemers
UtxoValidateRedeemerAndScriptWitnesses rejected transactions that carry a ScriptDataHash but have no redeemers, even when witness datums are present. Per the Cardano ledger spec the script data hash covers redeemers, witness datums, and cost models — so a transaction that provides datum pre-images (e.g. a script deployment TX) without executing any scripts is valid. This caused all preview-net nodes running gouroboros validation to halt at slot 107726771 (tx 02eb5d86...529138). Signed-off-by: wcatz <[email protected]>
Lift TotalPeriodsKES to the type level in KESAlgorithm
Add `CHANGELOG` and `cabal` file updater skill
bump: cardano-db-sync -> 13.6.0.7, mithril-unstable
Port `GenesisTest`s into new `TestSuite` data structure
The new `ConformanceTest` record contains fields for all data formerly used to run a test via `forAllGenesisTest` helper, plus other fields that pertain to its evaluation as a test property on a`TestTree`. A value of this type is defined for each point-schedule/genesis test. All such `ConformanceTest`s are arranged in a `TestSuite`s, a data structure introduced with the goal of eventually exporting them as part of a new sublibrary for the Conformance Testing of Consensus harness (see https://github.com/tweag/cardano-conformance-testing-of-consensus). This data structure is designed to optimize single test lookups, while retaining the necessary structure to be compiled back to a `TestTree`, so that the introduced changes preserve the semantics of the `ouroboros-consensus:test:consensus-diffusion-test` test suite. To accomplish this, a new data type is introduced in each module as a `key` for the locally defined `TestSuite`, such that each test in the module corresponds to a unique value (nullary constructor) of this type. This means that including a new test in a `TestSuite` requires the extension of such key type by introducing a new data constructor. These `key` types are aggregated into higher level key types to reify the nested grouping of the original tasty `TestTree`s. It is by means of `mkTestSuite` and `at` that a higher level `TestSuite` can be defined. The `SmallKey key` constraint is needed for their exhaustive construction, via `newTestSuite` and `mkTestSuite`; as implemented, a `TestSuite` is a total map. Co-authored-by: Sandy Maguire <[email protected]>