Release Notes - v0.70.3
v0.70.3
Section titled “v0.70.3”Title: Strengthen governance, synchronization, and node reliability
Date: Not provided
Version: v0.70.3
This release strengthens governance processing, historical synchronization, ledger safety, block production, and operational reliability for Dingo nodes and library consumers.
Recommended Network Compatibility ⚠️
Section titled “Recommended Network Compatibility ⚠️”| Network | Compatible |
|---|---|
| mainnet | ⛔ |
| preprod-testnet | ✅ |
| preview-testnet | ✅ |
| musashi | ✅ |
✨ Highlights
Section titled “✨ Highlights”-
Fixed Conway withdrawal redeemer detection by using the withdrawal staking credential, including addresses that combine a base payment script with a staking script.
-
Expanded automated test coverage so Linux race tests, Windows tests, and macOS tests run for submitted changes and updates to the primary development line. Docker workflows now run without a path filter, and the relevant test timeouts are longer.
-
Prevented automatic snapshots at epoch boundaries when Dingo uses Badger, while preserving manual snapshot creation.
-
Strengthened conformance testing with real SQLite, PostgreSQL, and MySQL backends and corrected edge cases in SQL behavior.
-
Improved startup chain selection by seeding it with the ledger tip that Dingo has already applied.
-
Applied Conway stake pool operator non voter rules to hard fork initiation and bootstrap governance actions.
-
Enabled Plutus phase two validation during deep historical replay when historical validation is enabled.
-
Extended the release race test package timeout from 20 minutes to 30 minutes.
-
Restricted the DevNet harness to Linux so its supported execution environment is explicit.
-
Standardized Go formatting with the
golines80 character rule. -
Updated OpenTelemetry OTLP dependencies to v1.46.0 for current telemetry integrations.
-
Secured governance ratification and enactment by making them atomic, handling deterministic failures without wedging epoch rollover, and persisting ratification history.
-
Refreshed the Blockfrost explorer example with
@types/nodev26.4.0. -
Stabilized cloud snapshot pruning tests and corrected path handling on Windows.
-
Made MIR boundary application atomic, added pot capacity checks, and made effects that exceed the available capacity have no effect.
-
Added Bash installation to the Antithesis instrumentation environment.
-
Preserved reward balances during Mithril API historical backfill and improved synchronization error logging.
-
Introduced support for Dijkstra governance epochs and retained protocol parameters across restarts.
-
Enforced the operational certificate KES lifetime during block forging and required validated lifetime data.
-
Delayed forged block events until block acceptance and added a durable duplicate slot fence to synchronization state.
-
Clarified Preview API bootstrap timing and disk requirements in the documentation.
-
Completed consumed UTxO cleanup during shutdown so pending cleanup work drains before the process exits.
-
Updated
gouroborosto v0.202.4 and preserved Byron PBFT delegation CBOR compatibility. -
Excluded
.claudeworktrees from Makefile module discovery. -
Upgraded AWS SDK for Go v2 dependencies for current AWS integrations.
-
Improved Blockfrost address and account UTxO pagination by bounding page values, calculating totals with count and reference scans, and retrieving only the requested page.
-
Isolated concurrent DevNet runs across worktrees with separate Compose projects, network subnets, topology directories, and derived ports. Custom scenario calls require Compose project environment variables.
-
Expanded lint coverage across every Go module and Windows build tags, updated pre-commit lint guidance, and hardened related code paths.
-
Streamlined conformance runs by replaying each corpus once per backend and resetting only dirty tables, improving diagnostics and backend test efficiency.
-
Aligned Blockfrost transaction evaluation with its documented contract by adding the
/api/v0/utils/txs/evaluate/utxosendpoint, using the Ogmios v5 response envelope, accepting base16 and base64 input, enforcing strict version handling, and validatingadditionalUtxoSet. -
Enforced
CommitteeTermLimitduringUpdateCommitteegovernance ratification. -
Updated the Docker Go builder image from
1.26.3-1to1.26.7-1. -
Verified peer header cryptography before Genesis chain selection observes a peer, while preserving deferred fast sync behavior.
-
Refreshed
@types/nodeto26.4.0in thedingo-sundae-previewexample. -
Recovered abandoned Leios block transaction fetches through the
gouroborosdependency update and failover behavior. -
Rejected out-of-range UTxORPC Plutus constructor tags and propagated nested conversion errors.
-
Refined Google dependency alignment by updating
google.golang.org/apitov0.294.0. -
Clarified strict Koios parity handling by treating departed pools as informational instead of failing the epoch.
-
Deferred live stake rebuilds during historical API backfill and rebuilt them once after replay, with checkpoint-safe cancellation and error handling.
-
Restored governance and conformance tests by persisting the ratified epoch and boundary slot together and correcting the SPO fixture.
-
Tolerated legitimate cross-endorser-block UTxO double consumption on Leios closure paths and validated full transaction hashes.
-
Required on-chain Leios voter keys to pass proof-of-possession verification in reference and production modes. Removed the
leiosVoterPublicKeysYAML and CLI settings and theDINGO_LEIOS_VOTER_PUBLIC_KEYSenvironment variable. -
Upgraded Badger to
v4.9.6. -
Updated the packaged
txtopbuild stage tov0.16.0.
Full Changelog: v0.70.2…v0.70.3
Docs authored by Doc Holiday