Skip to main content

Node v0.20.0 release notes

For the complete documentation index, see llms.txt
  • Version: v0.20.0
  • Date: January 28, 2026
  • Environment: Preview, Preprod

High-level summary

Node v0.20.0 is a major release focused on governance decentralization, security hardening, and performance improvements. It removes runtime sudo access, introduces governance and system-parameter upgrades, and updates to Ledger 7.0.0 with Midnight SRS and midnight-zk 1.0.

This release also improves operations through Prometheus Remote Write support and toolkit reliability fixes.


Audience

This release note is relevant for users who:

  • Run Midnight node infrastructure on Preview or Preprod
  • Operate governance or validator workflows
  • Integrate with Node RPC APIs
  • Use the Midnight toolkit for operational tasks

Summary of updates

The updates below describe the key changes introduced in this release.

  • Removed pallet_sudo from runtime and introduced governance-based root-call workflows
  • Migrated permissioned candidates contracts to Aiken-based versions with updated policy IDs
  • Added systemParameters_getAriadneParameters and deprecated sidechain_getAriadneParameters
  • Upgraded to Ledger 7.0.0 (includes Midnight SRS and midnight-zk 1.0)
  • Added Prometheus Remote Write support for push-based metrics collection
  • Improved runtime and governance safety checks
  • Delivered major cNIGHT query performance gains
  • Reduced maximum block size from 5 MB to 1 MB for network stability

New features

Below are the new features introduced in this release.

Governance and system parameters

Node v0.20.0 adds a system parameters pallet and governance-aligned root execution path, enabling managed updates to terms, D-parameter values, and related network parameters without runtime sudo.

Prometheus Remote Write support

Node now supports push-based metrics using Prometheus Remote Write for environments where pull-based scraping is not suitable.

Ledger 7.0.0 integration

The node now integrates Ledger 7.0.0, including:

  • Midnight-owned SRS parameters
  • midnight-zk 1.0 proving stack
  • Security and determinism improvements from the ledger upgrade

Improvements

Below are the improvements introduced in this release:

  • Improved federated authority observation by rejecting duplicated members
  • Strengthened runtime pre-dispatch checks to reduce abuse from failing guaranteed-phase transactions
  • Improved the performance of cNIGHT observation queries in PostgreSQL paths
  • Enhanced toolkit reliability for governance-wrapped transactions and ledger root-hash handling
  • Increased operational flexibility with toolkit options such as --no-watch-progress

Breaking changes

Below are the breaking changes and required actions for operators and integrators.

Runtime sudo removed

What changed: pallet_sudo has been removed from runtime control paths.

What breaks: Operational flows that rely on direct sudo access.

Required actions:

  • Move administrative flows to governance-approved mechanisms.
  • Update runbooks to use supported governance and root-call workflows.

Aiken migration for permissioned candidates contracts

What changed: Permissioned candidates contracts and data format moved to Aiken-based versions with updated policy IDs.

What breaks: Nodes and integrations using old policy IDs or legacy contract assumptions.

Required actions:

  • Update policy IDs for your target network.
  • Validate integrations that parse or consume permissioned candidate data.

API and extrinsic compatibility updates

What changed: New RPC endpoint systemParameters_getAriadneParameters; sidechain_getAriadneParameters is deprecated. set_tx_size_weight call index changed from 2 to 1.

What breaks: Hardcoded integrations using deprecated endpoint assumptions or pre-encoded extrinsics with old call indices.

Required actions:

  • Migrate API clients to the new RPC endpoint.
  • Regenerate and revalidate pre-encoded extrinsics that reference old call indices.

Block size limit reduced

What changed: Maximum block size reduced from 5 MB to 1 MB.

What breaks: Throughput assumptions or load profiles designed for the previous limit.

Required actions:

  • Re-benchmark transaction throughput and update load-test expectations.
  • Revisit batching strategies if needed.

Upgrade notes

  • This release provides a supported upgrade path from 0.18.x (0.19.0 was skipped).
  • If toolkit state mismatches are observed after upgrade, clear local toolkit cache and resync.
  • For push metrics, configure:
    • PROMETHEUS_PUSH_ENDPOINT
    • PROMETHEUS_PUSH_INTERVAL_SECS
    • PROMETHEUS_PUSH_JOB_NAME