Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion .github/styles/config/vocabularies/Midnight/accept.txt
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,24 @@ parameterization
Zswap
subquery
deserialization

yamux
Yamux
QANet
sudo
runbook
runbooks
extrinsic
extrinsics
hardcoded
rollout
resync
unban
subcommand
subcommands
tokenomics
cNIGHT
enum
validator
Prometheus
Permissioned

164 changes: 164 additions & 0 deletions docs/relnotes/node/node-0-18-0.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
---
Comment thread
gyrationtechs marked this conversation as resolved.
Comment thread
gyrationtechs marked this conversation as resolved.
Comment thread
gyrationtechs marked this conversation as resolved.
Comment thread
gyrationtechs marked this conversation as resolved.
SPDX-License-Identifier: Apache-2.0
copyright: This file is part of midnight-docs. Copyright (C) Midnight Foundation. Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Comment thread
gyrationtechs marked this conversation as resolved.
Comment thread
gyrationtechs marked this conversation as resolved.
title: Node v0.18.0 release notes
description: Node is a core component of the Midnight Network, responsible for syncing, validating transactions, and maintaining the chain state.
displayed_sidebar: sidebar
---

- **Version**: v0.18.0
- **Date**: December 15, 2025
- **Environment**: Preview

---

## High-level summary

This release introduces the new tokenomics model with unshielded transactions in addition to the existing shielded transactions and DUST-based fees instead of tDUST.
Comment thread
gyrationtechs marked this conversation as resolved.
The Midnight generator has been re-engineered into the Midnight toolkit with expanded capabilities.
Upgrades to Partner Chains v1.8.0.
The breaking changes in this release require chain reset and affects Preview developers and stake pool operators.

## Audience

This release note is critical for users who:

- Run a node on Preview.
- Use the Midnight generator (now Midnight toolkit).
- Operate stake pools or maintain infrastructure.
- Work with the NIGHT token or deploy contracts.

## Summary of updates

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

- Introduced unshielded transactions alongside existing shielded transactions
- Implemented new DUST fee mechanism generated from the NIGHT token
- Upgraded to Partner Chains v1.8.0
- Added Federated Authority Observation capabilities
- Reduced session length from 2 hours to 30 minutes (1200 slots → 300 slots) for improved stability
- Implemented state forking for ephemeral environments
- Enhanced security with non-root Docker container users
- Multiple critical bug fixes for DUST generation and registration

---

## New features

Below are the new features introduced in this release.

### Unshielded transactions

Midnight now supports unshielded transactions in addition to the existing shielded transactions. This provides developers with flexibility to choose the appropriate transaction type for their use case.

### DUST fee mechanism

Transaction fees are now paid using DUST, which is generated from the NIGHT token through the cNIGHT observation system. This tokenomics model creates a sustainable fee economy where NIGHT holders can generate DUST for paying transaction costs.
Comment thread
gyrationtechs marked this conversation as resolved.

### Midnight toolkit

The Midnight generator has been re-engineered into the Midnight toolkit, a command-line tool for developers. The new toolkit allows you to:

- Send Unshielded tokens.
- Send Shielded + Unshielded tokens between contract calls.
- Sync with local and remote networks.
- Calculate DUST fee.
- Execute compiled contracts.
- Pre-generate and send 100s of transactions (performance testing).
- Add support for node runtime forks.
- Fetch and print wallet state and DUST balance.
- Maintain contracts (updating authority + verifier keys).

### Federated Authority Observation
Comment thread
gyrationtechs marked this conversation as resolved.

Introduces observability of the federation authorised to produce Midnight blocks.

### State forking for ephemeral environments

Enables snapshot and restore capabilities for node state. This allows developers to create ephemeral test environments that can be quickly spun up from specific chain states.
Comment thread
gyrationtechs marked this conversation as resolved.

---

## New features requiring configuration updates

Below are the features requiring user action.

### Session length reduction

Sessions reduced from 2 hours (1200 slots) to 30 minutes (300 slots).

**Required updates**:

- Update monitoring and automation scripts that depend on session timing.
- Adjust stake pool operator workflows for shorter session cycles.

### Network ID convention change
Comment thread
gyrationtechs marked this conversation as resolved.

Network IDs now follow Polkadot standard with `midnight_` prefix.

**Required updates**:

- Update chain specifications and configuration files to use new format.
- Chain spec now uses `id` field for network identification.

---

## Improvements

Comment thread
gyrationtechs marked this conversation as resolved.
Below are the improvements introduced in this release.

- Enhanced DUST registration error handling.
- Improved UTXO ordering and capacity management.
- Added JSON output for wallet state.
- Added flexible transaction command flags.
- Indexing status is now output to `stderr` when syncing, separating it from data output on `stdout`.

---

## Breaking changes

