Release Notes - v0.70.8
v0.70.8
Section titled “v0.70.8”Title: Improve validation, synchronization, network safety, and API reliability
Date: Not provided
Version: v0.70.8
Release: v0.70.8
This release improves block and snapshot validation, peer safety, chain synchronization, API input handling, and recovery behavior 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”-
Strengthened inbound block validation by checking Byron block body proofs and genesis
maxHeaderSizeandmaxBlockSize, while still accepting structured blocks that do not carry wire CBOR. -
Synchronized snapshot backup files and destination directories before publishing manifests, and rejected incomplete snapshots during restore.
-
Enforced the two distinct Leios announcement limit for each
(slot, issuer)across relay sources and reconnects, preventing duplicate announcements from bypassing the budget. -
Filtered peer-sharing addresses in both directions when they are non-routable or use port
0, including IPv6 ORCHIDv2 addresses. -
Rejected UTxO-RPC
WaitForTxreferences unless they contain exactly 32 bytes, returningInvalidArgumentbefore downstream processing. -
Stabilized chain selection by avoiding peer changes when peers advertise the same tip and retained history shows no contradiction.
-
Preserved the first fatal error reported by the ledger through node shutdown so callers receive the original failure.
-
Retained full
uint16transaction-rejection era values instead of truncating them. -
Refreshed tracked ChainSync client state atomically on rollback without recreating removed clients.
-
Redacted credentials from token-registry synchronization logs and error strings while preserving error unwrapping.
-
Updated the nested Gov Lens example dependencies to
golang.org/x/text v0.41.0andgolang.org/x/sync v0.22.0. -
Validated
Node.Newconfiguration before mutating caller-owned Prometheus registries. -
Reset SQLite conformance backends in place, preserving migration state while clearing blobs.
-
Rejected over-budget TxSubmission replies before transaction decoding.
-
Limited LeiosFetch vote-ID requests to 1,000 per request; larger requests require batching.
-
Prevented DRep expiry arithmetic overflow without changing stored values.
-
Hardened CBOR decoding, SQL ranges, blob timestamps, and block verification; required positive
maxResultsfor UTxO-by-address APIs; and standardized transaction panic errors. -
Blocked malformed Mesh construction elements and input indexes beyond
uint32. -
Pinned Mithril artifact identity across interrupted synchronization and import resumes, and improved redacted digest-mismatch diagnostics.
-
Established a cap on UTxO-RPC
FollowTipandWatchTxintersection lists through configuredMaxBlockRefs, which defaults to 100. -
Bounded Koios account parity checkpoint retention to four epochs, preserved zero-reward summaries, and made pruning failures non-fatal.
-
Resolved missing historical pool VRF keys below a Mithril anchor from live registration only in the bootstrap-specific case.
-
Eliminated chain synchronization deadlocks by publishing genesis selection state as one consistent snapshot without blocking active synchronization on selection state, preventing synchronization from stopping permanently.
-
Isolated Plutus cost model data between evaluations, preventing concurrent validation conflicts across the root and Antithesis modules.
-
Initialized hashes before publishing decoded Ouroboros blocks and headers to shared caches, preventing inconsistent hashes during concurrent first use across supported decoding paths.
-
Updated leader election cancellation and restart behavior to wait for each generation to finish before reusing state, making
StopandStartinteractions safe. -
Corrected immutable chunk boundaries and trailing empty chunks, validated exact slot and hash matches for
GetBlockand truncation, and reported partial truncation errors with removed-entry counts. -
Matched UTxO-RPC
MintsAssetresults to signed, nonzero mint and burn quantities, including policy-only patterns, while preventing transfers from matching. -
Adjusted Mesh
/network/statussoSyncedis true only when optionalMeshSyncProgressreports exactly1; missing, unknown, or behind progress now reports false. This status is not a readiness check. -
Serialized
Node.Stopwith activeRestore,Truncate, andSnapshotoperations under one shutdown deadline, canceled early, waited to acquire the lifecycle gates, and kept shutdown retryable after a lifecycle-gate timeout. -
Validated AWS and GCS reverse-key spool frame lengths before allocation and rejected malformed frames without proceeding, improving storage reliability.
-
Stabilized Koios parity cache writes through a single SQLite connection and corrected legacy schema migration checks, preventing
SQLITE_BUSYfailures and migration hangs.
Full Changelog: v0.70.7…v0.70.8
Docs authored by Doc Holiday