Skip to content

Release Notes - 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.

NetworkCompatible
mainnet
preprod-testnet
preview-testnet
musashi
  • Strengthened inbound block validation by checking Byron block body proofs and genesis maxHeaderSize and maxBlockSize, 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 WaitForTx references unless they contain exactly 32 bytes, returning InvalidArgument before 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 uint16 transaction-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.0 and golang.org/x/sync v0.22.0.

  • Validated Node.New configuration 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 maxResults for 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 FollowTip and WatchTx intersection lists through configured MaxBlockRefs, 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 Stop and Start interactions safe.

  • Corrected immutable chunk boundaries and trailing empty chunks, validated exact slot and hash matches for GetBlock and truncation, and reported partial truncation errors with removed-entry counts.

  • Matched UTxO-RPC MintsAsset results to signed, nonzero mint and burn quantities, including policy-only patterns, while preventing transfers from matching.

  • Adjusted Mesh /network/status so Synced is true only when optional MeshSyncProgress reports exactly 1; missing, unknown, or behind progress now reports false. This status is not a readiness check.

  • Serialized Node.Stop with active Restore, Truncate, and Snapshot operations 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_BUSY failures and migration hangs.

Full Changelog: v0.70.7…v0.70.8


Doc Holiday logo

Docs authored by Doc Holiday

Edit page

Last updated: