Highlights — two consensus-critical ledger correctness fixes
Both are byte-exactness corrections vs cardano-node. No re-sync required — snapshot format is unchanged.
- #763 — reserves / treasury / reward drift fixed. The per-pool
BlocksMadecounter (epoch_blocks_by_pool) could drift during live sync, because it was reconstructed via an increment that cannot recover blocks applied through no-delta paths (gap-bridge advance / chunk replay after restarts or fork rollbacks). A short count skews the monetary-expansioneta = blocksMade/expectedBlocks, drifting reserves, treasury, and per-account rewards (and could trigger aWithdrawalAmountMismatchhalt). It is now reconstructed from an absolute per-delta snapshot, matching the existingreward_accounts/gov/pool_paramspattern. Verified no-drift by a live preview soak across a 41-restart epoch boundary — block count (2502), reserves, and treasury all byte-exact vs Koios. - #772 — Phase-2 script-evaluation over-charge fixed. The PlutusV1/V2
ScriptContextvalidity-range upper-bound closure was gated on the script language instead of the era. In Conway a finite upper bound is exclusive (strictUpperBound); pre-Conway a ttl-only bound is inclusive (PV1.to). The mismatch over-charged a validity-range-reading redeemer by +1453 cpu, flippingis_valid. Localized by building cardano-ledger and leaf-diffing its constructedScriptContextagainst dugite's (the closure was the only differing leaf); the fix makes the eval byte-exact (774,090,127).
Container Image
docker pull ghcr.io/michaeljfazio/dugite:2.0.13Available for linux/amd64 and linux/arm64.
Helm Chart
helm install dugite-relay \
oci://ghcr.io/michaeljfazio/charts/dugite-node \
--version 2.0.13 \
--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
What's Changed
- fix(ledger): reconstruct epoch_blocks_by_pool from absolute snapshot (#763) by @michaeljfazio in #776
- fix(uplc): era-gate validity-range upper-bound closure in ScriptContext (#772) by @michaeljfazio in #777
- chore(release): bump version to 2.0.13 by @michaeljfazio in #778
Full Changelog: v2.0.12...v2.0.13