Release Notes - v0.79.1
v0.79.1
Section titled “v0.79.1”Title: Improve ledger correctness, state queries, installation, and operational resilience
Date: 2026-10-07
Version: v0.79.1
Release: v0.79.1
Dingo v0.79.1 improves ledger validation, historical state queries, network peer selection, database recovery, Mithril imports, and release installation. It also strengthens API error responses, governance integrity checks, and operational observability.
Recommended Network Compatibility ⚠️
Section titled “Recommended Network Compatibility ⚠️”| Network | Compatible |
|---|---|
| mainnet | ⛔ |
| preprod-testnet | ✅ |
| preview-testnet | ✅ |
| musashi | ✅ |
Metadata and interoperability
Section titled “Metadata and interoperability”- Strengthened metadata handling by validating deterministic decoding across CBOR key orders, preserving reliable Blockfrost pagination and raw-CBOR or JSON-unavailable behavior.
- Expanded validation for deeply nested PlutusData round trips through CBOR mapping and protobuf binary and JSON representations.
- Improved MCP schema discovery by enforcing a five-second minimum startup timeout, while expanding coverage for deeply nested Conway redeemer persistence.
Ledger and state queries
Section titled “Ledger and state queries”- Corrected Dijkstra transaction validation so governance, certificate, and entity rules apply only to declared-valid transactions while structural and collateral checks continue to apply to declared-invalid transactions.
- Updated Dijkstra reward and stake reconstruction, prototype closure context, genesis pool deposit recording, and reward stake calculation version 3. Existing databases with stale computed state require replay or a trusted ledger-state import.
Installation
Section titled “Installation”- Introduced platform-native release installation for
@blinklabs/dingowith SHA-256 verification, atomic installation, Node wrapper argument, signal, and exit forwarding, a Node>=22requirement, supported OS and CPU metadata, and npm publishing support.
Database operations
Section titled “Database operations”- Reduced SQLite writer contention during Mithril bulk imports by serializing metadata-writing phases and suppressing or retrying scheduled checkpoints.
API behavior
Section titled “API behavior”- Clarified Blockfrost HTTP responses: documented but unsupported operations return JSON
501, incorrect methods return JSON405withAllow, and unknown paths remain404.
Network and peer governance
Section titled “Network and peer governance”- Enhanced peer governance with stake-weighted ledger relay discovery, peer scoring,
MultiHostNameSRV resolution, and graceful handling of stake lookup failures. - Required corroborated Genesis frontiers for chain selection and added bounded same-pool equivocation detection with the
dingo_equivocation_total{pool_id,self_key}metric.
Snapshot management
Section titled “Snapshot management”- Added a configurable snapshot commit-pause bound through
--db-snapshot-max-commit-pauseandDINGO_DB_LIFECYCLE_SNAPSHOT_MAX_COMMIT_PAUSE, with metrics and cleanup after timeouts.
State queries
Section titled “State queries”- Refined LocalStateQuery
GetUTxOByAddress,GetAccountState, andGetStakeSnapshotsso each honors the acquired point and rejects unavailable historical points duringAcquire. - Protected acquired LocalStateQuery points from pruning and returned
AcquireFailurePointTooOldwhen a requested point was already unavailable. - Optimized reward and live-stake rebuilds by refreshing SQLite planner statistics before lookups, allowing indexes to guide queries instead of transaction-table scans.
Protocol and validation
Section titled “Protocol and validation”- Upgraded
gouroborostov0.210.0andplutigotov0.8.0, enforced Byron input indexes at65535or below, improved MIR validation, and warned when Conway genesis or imported governance actions had not taken effect. - Synchronized security-parameter reads with ledger updates to prevent data races while the node serves requests.
Governance integrity
Section titled “Governance integrity”- Stabilized snapshot pause metric coverage for consistent operational measurements.
- Verified purpose roots during Mithril import, startup, and epoch tally; missing or invalid roots now return
ErrMissingEnactedRootinstead of bypassing validation.
Conformance and recovery
Section titled “Conformance and recovery”- Pinned devnet conformance ledger samples to one acquired point on both producers and enforced the target epoch boundary.
- Aligned LocalStateQuery
GetStakePoolsandGetStakeDelegDepositsresponses with the acquired point. - Secured commit-timestamp recovery rewinds and orphan cleanup by serializing them, failing closed on deletion errors, and preserving continuation-audit state only when it remains valid after a rewind.
Docs authored by Doc Holiday