The following changes are critical and will break previous functionality.

### Non-root Docker containers

**What changed**: Docker images now run as non-root `appuser` instead of root.

**What breaks**: Volume mounts without proper permissions will fail, scripts assuming root access will break.

**Required actions**:

- Review security configurations with new non-root container requirements.
- Set `RESTORE_OWNER` environment variable if needed for automated ownership correction.

### NetworkId type change
Comment thread
gyrationtechs marked this conversation as resolved.

**What changed**: `NetworkId` changed from `enum` to `String` type.

**What breaks**: Any code that pattern matches on NetworkId enum variants will fail to compile.
Comment thread
gyrationtechs marked this conversation as resolved.

**Required actions**:

- Update all `NetworkId` references to treat as `String`.
- Replace `enum` pattern matching with string comparisons.

---

## Known issues

Cost model integration incomplete.

**Description**: The cost model integration is still in early stages and requires significant fine-tuning. Without proper cost limiting, blocks can become too full and cause network instability.

**Workaround**: Limit transactions to 1 per block until the next version is available. This can be configured by sending an extrinsic of the Midnight pallets' `setMnTxWeight` to 1,000,000,000,000 using governance. This temporary limitation ensures network stability while cost model optimization continues.
Comment thread
gyrationtechs marked this conversation as resolved.

---

## Links and references

- **Artifacts**: [Midnight node](https://hub.docker.com/r/midnightnetwork/midnight-node).
- **Midnight toolkit**: [CLI toolkit usage guide](https://github.com/midnightntwrk/midnight-node/blob/main/util/toolkit/README.md).
- **Midnight Node**: [Node operator guide](../../nodes/).
- **GitHub release**: [Midnight Node-0.18.0 release](https://github.com/midnightntwrk/midnight-node/releases/tag/node-0.18.0).
- **DUST**: [DUST architecture overview](https://docs.midnight.network/blog/dust-architecture).
- **Community support**: Join the discussion on [Discord](https://discord.com/invite/midnightnetwork).
- **Known issues board**: Midnight Node [GitHub issues](https://github.com/midnightntwrk/midnight-node/issues).
151 changes: 151 additions & 0 deletions docs/relnotes/node/node-0-20-0.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
---
Comment thread
gyrationtechs marked this conversation as resolved.
Comment thread
gyrationtechs marked this conversation as resolved.
SPDX-License-Identifier: Apache-2.0
copyright: This file is part of midnight-docs. Copyright (C) Midnight Foundation. Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Comment thread
gyrationtechs marked this conversation as resolved.
Comment thread
gyrationtechs marked this conversation as resolved.
title: Node v0.20.0 release notes
description: Node is a core component of the Midnight Network, responsible for syncing, validating transactions, and maintaining the chain state.
displayed_sidebar: sidebar
---

- **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
Comment thread
gyrationtechs marked this conversation as resolved.
- 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
Comment thread
gyrationtechs marked this conversation as resolved.
- 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
Comment thread
gyrationtechs marked this conversation as resolved.
- 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
Comment thread
gyrationtechs marked this conversation as resolved.

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
Comment thread
gyrationtechs marked this conversation as resolved.
- 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.
Comment thread
gyrationtechs marked this conversation as resolved.

**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
Comment thread
gyrationtechs marked this conversation as resolved.

**What changed**: Permissioned candidates contracts and data format moved to Aiken-based versions with updated policy IDs.
Comment thread
gyrationtechs marked this conversation as resolved.

**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.
Comment thread
gyrationtechs marked this conversation as resolved.

### 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`.
Comment thread
gyrationtechs marked this conversation as resolved.

**What breaks**: Hardcoded integrations using deprecated endpoint assumptions or pre-encoded extrinsics with old call indices.
Comment thread
gyrationtechs marked this conversation as resolved.

**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).
Comment thread
gyrationtechs marked this conversation as resolved.
- If toolkit state mismatches are observed after upgrade, clear local toolkit cache and resync.
Comment thread
gyrationtechs marked this conversation as resolved.
- For push metrics, configure:
- `PROMETHEUS_PUSH_ENDPOINT`
- `PROMETHEUS_PUSH_INTERVAL_SECS`
- `PROMETHEUS_PUSH_JOB_NAME`

---

## Links and references

- **GitHub release**: [Midnight Node v0.20.0](https://github.com/midnightntwrk/midnight-node/releases/tag/node-0.20.0)
- **Node operator guide**: [Run a node](../../nodes/)
- **Ledger changelog**: [Ledger v7.0.0 changelog](https://github.com/midnightntwrk/midnight-ledger/blob/ledger-7.0.0/CHANGELOG.md)
- **Partner Chains**: [Partner Chains v1.8.1](https://github.com/input-output-hk/partner-chains/releases/tag/v1.8.1)

Loading
Loading