Node
Node is a component of the blockchain infrastructure that interacts with the Midnight network to perform tasks such as syncing, validating transactions, and maintaining the chain state.
5 December 2024
Midnight 0.7.0 release notes
This release introduces a variety of improvements and new features designed to enhance functionality, optimize performance, and improve the developer experience. The node includes reworked RPC error handling for clearer error reporting and maintains backward compatibility with the existing indexer.
Compatible Versions
This release has been tested with the following components:
- Cardano: 10.1.2
- PartnerChains: 1.2
- PartnerChains Smart Contract: 6.2.1
- DbSync: 13.5.0.2
- Kupo: 2.9.0
- Ogmios: 6.5.0
- Midnight Ledger: 3.0.2
- Midnight Lace Wallet: 1.2.3
- Scala Indexer: 2.2.7
- Midnight JS: 0.25
New Features
- Added governance capabilities to pause/unpause extrinsic calls via
pallet-tx-pause. - Exposed LedgerParameters and TransactionCostModel through new Runtime APIs.
- Introduced the ability to set the threshold of votes required for upgrades.
- Added the
BOOTNODESenvironment variable for easier configuration. - Included curl in Docker images to support health checks with
docker-compose. - Enabled live memory profiling by adding
bytehoundto Docker images. - Introduced a new Earthly target:
+generate-keys-qanetfor easier key generation. - Added configuration files for the new testnet-preview QA environment.
Changes
- Upgraded Rust compiler from 1.78 to 1.82.
- Updated weights to use ParityDB rather than RocksDB .
- Allowed the transaction generator and upgrader tools to connect to insecure RPC endpoints.
- Refactored the Ledger API to surface errors from
midnight_ledgertomidnight_palletand Runtime APIs. - Enabled the new Ledger API v2.
- Reduced the node image size by approximately 1.7GB.
- Changed config presets to use relative paths for better portability.
- Updated chain specs with existing bootnode addresses to reduce manual configuration.
Bug Fixes
- Fixed RPC endpoints to handle multiple
MidnightRuntimeApiversions. - Fixed memory consumption during transaction validation.
- Resolved issues with the mint coins host function.
- Fixed JSON block RPC method issues in the QA environment.
- Improved transaction generator stability on ARM architectures.
- Fixed chain spec bootnodes.
Breaking Changes
- Runtime changes now expose new
Ledger API v2functionality. - Reworked RPC error handling might require adjustments.
- Updated session initialization order in the runtime configuration.
Known Issues
- Further optimizations for live memory profiling are planned.
Upgrade Instructions
- Update the node to version 0.7.0 by pulling the latest changes and assets.
- Update your Rust compiler to version 1.82 to ensure compatibility.
- Integrate the updated bootnode addresses into your chain specs.
- Test and validate transaction workflows with the new Ledger API v2 and Runtime API updates.
- Configure governance settings to use the new
pallet-tx-pausefor pausing/unpausing extrinsics if required.