Dugite v2.0.1
What's changed in v2.0.1
A bug-fix release hardening Plutus phase-2 admission, Byron-era block storage/serving, and bulk-sync throughput. No wire-format or ledger-semantic changes; v2.0.1 is a drop-in replacement for v2.0.0.
Consensus / ledger correctness
- Phase-2 admission partition (#733/#734). Transaction phase-2 outcomes are now split into genuine script-evaluation failures (which legitimise
is_valid=false) and collection/context errors (CollectErrors: decode failures, missing script/datum, validity-interval time translation past the safe-zone horizon), mirroring the Haskell UTXOS rule exactly. Collection errors now reject the transaction regardless of theis_validtag — closing a hole where anis_valid=falsetx whose scripts actually pass, or whose context errors out (e.g. a past-horizon TTL), could be admitted, forged, and produce a block that cardano-node rejects. Resolved UTxOs created pre-Conway are re-decoded with prune semantics so legitimate Conway spends of zero-asset outputs are not spuriously rejected. - Conway committee / vote byte-exactness (#731). GOVCERT future-member handling, committee-state pruning, and vote de-duplication corrected for byte-exact alignment with cardano-ledger.
- Zero-quantity multi-asset entries (#730). Pruned pre-Conway, rejected in Conway, matching cardano-ledger's decoder-version-gated
decodeMultiAsset.
Byron-era storage & serving
- Byron Epoch Boundary Blocks (EBBs) are no longer dropped at volatile→immutable flush batch boundaries; ChainSync/BlockFetch now serve same-slot EBB/main-block pairs via point-cursor iteration.
- From-genesis replay wipes a stale on-disk LSM UTxO store, fixing a Byron→Shelley
reserves=0/ MIR panic.
Performance & operability
- Bulk-sync throughput +59%. The N2C LocalStateQuery snapshot rebuild (~1.4 s at mainnet scale) now runs at a 30 s cadence during catch-up instead of every block, eliminating a metronomic apply-loop stall that consumed ~57% of wall time during sync (20.2 → 32.0 blk/s on a dense mainnet segment).
- dugite-monitor "Stuck" debounce. The tip/header pills now require 90 s of sustained no-advance before reporting Stuck/Stalled, instead of flapping red on any single quiet 1 s poll window during legitimately bursty heavy-era sync.
Testing
- New tx-zoo
03mpast-horizon-rejection test (bothis_validpolarities);03j/03lTTLs kept inside the time-translation horizon;03lharness crash fixed.
Deferred: the block-apply half of #733 (making CollectErrors fatal at block application) is tracked on the issue with the corrections an adversarial review surfaced (TransitionKnown horizon, Alonzo-era gate, panic handling, partial-replay carve-out).
Full Changelog: v2.0.0...v2.0.1
QA — devnet-validate (standard preset)
devnet-validate report
| Result | ✅ PASS |
| Git | 501ba2577a6465ddcd57035098bf24e7c29ba56f |
| Preset | standard |
| cardano-node | 11.0.1 |
| cardano-cli | 11.0.0.0 |
| Generated | 2026-06-10T11:55:09Z |
Round summary
| Round | Result | Canonical blocks | Tx-zoo | CLI parity | Tip-age p99 | Chain density |
|---|---|---|---|---|---|---|
| restart | ✅ PASS | 159 | 0/84 | ✅ 0✓ | 8.00s | 0.528 |
Total canonical blocks: 159
Total tx-zoo pass/fail: 0 / 0
Predicate breakdown
Round: restart
| Predicate | Result | Detail |
|---|---|---|
| p1 — forge-cross-check | PASS | (149 canonical blocks, >=3 observers each; 10 orphan(s) excluded) |
| p2 — per-bp-attribution | PASS | (validator-only: pool1=159, pool2=0 as designed) |
| p3 — tx-inclusion | PASS | (12 txs submitted; 0 accepted/0 rejected — all 3 nodes agree) |
| p4 — tip-parity | PASS | (59/59 ticks in-parity = 100% across all 3 observers) |
| p5 — tip-age | PASS | (threshold 300s; dugite-bp=max8s/last2s/n48 dugite-relay=max8s/last2s/n48) |
Generated by .claude/skills/devnet-validate/scripts/generate-release-report.sh
Schema: .claude/skills/devnet-validate/schemas/report.v1.json
Container Image
docker pull ghcr.io/michaeljfazio/dugite:2.0.1Available for linux/amd64 and linux/arm64.
Helm Chart
helm install dugite-relay \
oci://ghcr.io/michaeljfazio/charts/dugite-node \
--version 2.0.1 \
--set network.name=previewSee Kubernetes Deployment for the full chart reference.
Binary Downloads
| Platform | Architecture | Download |
|---|---|---|
| Linux | x86_64 | dugite-x86_64-linux.tar.gz |
| Linux | aarch64 | dugite-aarch64-linux.tar.gz |
| macOS | x86_64 | dugite-x86_64-macos.tar.gz |
| macOS | Apple Silicon | dugite-aarch64-macos.tar.gz |
Verify checksums: sha256sum -c SHA256SUMS.txt
Full Changelog: v2.0.0...v2.0.1