Home / Cardano Foundation / cardano-node-antithesis
Jun 03, 4-5 AM (0)
Jun 03, 5-6 AM (1)
Jun 03, 6-7 AM (3)
Jun 03, 7-8 AM (0)
Jun 03, 8-9 AM (3)
Jun 03, 9-10 AM (0)
Jun 03, 10-11 AM (0)
Jun 03, 11-12 PM (0)
Jun 03, 12-1 PM (0)
Jun 03, 1-2 PM (0)
Jun 03, 2-3 PM (0)
Jun 03, 3-4 PM (0)
Jun 03, 4-5 PM (0)
Jun 03, 5-6 PM (0)
Jun 03, 6-7 PM (0)
Jun 03, 7-8 PM (0)
Jun 03, 8-9 PM (0)
Jun 03, 9-10 PM (0)
Jun 03, 10-11 PM (0)
Jun 03, 11-12 AM (0)
Jun 04, 12-1 AM (0)
Jun 04, 1-2 AM (0)
Jun 04, 2-3 AM (0)
Jun 04, 3-4 AM (0)
Jun 04, 4-5 AM (0)
Jun 04, 5-6 AM (0)
Jun 04, 6-7 AM (0)
Jun 04, 7-8 AM (0)
Jun 04, 8-9 AM (0)
Jun 04, 9-10 AM (0)
Jun 04, 10-11 AM (0)
Jun 04, 11-12 PM (0)
Jun 04, 12-1 PM (0)
Jun 04, 1-2 PM (0)
Jun 04, 2-3 PM (0)
Jun 04, 3-4 PM (0)
Jun 04, 4-5 PM (0)
Jun 04, 5-6 PM (0)
Jun 04, 6-7 PM (0)
Jun 04, 7-8 PM (0)
Jun 04, 8-9 PM (0)
Jun 04, 9-10 PM (0)
Jun 04, 10-11 PM (0)
Jun 04, 11-12 AM (0)
Jun 05, 12-1 AM (0)
Jun 05, 1-2 AM (0)
Jun 05, 2-3 AM (0)
Jun 05, 3-4 AM (0)
Jun 05, 4-5 AM (0)
Jun 05, 5-6 AM (0)
Jun 05, 6-7 AM (0)
Jun 05, 7-8 AM (0)
Jun 05, 8-9 AM (0)
Jun 05, 9-10 AM (0)
Jun 05, 10-11 AM (0)
Jun 05, 11-12 PM (0)
Jun 05, 12-1 PM (0)
Jun 05, 1-2 PM (0)
Jun 05, 2-3 PM (0)
Jun 05, 3-4 PM (0)
Jun 05, 4-5 PM (0)
Jun 05, 5-6 PM (0)
Jun 05, 6-7 PM (0)
Jun 05, 7-8 PM (0)
Jun 05, 8-9 PM (0)
Jun 05, 9-10 PM (0)
Jun 05, 10-11 PM (0)
Jun 05, 11-12 AM (0)
Jun 06, 12-1 AM (0)
Jun 06, 1-2 AM (0)
Jun 06, 2-3 AM (0)
Jun 06, 3-4 AM (0)
Jun 06, 4-5 AM (0)
Jun 06, 5-6 AM (0)
Jun 06, 6-7 AM (0)
Jun 06, 7-8 AM (0)
Jun 06, 8-9 AM (0)
Jun 06, 9-10 AM (0)
Jun 06, 10-11 AM (0)
Jun 06, 11-12 PM (0)
Jun 06, 12-1 PM (0)
Jun 06, 1-2 PM (0)
Jun 06, 2-3 PM (0)
Jun 06, 3-4 PM (0)
Jun 06, 4-5 PM (0)
Jun 06, 5-6 PM (0)
Jun 06, 6-7 PM (0)
Jun 06, 7-8 PM (0)
Jun 06, 8-9 PM (0)
Jun 06, 9-10 PM (0)
Jun 06, 10-11 PM (0)
Jun 06, 11-12 AM (0)
Jun 07, 12-1 AM (0)
Jun 07, 1-2 AM (0)
Jun 07, 2-3 AM (0)
Jun 07, 3-4 AM (0)
Jun 07, 4-5 AM (0)
Jun 07, 5-6 AM (0)
Jun 07, 6-7 AM (0)
Jun 07, 7-8 AM (0)
Jun 07, 8-9 AM (0)
Jun 07, 9-10 AM (0)
Jun 07, 10-11 AM (0)
Jun 07, 11-12 PM (0)
Jun 07, 12-1 PM (0)
Jun 07, 1-2 PM (0)
Jun 07, 2-3 PM (0)
Jun 07, 3-4 PM (0)
Jun 07, 4-5 PM (0)
Jun 07, 5-6 PM (0)
Jun 07, 6-7 PM (0)
Jun 07, 7-8 PM (0)
Jun 07, 8-9 PM (0)
Jun 07, 9-10 PM (0)
Jun 07, 10-11 PM (0)
Jun 07, 11-12 AM (0)
Jun 08, 12-1 AM (0)
Jun 08, 1-2 AM (0)
Jun 08, 2-3 AM (0)
Jun 08, 3-4 AM (0)
Jun 08, 4-5 AM (0)
Jun 08, 5-6 AM (0)
Jun 08, 6-7 AM (0)
Jun 08, 7-8 AM (0)
Jun 08, 8-9 AM (0)
Jun 08, 9-10 AM (0)
Jun 08, 10-11 AM (1)
Jun 08, 11-12 PM (0)
Jun 08, 12-1 PM (1)
Jun 08, 1-2 PM (0)
Jun 08, 2-3 PM (0)
Jun 08, 3-4 PM (1)
Jun 08, 4-5 PM (1)
Jun 08, 5-6 PM (2)
Jun 08, 6-7 PM (0)
Jun 08, 7-8 PM (0)
Jun 08, 8-9 PM (0)
Jun 08, 9-10 PM (0)
Jun 08, 10-11 PM (0)
Jun 08, 11-12 AM (0)
Jun 09, 12-1 AM (0)
Jun 09, 1-2 AM (0)
Jun 09, 2-3 AM (0)
Jun 09, 3-4 AM (0)
Jun 09, 4-5 AM (0)
Jun 09, 5-6 AM (0)
Jun 09, 6-7 AM (2)
Jun 09, 7-8 AM (0)
Jun 09, 8-9 AM (0)
Jun 09, 9-10 AM (0)
Jun 09, 10-11 AM (0)
Jun 09, 11-12 PM (0)
Jun 09, 12-1 PM (0)
Jun 09, 1-2 PM (0)
Jun 09, 2-3 PM (2)
Jun 09, 3-4 PM (0)
Jun 09, 4-5 PM (0)
Jun 09, 5-6 PM (0)
Jun 09, 6-7 PM (0)
Jun 09, 7-8 PM (0)
Jun 09, 8-9 PM (0)
Jun 09, 9-10 PM (0)
Jun 09, 10-11 PM (0)
Jun 09, 11-12 AM (0)
Jun 10, 12-1 AM (0)
Jun 10, 1-2 AM (0)
Jun 10, 2-3 AM (0)
Jun 10, 3-4 AM (0)
Jun 10, 4-5 AM (0)
17 commits this week Jun 03, 2026 - Jun 10, 2026
testnet(amaru): epoch_length=120, k=5 so bootstrap fits the Antithesis setup budget
epoch_length=256 kept the stability window inside an epoch but pushed the
2-epochs-behind-immutable bootstrap to ~slot 900 (~15 min), past the Antithesis
setup-time budget, so runs aborted incomplete before amaru ever started.

k=5, f=0.2 gives windows 75 (3k/f) and 100 (4k/f), both < epoch_length=120, so
rewards still stabilise in-epoch, and the bootstrap reaches its 2-epochs-behind
point by ~slot 360 (~6 min). Applied consistently across testnet.yaml,
amaru-runtime/global-parameters.json and amaru-runtime/era-history.json.
refactor(adversary): consume cardano-node-clients adversary lib (drop duplicate)
Pin cardano-node-clients at 76ae585019cd239f3f43dbec55ea4af36b8cd0cd and align the adversary component with the cardano-node 11.0.1 / PV12 dependency line.

This drops the local PV11-only chain-sync adversary duplicate and imports the upstream PV12-capable adversary modules instead.

Tasks: #165
feat(gov): 3 producers + larger k to keep reorg depth < k under partition
The trace fix unmasked a real finding: 'cluster fork depth < k' failed
(62 reorgs > k). In a 2-producer cluster a network partition is a 1-vs-1
split with no majority, so a fork grows unbounded by k. Fix it properly:
- add p3 -> a partition leaves a 2-vs-1 majority that anchors the
  canonical chain, so only the minority reorgs;
- raise securityParam k=10 -> 50 (epochLength 1000 -> 5000, preserving
  cardonnay's 10k/f nonce-stability ratio) so the minority's reorg over a
  multi-minute split stays < k.
Epochs become ~16.7 min, so governance runs need the 3h duration; bump
first_setup's epoch-wait to 1800s. Validated locally: cardonnay
generates a valid 3-pool genesis with securityParam 50 / epochLength 5000.
testnet(amaru): bump bootstrap-producer image to fba902da
Pin cardano_amaru to the producer image published from amaru-bootstrap main
(lambdasistemi/amaru-bootstrap@fba902da), which bundles amaru
feat/testnet-bootstrap: create-snapshots offline mode + bootstrap migration,
runtime era-history/global-parameters, testnet tvar era-history sidecar fix,
and the short-epoch ledger/consensus fixes.
refactor(gov): chain-as-queue vote selection — remove local coordination state
A live Antithesis run showed the two-log coordination (created.log /
rejected.log, created - rejected difference) over-retiring: under a
block-production stall, transient faucet-lock/submit failures were
misclassified as rejections and permanently dropped still-valid actions
(~50 retirements, only 1 a real VotingOnExpiredGovAction).

Remove the local ledger entirely. The vote driver now reads the live
InfoAction set straight from the node via an N2C gov-state query
(live_info_actions); relay1 is fault-excluded and a LocalStateQuery
answers even during a stall. An action leaves the set only when the
ledger expires/enacts it, so a transient failure is self-healing — the
action is picked again next tick (vote_transient_failure coverage,
no retire). create no longer publishes anything; the drivers are
stateless and the chain holds all the state.

Replaces action_lifecycle_closed (poisoned by the bug) with a stateless
action_near_expiry derived from gov-state's expiresAfter, and adds
actions_live. Validated locally: votes accumulate to full quorum via
gov-state selection, no created/rejected logs created.
ci(cardano-node): fix moog download for 0.5.x + alert on scheduled failure (#163)
The nightly scheduled run has failed at 'Install moog' every cron tick
since moog 0.5.x dropped the moog-*-linux64.tar.gz asset (last green
2026-06-01). Replace the get-latest-release + release-downloader actions
with a gh release download that picks the statically-linked
moog-*-x86_64-linux-musl.tar.gz, filtering out the agent/oracle tarballs.

Also add an 'Alert on scheduled failure' step (issues:write) that opens
or appends to a single tracking issue, so a silently-failing nightly run
becomes visible instead of rotting for days.
ci(cardano-node): fix moog download for 0.5.x + alert on scheduled failure
The nightly scheduled run has failed at 'Install moog' every cron tick
since moog 0.5.x dropped the moog-*-linux64.tar.gz asset (last green
2026-06-01). Replace the get-latest-release + release-downloader actions
with a gh release download that picks the statically-linked
moog-*-x86_64-linux-musl.tar.gz, filtering out the agent/oracle tarballs.

Also add an 'Alert on scheduled failure' step (issues:write) that opens
or appends to a single tracking issue, so a silently-failing nightly run
becomes visible instead of rotting for days.