Skip to content

Release Notes - v0.70.13

Title: Improve storage resilience, network compatibility, and node observability

Date: Not provided

Version: v0.70.13

Release: v0.70.13

This release improves SQLite storage maintenance, bootstrap validation, governance compatibility, protocol handling, network configuration, health monitoring, and operational diagnostics. It also updates Cardano node compatibility requirements and improves trusted Mithril import performance.

NetworkCompatible
mainnet
preprod-testnet
preview-testnet
musashi

Important: The mainnet configuration now uses GenesisMode and requires Cardano node 11.1.0 or later.

  • Improved SQLite WAL maintenance with periodic best effort TRUNCATE checkpoints that use dedicated connections with a 250 ms timeout and stop safely during lifecycle changes.

  • Recorded the current RewardStakeCalculationVersion on imported reward snapshots, enabling fresh Mithril bootstraps to pass accounting-version validation.

  • Prevented core storage truncation before the consumed UTxO retention floor, preserving the history required for valid queries.

  • Updated GetGenesisConfig to use the compact NtC 21+ layout while preserving legacy encoding for older or direct callers.

  • Preserved typed DRep credential identity, added nullable governance proposal anchors through metadata migration v16, made SQLite migration expansion atomic, and improved conformance, replay state, and peer trace selection.

  • Rejected a mid chain first block after a rollback to origin, preventing the node from accepting an invalid chain restart.

  • Configured Koios with explicit dial, TLS, response header, and client timeouts so external requests fail within defined limits.

  • Cached reward live stake prepared statements with bounded retention within each transaction, reducing repeated statement preparation without retaining them indefinitely.

  • Accepted Byron outputs with a zero value while continuing to reject negative values with OutputNegativeByronError.

  • Resolved Dijkstra electing VRF keys at the captured slot while preserving existing Conway behavior.

  • Isolated BlockFetch endpoint test fixtures so endpoint behavior remains independent across tests.

  • Upgraded gouroboros to v0.205.2 and updated the related address handling, keepalive behavior, and local transaction submission.

  • Refreshed mainnet, preprod, and preview network configurations, topologies, snapshots, and Musashi logging.

  • Aggregated shared Koios reward accounts and reported discrepancies for each pool accurately.

  • Scaled optional block pipeline decode and validation workers to GOMAXPROCS within the supported range of 2 to 8, and corrected continuation audit and recovery rewind handling.

  • Bounded hard fork summary durations and reported overflow errors instead of allowing summaries to exceed supported limits.

  • Detected classic quorum based hard forks proactively and kept successor horizons anchored to the live chain tip.

  • Expanded SQL observability with query duration histograms, and kept disk metric scrapes from blocking on SQLite writes.

  • Exposed /health, /healthz, and /readyz on a dedicated configurable listener with Docker and Mithril health check integration.

  • Deferred only the startup operational certificate KES plausibility check when confirmed history trails the wall clock while retaining runtime enforcement.

  • Disabled persisted checkout credentials in CI and required explicit authentication for benchmark publishing.

  • Relaxed only the Conway protocol version 9 check for vote delegation by an unregistered DRep.

  • Raised SQLite wal_autocheckpoint to 10000 pages and added metrics for SQL operations, WAL activity, and disk usage.

  • Synchronized the cardano-configs container image with its embedded configuration files.

  • Parallelized trusted Mithril block decoding in ordered batches.

  • Added caching for insertUtxoModel UTxO INSERT operations and asset ID lookups in SQLite and PostgreSQL while preserving MySQL RETURNING behavior through dialect-aware handling. The associated BenchmarkInsertUtxoModel benchmark reported approximately 15–30% lower ns/op for the cached path than the legacy one-shot path, but this result applies only to that benchmark and does not establish a universal performance guarantee.

  • Enhanced chain selection with a 2-second switch-back cooldown, kept healthy in-flight block fetch batches when restarts extended a fork, and resynchronized after unrecoverable restart failures.

  • Consolidated reward live stake refreshes so each unique stake credential refreshes only once per transaction.

  • Replaced the local DMQ phase 2 authenticator with the gouroboros MessageAuthenticator, removed dmq.Authenticator and NewAuthenticator, and reserved node wiring for a future update.

  • Documented environment-specific Mithril API mode bootstrap measurements in the README for Preprod and Preview, and identified the values as planning baselines rather than capacity guarantees.

  • Validated Shelley pointer address payloads during UTxO parsing and rejected malformed pointers.

  • Expanded deterministic Leios fetch regression coverage to test deadline boundaries.

  • Updated Antithesis scripts to obtain stake address key hashes with cardano-cli latest stake-address key-hash.

  • Gated API listener starts, bounded context monitors, and prevented lifecycle state from persisting across restarts.

  • Anchored forging header encoding and KES signing to a stable chain tip when available, and rejected non-genesis candidate slots that were not later than the live tip.

  • Raised the test genesis maxLovelaceSupply, added preflight validation, corrected key ownership and Bash compatibility, and moved MinIO images to Quay.

  • Reused transaction-scoped prepared statements for batched API transaction writes and used MySQL LastInsertId handling.

  • Reserved Leios fetch capacity before publishing claims, separated manifest and transaction claims, and released claims correctly.

  • Enforced Byron minimum implicit transaction fees using the active Byron fee policy and reported FeeTooLowByronError when a transaction fell below the minimum.


Doc Holiday logo

Docs authored by Doc Holiday

Edit page

Last updated: