Release Notes - v0.70.12
v0.70.12
Section titled “v0.70.12”Title: Improve historical query accuracy, governance import safety, and node reliability
Date: Not provided
Version: v0.70.12
Release: v0.70.12
This release makes historical LocalStateQuery results more accurate, validates Mithril governance and bootstrap state, improves peer recovery and stake distribution accuracy, and strengthens topology and database safeguards. It also improves diagnostic audit behavior, persistence safety, observability, and dependency maintenance.
Recommended Network Compatibility ⚠️
Section titled “Recommended Network Compatibility ⚠️”| Network | Compatible |
|---|---|
| mainnet | ⛔ |
| preprod-testnet | ✅ |
| preview-testnet | ✅ |
| musashi | ✅ |
✨ Highlights
Section titled “✨ Highlights”-
Improved continuation-audit diagnostics by preserving producer and endorser tracking across rollback rearming and recovery rewinds, serializing audit-window ownership, carrying primary-chain evidence forward, and protecting producer and endorser queues from concurrent access. The audit remains diagnostic-only and no longer reports false errors or concurrent map failures.
-
Added pinned query behavior to LocalStateQuery
GetUTxOWhole, including as-of UTxO iteration and a clearErrHistoricalStateUnavailableresponse for pins older than the spent-UTxO retention floor. Queries no longer drift when the chain tip changes during execution. -
Validated imported Conway committee state against the enacted governance state during Mithril imports, failing closed on unexplained mismatches or parse failures while allowing legitimate
NoConfidenceandUpdateCommitteetransitions. -
Fixed the LocalStateQuery test call by supplying
trusted=false, sogo vet ./ouroboros/...now completes successfully without changing runtime behavior. -
Cached the prepared statement used for live stake sums per Store, invalidated it across lifecycle changes, and retained a fallback path when the cache misses.
-
Recycled a peer after 20 non-extending block rejections within 30 seconds on one connection, cleared the count after a successful extension, and added Prometheus counters for the condition.
-
Computed
GetStakeDistributionfrom live stake at the requested slot instead of the mark snapshot, preserved zero-stake pools, used historical VRF registrations for pinned queries, and counted unresolved pool omissions. -
Reduced consumed-UTxO deduplication overhead by removing per-input
Sprintfallocation, corrected double-hex-encoded log and hash formatting, and updatedgoogle.golang.org/apifrom0.294.0to0.297.0. -
Skipped genesis UTxO, staking, and governance reinsertion after Mithril bootstrap while retaining synthetic genesis CBOR.
-
Hardened topology validation by checking access-point addresses and ports, enforcing
warmValency <= valencyandvalency <=the access-point count when applicable, and rejecting unsupported SRV relay validation. -
Updated Dingo dependencies to
gouroboros0.204.7,plutigo0.7.0, and related Go versions, and classified duplicate-key metadata maps asErrJSONUnavailable. -
Made LocalStateQuery
AcquireSpecificPointvalidate points immediately, map invalid or too-old points to graceful wire-level acquire failures, and avoid recording invalid points. -
Refined the
RewardStakeCalculationVersionstartup and rebootstrap gate, added migration v15 to restamp safe snapshot rows, and reported the affected epochs. -
Bounded imported operational certificate counters before persistence so out-of-range state fails without writing it.
Docs authored by Doc Holiday