Releases: midnightntwrk/midnight-node
node-0.18.1-ledger-61-support
Note
This release was created to provide a tag for toolkit users to support networks still running Ledger 6.1 - this is not a release candidate
Git tag: node-0.18.1-ledger-61-support
Docker Images
DockerHub
$ docker pull midnightntwrk/midnight-node:0.18.1-ledger-61-support
$ docker pull midnightntwrk/midnight-node-toolkit:0.18.1-ledger-61-supportnode-0.20.0-rc.1-ledger-7-alpha.1
Git tag: node-0.20.0-rc.1-ledger-7-alpha.1
Docker Images
DockerHub
$ docker pull midnightntwrk/midnight-node:0.20.0-rc.1-ledger-7-alpha.1
$ docker pull midnightntwrk/midnight-node-toolkit:0.20.0-rc.1-ledger-7-alpha.1Added
Federated Authority Observation | query Cardano members (#215, PM-18914) (#runtime, #node, #client)
Now members’ Cardano public key hashes are also queried from the mainchain and properly stored in Midnight.
PR: #215
JIRA: https://shielded.atlassian.net/browse/PM-18914
Federated Authority Observation | VersionedMultisig datum support (#395, PM-20959) (#runtime, #node)
Updated the governance datum decoder to support the new VersionedMultisig format which includes a round field alongside the authority data. This enables future governance round tracking capabilities.
PR: #395
JIRA: https://shielded.atlassian.net/browse/PM-20959
Add System Parameters pallet (#387, PM-20991) (#runtime, #client)
Adds the system parameters pallet for managing on-chain governance parameters. Stores Terms and Conditions (hash + URL) and D-Parameter values, initialized at genesis from JSON config files. Provides extrinsics to update values with Root origin, runtime APIs, and RPC endpoints for querying current values.
PR: #387
JIRA: https://shielded.atlassian.net/browse/PM-20991
Add Partnerchains Protocol Bridge pallet (#245, PM-18540) (#runtime, #client)
Adds the partnerchains protocol bridge pallet, without wiring it to the ICS contract.
PR: #245
JIRA: https://shielded.atlassian.net/browse/PM-18540
add authorities proof (#233, PM-18518) (#relayer)
Use the validator set, and the beefy signed commitment to generate merkle proof
PR: #233
JIRA: https://shielded.atlassian.net/browse/PM-18518
cardano encoding (#235, PM-18518) (#relayer)
Includes adding the RelayerChainProof
PR: #235
JIRA: https://shielded.atlassian.net/browse/PM-18518
insert beefy keys (#219, PM-18518) (#relayer)
Lets you insert beefy keys to the chain
PR: #219
JIRA: https://shielded.atlassian.net/browse/PM-18518
Sudo account sufficients migration (#247, PM-20448) (#runtime, #migrations)
Migration that increments the sudo account sufficients to a very hight number to ensure the account will always remain alive, regardless of whether it is part of the Federated Authority members.
PR: #247
JIRA: https://shielded.atlassian.net/browse/PM-20448
Allow padding input seeds with zeros using `..` (#246, PM-19957) (#toolkit)
Useful to reduce length of cli args
e.g:
10..01becomes1000000000000000000000000000000000000000000000000000000000000001..01becomes0000000000000000000000000000000000000000000000000000000000000001
etc.
PR: #246
Ticket: https://shielded.atlassian.net/browse/PM-19957
Add `maintain-contract` and `maintain-circuit` comannds to `generate-intent` (#139, PM-19870) (#toolkit)
Lets you build maintenance transactions for a contract.
PR: #139
JIRA: https://shielded.atlassian.net/browse/PM-19870
Add `show-ledger-parameters` command (#299, PM-20477) (#toolkit)
This command shows the parsed ledger parameters and allows overriding them.
PR: #299
Ticket: https://shielded.atlassian.net/browse/PM-20477
Add `update-ledger-parameters` command (#299, PM-20477) (#toolkit)
This command starts the ledger parameters update process.
PR: #299
Ticket: https://shielded.atlassian.net/browse/PM-20477
Changed
Allow for readonly connection to db-sync postgres (#413, PM-20212)
PR: #413
Issue: #170
Ticket: https://shielded.atlassian.net/browse/PM-20212
Require SSL for PostgreSQL database connections (#199, PM-19924) (#audit, #node)
PostgreSQL connections now require SSL/TLS by default to protect data in transit.
Changes:
- Default SSL mode changed from
PrefertoRequire - Added
ALLOW_NON_SSLenvironment variable to optionally allow non-SSL connections for development - Production environments (qanet, testnet-02) explicitly disable non-SSL fallback
Security Impact:
- Connections will fail if the PostgreSQL server does not support SSL
- Operators must ensure their PostgreSQL instances have SSL certificates configured
PR: #199
Ticket: https://shielded.atlassian.net/browse/PM-19924
Remove panic in inherent data source creation (#190, PM-20012) (#audit, #client)
Avoid unwrap in inherent data source creation
PR: #190
Ticket: https://shielded.atlassian.net/browse/PM-20012
Enable ARM64 builds in CI pipelines (#375, PM-21000)
ARM64 Docker image builds are now available in PR and merge queue pipelines.
For PRs, add the ci:arm64 label to trigger ARM64 builds. Merge queue and
manual workflow dispatches always run ARM64 builds.
PR: #375
Ticket: https://shielded.atlassian.net/browse/PM-21000
Update `simple-merkle-tree` artifacts, now compiled using compactc-v0.27.109-alpha.0 (#409) (#toolkit)
PR: #409
Connect Ledger tx cost to Substrate weight (PM-19763, #331) (#runtime, #client)
Ticket: https://shielded.atlassian.net/browse/PM-19763
PR: #331
node-0.18.0
Git tag: node-0.18.0
Docker Images
Node: docker pull midnightntwrk/midnight-node:0.18.0
Toolkit: docker pull midnightntwrk/midnight-node-toolkit:0.18.0
Midnight Node v0.18.0
This is the first official release since node-0.12.1 (which was based on partner chains 1.5.1), and is the first official release since open sourcing the codebase.
The delay in public releases was to allow time to comprehensively implement the new tokenomics model. These features are deeply interconnected, so we integrated them together rather than releasing them incrementally.
-
Expanded Transaction Types: You can now perform unshielded transactions alongside the existing shielded transactions, offering greater flexibility and choice.
-
New Fee Mechanism: Transaction fees are now paid for using DUST, which is generated from the NIGHT token. This new system is central to our economic model.
-
Based on v1.8.0 of Partner Chains
Stability Guarantees
- This version uses midnight ledger 6.1 which does not include stability guarantees when upgrading to a new version. As such please expect that a chain reset will be required to upgrade to the next version of the midnight node.
Known Issues
- Early integration of cost model is still ongoing and needs significant fine-tuning. To ensure a block doesn't become too full, please limit tx to 1 per block (until next version is available). This can be done by sending an extrinsic of the midnight pallets' setMnTxWeight to 1,000,000,000,000 using governance. ( #374 )
For Stake Pool Operators
Breaking Changes:
- Docker images now run as non-root user appuser by default for improved security
- Session length reduced from 2 hours to 30 minutes (1200 slots → 300 slots) for better network stability
- NetworkId changed from enum to
Stringtype
Configuration Updates:
- New
preprodconfiguration preset available for a federated preprod environment. - SPOs should continue targeting preview environment.
Infrastructure:
- Network ID convention now follows Polkadot standard with
midnight_prefix - State snapshot/restore capabilities added for ephemeral environments
- Chain spec now uses
idfield for network identification
Action Required:
- Review security configurations with new non-root container requirements
- Update any scripts that depend on session timing
For Dapp Developers
Midnight Generator has been comprehensively re-engineered and is now called the Midnight toolkit.
As well as construction of shielded transactions Midnight Toolkit can now also:
- Send Unshielded tokens
- Send Shielded + Unshielded tokens between contract calls
- Sync with local and remote networks
- DUST fee calculation
- Execute compiled contracts
- Pre-generate and send 100s of transactions (performance testing)
- Support for node runtime forks
- Fetch and print wallet state and DUST balance
- Contract Maintenance - updating authority + verifier keys
Added
Add `preprod` config preset (#265, SRE-1282) (#node-ops)
PR: #265
JIRA: https://shielded.atlassian.net/browse/SRE-1282
Add support for cNight genesis data in chain-spec (#160, PM-19683, PM-19682, PM-19172) (#cnight-generates-dust)
This is specified via a new config file, cnight-genesis.json. The config file can be generated using a new sub-command of the node, generate-c-night-genesis. It requires a db-sync connection to the target Cardano network.
PR: #160
Tickets:
New e2e test added that verifies DUST production out of cNIGHT UTXO (#157, PM-20072)
PR: #157
JIRA: https://shielded.atlassian.net/browse/PM-20072
New e2e test added that verifies deregistration of Cardano-Dust mapping (#159, PM-20141)
PR: #159
JIRA: https://shielded.atlassian.net/browse/PM-20141
New e2e test added that verifies registration of two Cardano addresses to one Dust address (#164, PM-20181)
PR: #164
JIRA: https://shielded.atlassian.net/browse/PM-20181
New e2e test added that verifies if Alice can't deregister Bob from Dust production (#167, PM-19856)
PR: #167
JIRA: https://shielded.atlassian.net/browse/PM-19856
Ephemeral Environments state forking (#135, PM-17365)
Adds a command to create and upload a snapshot of node state. Adds the ability to restore a well-known network using a snapshot
PR: #135
Ticket: https://shielded.atlassian.net/browse/PM-17365
Implement `FederatedAuthorityObservationDataSourceImpl` and e2e tests for Federated Authority Observation (#142, PM-18914)
Implementation of FederatedAuthorityObservationDataSourceImpl and e2e tests for Federated Authority Observation
Now the Node is able to query the Federated Authority members from Cardano smart contracts
PR: #142
JIRA: https://shielded.atlassian.net/browse/PM-18914
Federated Authority Observation pallet (#107, PM-18914)
A pallet responsible for observing and propagating federated authority changes from the main chain to governance bodies (Council and Technical Committee).
Still work in progress as only mock data is queried from the mainchain-follower for now.
PR: #107
Ticket: https://shielded.atlassian.net/browse/PM-18914
Impl Hard Fork version in midnight-node-ledger-helpers (#128, PM-19985)
In order to reuse components from midnight-node-ledger-helpers in midnight-node-ledger and midnight-node-toolkit, we followed the same approach as in midnight-node-ledger, using module parameterization to support both hard-fork and non-hard-fork ledger dependencies.
Additionally, a disabled-by-default can-panic feature flag was added in midnight-node-ledger-helpers to prevent midnight-node-ledger from importing methods that can panic. These methods are acceptable for the Toolkit though, which imports the crate with that feature enabled.
PR: #128
Ticket: https://shielded.atlassian.net/browse/PM-19985
Register Dust Address Command in Toolkit (#70, PM-19777)
Update to the generate-txs command to include a builder for a transaction that registers a specified dust address. Funding for the transaction is provided by a different wallet, specified by --funding-seed as is the pattern for the other transactions.
For example:
cargo run -p midnight-node-toolkit -- generate-txs --src-file res/genesis/genesis_block_undeployed.mn --dest-file register.mn --to-bytes register-dust-address --wallet-seed 0000000000000000000000000000000000000000000000000000000000000000 --funding-seed 0000000000000000000000000000000000000000000000000000000000000001PR: #70
JIRA: https://shielded.atlassian.net/browse/PM-19777
Rust end to end tests fram...
node-0.18.0-rc.11
Git tag: node-0.18.0-rc.11
! This RC has been janked, please continue to use Rc.10 !
Docker Images
Node: docker pull ghcr.io/midnight-ntwrk/midnight-node:0.18.0-rc.11
Toolkit: docker pull ghcr.io/midnight-ntwrk/midnight-node-toolkit:0.18.0-rc.11
Added
Add `preprod` config preset (#265, SRE-1282) (#node-ops)
PR: #265
JIRA: https://shielded.atlassian.net/browse/SRE-1282
Add support for cNight genesis data in chain-spec (#160, PM-19683, PM-19682, PM-19172) (#cnight-generates-dust)
This is specified via a new config file, cnight-genesis.json. The config file can be generated using a new sub-command of the node, generate-c-night-genesis. It requires a db-sync connection to the target Cardano network.
PR: #160
Tickets:
New e2e test added that verifies DUST production out of cNIGHT UTXO (#157, PM-20072)
PR: #157
JIRA: https://shielded.atlassian.net/browse/PM-20072
New e2e test added that verifies deregistration of Cardano-Dust mapping (#159, PM-20141)
PR: #159
JIRA: https://shielded.atlassian.net/browse/PM-20141
New e2e test added that verifies registration of two Cardano addresses to one Dust address (#164, PM-20181)
PR: #164
JIRA: https://shielded.atlassian.net/browse/PM-20181
New e2e test added that verifies if Alice can't deregister Bob from Dust production (#167, PM-19856)
PR: #167
JIRA: https://shielded.atlassian.net/browse/PM-19856
Ephemeral Environments state forking (#135, PM-17365)
Adds a command to create and upload a snapshot of node state. Adds the ability to restore a well-known network using a snapshot
PR: #135
Ticket: https://shielded.atlassian.net/browse/PM-17365
Implement `FederatedAuthorityObservationDataSourceImpl` and e2e tests for Federated Authority Observation (#142, PM-18914)
Implementation of FederatedAuthorityObservationDataSourceImpl and e2e tests for Federated Authority Observation
Now the Node is able to query the Federated Authority members from Cardano smart contracts
PR: #142
JIRA: https://shielded.atlassian.net/browse/PM-18914
Federated Authority Observation pallet (#107, PM-18914)
A pallet responsible for observing and propagating federated authority changes from the main chain to governance bodies (Council and Technical Committee).
Still work in progress as only mock data is queried from the mainchain-follower for now.
PR: #107
Ticket: https://shielded.atlassian.net/browse/PM-18914
Impl Hard Fork version in midnight-node-ledger-helpers (#128, PM-19985)
In order to reuse components from midnight-node-ledger-helpers in midnight-node-ledger and midnight-node-toolkit, we followed the same approach as in midnight-node-ledger, using module parameterization to support both hard-fork and non-hard-fork ledger dependencies.
Additionally, a disabled-by-default can-panic feature flag was added in midnight-node-ledger-helpers to prevent midnight-node-ledger from importing methods that can panic. These methods are acceptable for the Toolkit though, which imports the crate with that feature enabled.
PR: #128
Ticket: https://shielded.atlassian.net/browse/PM-19985
Register Dust Address Command in Toolkit (#70, PM-19777)
Update to the generate-txs command to include a builder for a transaction that registers a specified dust address. Funding for the transaction is provided by a different wallet, specified by --funding-seed as is the pattern for the other transactions.
For example:
cargo run -p midnight-node-toolkit -- generate-txs --src-file res/genesis/genesis_block_undeployed.mn --dest-file register.mn --to-bytes register-dust-address --wallet-seed 0000000000000000000000000000000000000000000000000000000000000000 --funding-seed 0000000000000000000000000000000000000000000000000000000000000001PR: #70
JIRA: https://shielded.atlassian.net/browse/PM-19777
Rust end to end tests framework (proof of concept) (#63, PM-17482)
Proof of concept for running end to end tests in Rust. Example cNgD test was added.
PR: #63
JIRA: https://shielded.atlassian.net/browse/PM-17482
Add `dust-balance` command (#141, PM-19768) (#toolkit)
This command shows the total dust balance, dust balance from each Dust UTXO,
and details of each Dust UTXO and corresponding generation info.
PR: #141
Ticket: https://shielded.atlassian.net/browse/PM-19768
Support input Unshielded UTXOs when executing contracts (#68, #117, PM-17487) (#toolkit)
Note: This feature will result in unbalanced transactions until this ledger fix
is released and integrated into Node: midnightntwrk/midnight-ledger#68
PR: #117
Ticket: https://shielded.atlassian.net/browse/PM-17487
Changed
Add nonroot users to all Dockerfiles (#114, SEC-1062, SEC-1063, SEC-1064)
The midnight-node, midnight-node-toolkit, and hardfork-test-upgrader images all run as a user named appuser by default.
PR: #114
Ticket: https://shielded.atlassian.net/browse/SEC-1062
Ticket: https://shielded.atlassian.net/browse/SEC-1063
Ticket: https://shielded.atlassian.net/browse/SEC-1064
Fix `register-dust-address` command when run on wallets with NIGHT (#140, PM-20026) (#toolkit)
This command submitted a TX which was
- recreating all NIGHT UTxOs in the unshielded wallet in segment 1
- registering the DUST address in segment 2
The existing NIGHT UTxOs only start accumulating DUST when spent in the same segment as the registration. We now apply all DUST actions in segment 1.
PR: #140
JIRA: https://shielded.atlassian.net/browse/PM-20026
Add `midnight_...
node-0.18.0-rc.9
Git tag: node-0.18.0-rc.9
Docker Images
Node: docker pull midnightntwrk/midnight-node:0.18.0-rc.9
Toolkit: docker pull midnightntwrk/midnight-node-toolkit:0.18.0-rc.9
Added
Add `preprod` config preset (#265, SRE-1282) (#node-ops)
PR: #265
JIRA: https://shielded.atlassian.net/browse/SRE-1282
Add support for cNight genesis data in chain-spec (#160, PM-19683, PM-19682, PM-19172) (#cnight-generates-dust)
This is specified via a new config file, cnight-genesis.json. The config file can be generated using a new sub-command of the node, generate-c-night-genesis. It requires a db-sync connection to the target Cardano network.
PR: #160
Tickets:
New e2e test added that verifies DUST production out of cNIGHT UTXO (#157, PM-20072)
PR: #157
JIRA: https://shielded.atlassian.net/browse/PM-20072
New e2e test added that verifies deregistration of Cardano-Dust mapping (#159, PM-20141)
PR: #159
JIRA: https://shielded.atlassian.net/browse/PM-20141
New e2e test added that verifies registration of two Cardano addresses to one Dust address (#164, PM-20181)
PR: #164
JIRA: https://shielded.atlassian.net/browse/PM-20181
New e2e test added that verifies if Alice can't deregister Bob from Dust production (#167, PM-19856)
PR: #167
JIRA: https://shielded.atlassian.net/browse/PM-19856
Ephemeral Environments state forking (#135, PM-17365)
Adds a command to create and upload a snapshot of node state. Adds the ability to restore a well-known network using a snapshot
PR: #135
Ticket: https://shielded.atlassian.net/browse/PM-17365
Implement `FederatedAuthorityObservationDataSourceImpl` and e2e tests for Federated Authority Observation (#142, PM-18914)
Implementation of FederatedAuthorityObservationDataSourceImpl and e2e tests for Federated Authority Observation
Now the Node is able to query the Federated Authority members from Cardano smart contracts
PR: #142
JIRA: https://shielded.atlassian.net/browse/PM-18914
Federated Authority Observation pallet (#107, PM-18914)
A pallet responsible for observing and propagating federated authority changes from the main chain to governance bodies (Council and Technical Committee).
Still work in progress as only mock data is queried from the mainchain-follower for now.
PR: #107
Ticket: https://shielded.atlassian.net/browse/PM-18914
Impl Hard Fork version in midnight-node-ledger-helpers (#128, PM-19985)
In order to reuse components from midnight-node-ledger-helpers in midnight-node-ledger and midnight-node-toolkit, we followed the same approach as in midnight-node-ledger, using module parameterization to support both hard-fork and non-hard-fork ledger dependencies.
Additionally, a disabled-by-default can-panic feature flag was added in midnight-node-ledger-helpers to prevent midnight-node-ledger from importing methods that can panic. These methods are acceptable for the Toolkit though, which imports the crate with that feature enabled.
PR: #128
Ticket: https://shielded.atlassian.net/browse/PM-19985
Register Dust Address Command in Toolkit (#70, PM-19777)
Update to the generate-txs command to include a builder for a transaction that registers a specified dust address. Funding for the transaction is provided by a different wallet, specified by --funding-seed as is the pattern for the other transactions.
For example:
cargo run -p midnight-node-toolkit -- generate-txs --src-file res/genesis/genesis_block_undeployed.mn --dest-file register.mn --to-bytes register-dust-address --wallet-seed 0000000000000000000000000000000000000000000000000000000000000000 --funding-seed 0000000000000000000000000000000000000000000000000000000000000001PR: #70
JIRA: https://shielded.atlassian.net/browse/PM-19777
Rust end to end tests framework (proof of concept) (#63, PM-17482)
Proof of concept for running end to end tests in Rust. Example cNgD test was added.
PR: #63
JIRA: https://shielded.atlassian.net/browse/PM-17482
Add `dust-balance` command (#141, PM-19768) (#toolkit)
This command shows the total dust balance, dust balance from each Dust UTXO,
and details of each Dust UTXO and corresponding generation info.
PR: #141
Ticket: https://shielded.atlassian.net/browse/PM-19768
Support input Unshielded UTXOs when executing contracts (#68, #117, PM-17487) (#toolkit)
Note: This feature will result in unbalanced transactions until this ledger fix
is released and integrated into Node: midnightntwrk/midnight-ledger#68
PR: #117
Ticket: https://shielded.atlassian.net/browse/PM-17487
Changed
Add nonroot users to all Dockerfiles (#114, SEC-1062, SEC-1063, SEC-1064)
The midnight-node, midnight-node-toolkit, and hardfork-test-upgrader images all run as a user named appuser by default.
PR: #114
Ticket: https://shielded.atlassian.net/browse/SEC-1062
Ticket: https://shielded.atlassian.net/browse/SEC-1063
Ticket: https://shielded.atlassian.net/browse/SEC-1064
Fix `register-dust-address` command when run on wallets with NIGHT (#140, PM-20026) (#toolkit)
This command submitted a TX which was
- recreating all NIGHT UTxOs in the unshielded wallet in segment 1
- registering the DUST address in segment 2
The existing NIGHT UTxOs only start accumulating DUST when spent in the same segment as the registration. We now apply all DUST actions in segment 1.
PR: #140
JIRA: https://shielded.atlassian.net/browse/PM-20026
Add `midnight_` prefix to Chain ID to follow Polkadot convention (#188)
The convention for Polkadot-SDK-based chains is to prefix the chain ID with the name of the mainchain.
We're no...
node-0.18.0-rc.10
Git tag: node-0.18.0-rc.10
Docker Images
Node: docker pull ghcr.io/midnight-ntwrk/midnight-node:0.18.0-rc.10
Toolkit: docker pull ghcr.io/midnight-ntwrk/midnight-node-toolkit:0.18.0-rc.10
Added
Add `preprod` config preset (#265, SRE-1282) (#node-ops)
PR: #265
JIRA: https://shielded.atlassian.net/browse/SRE-1282
Add support for cNight genesis data in chain-spec (#160, PM-19683, PM-19682, PM-19172) (#cnight-generates-dust)
This is specified via a new config file, cnight-genesis.json. The config file can be generated using a new sub-command of the node, generate-c-night-genesis. It requires a db-sync connection to the target Cardano network.
PR: #160
Tickets:
New e2e test added that verifies DUST production out of cNIGHT UTXO (#157, PM-20072)
PR: #157
JIRA: https://shielded.atlassian.net/browse/PM-20072
New e2e test added that verifies deregistration of Cardano-Dust mapping (#159, PM-20141)
PR: #159
JIRA: https://shielded.atlassian.net/browse/PM-20141
New e2e test added that verifies registration of two Cardano addresses to one Dust address (#164, PM-20181)
PR: #164
JIRA: https://shielded.atlassian.net/browse/PM-20181
New e2e test added that verifies if Alice can't deregister Bob from Dust production (#167, PM-19856)
PR: #167
JIRA: https://shielded.atlassian.net/browse/PM-19856
Ephemeral Environments state forking (#135, PM-17365)
Adds a command to create and upload a snapshot of node state. Adds the ability to restore a well-known network using a snapshot
PR: #135
Ticket: https://shielded.atlassian.net/browse/PM-17365
Implement `FederatedAuthorityObservationDataSourceImpl` and e2e tests for Federated Authority Observation (#142, PM-18914)
Implementation of FederatedAuthorityObservationDataSourceImpl and e2e tests for Federated Authority Observation
Now the Node is able to query the Federated Authority members from Cardano smart contracts
PR: #142
JIRA: https://shielded.atlassian.net/browse/PM-18914
Federated Authority Observation pallet (#107, PM-18914)
A pallet responsible for observing and propagating federated authority changes from the main chain to governance bodies (Council and Technical Committee).
Still work in progress as only mock data is queried from the mainchain-follower for now.
PR: #107
Ticket: https://shielded.atlassian.net/browse/PM-18914
Impl Hard Fork version in midnight-node-ledger-helpers (#128, PM-19985)
In order to reuse components from midnight-node-ledger-helpers in midnight-node-ledger and midnight-node-toolkit, we followed the same approach as in midnight-node-ledger, using module parameterization to support both hard-fork and non-hard-fork ledger dependencies.
Additionally, a disabled-by-default can-panic feature flag was added in midnight-node-ledger-helpers to prevent midnight-node-ledger from importing methods that can panic. These methods are acceptable for the Toolkit though, which imports the crate with that feature enabled.
PR: #128
Ticket: https://shielded.atlassian.net/browse/PM-19985
Register Dust Address Command in Toolkit (#70, PM-19777)
Update to the generate-txs command to include a builder for a transaction that registers a specified dust address. Funding for the transaction is provided by a different wallet, specified by --funding-seed as is the pattern for the other transactions.
For example:
cargo run -p midnight-node-toolkit -- generate-txs --src-file res/genesis/genesis_block_undeployed.mn --dest-file register.mn --to-bytes register-dust-address --wallet-seed 0000000000000000000000000000000000000000000000000000000000000000 --funding-seed 0000000000000000000000000000000000000000000000000000000000000001PR: #70
JIRA: https://shielded.atlassian.net/browse/PM-19777
Rust end to end tests framework (proof of concept) (#63, PM-17482)
Proof of concept for running end to end tests in Rust. Example cNgD test was added.
PR: #63
JIRA: https://shielded.atlassian.net/browse/PM-17482
Add `dust-balance` command (#141, PM-19768) (#toolkit)
This command shows the total dust balance, dust balance from each Dust UTXO,
and details of each Dust UTXO and corresponding generation info.
PR: #141
Ticket: https://shielded.atlassian.net/browse/PM-19768
Support input Unshielded UTXOs when executing contracts (#68, #117, PM-17487) (#toolkit)
Note: This feature will result in unbalanced transactions until this ledger fix
is released and integrated into Node: midnightntwrk/midnight-ledger#68
PR: #117
Ticket: https://shielded.atlassian.net/browse/PM-17487
Changed
Add nonroot users to all Dockerfiles (#114, SEC-1062, SEC-1063, SEC-1064)
The midnight-node, midnight-node-toolkit, and hardfork-test-upgrader images all run as a user named appuser by default.
PR: #114
Ticket: https://shielded.atlassian.net/browse/SEC-1062
Ticket: https://shielded.atlassian.net/browse/SEC-1063
Ticket: https://shielded.atlassian.net/browse/SEC-1064
Fix `register-dust-address` command when run on wallets with NIGHT (#140, PM-20026) (#toolkit)
This command submitted a TX which was
- recreating all NIGHT UTxOs in the unshielded wallet in segment 1
- registering the DUST address in segment 2
The existing NIGHT UTxOs only start accumulating DUST when spent in the same segment as the registration. We now apply all DUST actions in segment 1.
PR: #140
JIRA: https://shielded.atlassian.net/browse/PM-20026
Add `midnight_` prefix to Chain ID to follow Polkadot convention (#188)
The convention for Polkadot-SDK-based chains is to prefix the chain ID with the name of th...
node-0.18.0-rc.8
Git tag: node-0.18.0-rc.8
Docker Images
Node: docker pull midnightntwrk/midnight-node:0.18.0-rc.8
Toolkit: docker pull midnightntwrk/midnight-node-toolkit:0.18.0-rc.8
Added
Add `preprod` config preset (#265, SRE-1282) (#node-ops)
PR: #265
JIRA: https://shielded.atlassian.net/browse/SRE-1282
Add support for cNight genesis data in chain-spec (#160, PM-19683, PM-19682, PM-19172) (#cnight-generates-dust)
This is specified via a new config file, cnight-genesis.json. The config file can be generated using a new sub-command of the node, generate-c-night-genesis. It requires a db-sync connection to the target Cardano network.
PR: #160
Tickets:
New e2e test added that verifies DUST production out of cNIGHT UTXO (#157, PM-20072)
PR: #157
JIRA: https://shielded.atlassian.net/browse/PM-20072
New e2e test added that verifies deregistration of Cardano-Dust mapping (#159, PM-20141)
PR: #159
JIRA: https://shielded.atlassian.net/browse/PM-20141
New e2e test added that verifies registration of two Cardano addresses to one Dust address (#164, PM-20181)
PR: #164
JIRA: https://shielded.atlassian.net/browse/PM-20181
New e2e test added that verifies if Alice can't deregister Bob from Dust production (#167, PM-19856)
PR: #167
JIRA: https://shielded.atlassian.net/browse/PM-19856
Ephemeral Environments state forking (#135, PM-17365)
Adds a command to create and upload a snapshot of node state. Adds the ability to restore a well-known network using a snapshot
PR: #135
Ticket: https://shielded.atlassian.net/browse/PM-17365
Implement `FederatedAuthorityObservationDataSourceImpl` and e2e tests for Federated Authority Observation (#142, PM-18914)
Implementation of FederatedAuthorityObservationDataSourceImpl and e2e tests for Federated Authority Observation
Now the Node is able to query the Federated Authority members from Cardano smart contracts
PR: #142
JIRA: https://shielded.atlassian.net/browse/PM-18914
Federated Authority Observation pallet (#107, PM-18914)
A pallet responsible for observing and propagating federated authority changes from the main chain to governance bodies (Council and Technical Committee).
Still work in progress as only mock data is queried from the mainchain-follower for now.
PR: #107
Ticket: https://shielded.atlassian.net/browse/PM-18914
Impl Hard Fork version in midnight-node-ledger-helpers (#128, PM-19985)
In order to reuse components from midnight-node-ledger-helpers in midnight-node-ledger and midnight-node-toolkit, we followed the same approach as in midnight-node-ledger, using module parameterization to support both hard-fork and non-hard-fork ledger dependencies.
Additionally, a disabled-by-default can-panic feature flag was added in midnight-node-ledger-helpers to prevent midnight-node-ledger from importing methods that can panic. These methods are acceptable for the Toolkit though, which imports the crate with that feature enabled.
PR: #128
Ticket: https://shielded.atlassian.net/browse/PM-19985
Register Dust Address Command in Toolkit (#70, PM-19777)
Update to the generate-txs command to include a builder for a transaction that registers a specified dust address. Funding for the transaction is provided by a different wallet, specified by --funding-seed as is the pattern for the other transactions.
For example:
cargo run -p midnight-node-toolkit -- generate-txs --src-file res/genesis/genesis_block_undeployed.mn --dest-file register.mn --to-bytes register-dust-address --wallet-seed 0000000000000000000000000000000000000000000000000000000000000000 --funding-seed 0000000000000000000000000000000000000000000000000000000000000001PR: #70
JIRA: https://shielded.atlassian.net/browse/PM-19777
Rust end to end tests framework (proof of concept) (#63, PM-17482)
Proof of concept for running end to end tests in Rust. Example cNgD test was added.
PR: #63
JIRA: https://shielded.atlassian.net/browse/PM-17482
Add `dust-balance` command (#141, PM-19768) (#toolkit)
This command shows the total dust balance, dust balance from each Dust UTXO,
and details of each Dust UTXO and corresponding generation info.
PR: #141
Ticket: https://shielded.atlassian.net/browse/PM-19768
Support input Unshielded UTXOs when executing contracts (#68, #117, PM-17487) (#toolkit)
Note: This feature will result in unbalanced transactions until this ledger fix
is released and integrated into Node: midnightntwrk/midnight-ledger#68
PR: #117
Ticket: https://shielded.atlassian.net/browse/PM-17487
Changed
Add nonroot users to all Dockerfiles (#114, SEC-1062, SEC-1063, SEC-1064)
The midnight-node, midnight-node-toolkit, and hardfork-test-upgrader images all run as a user named appuser by default.
PR: #114
Ticket: https://shielded.atlassian.net/browse/SEC-1062
Ticket: https://shielded.atlassian.net/browse/SEC-1063
Ticket: https://shielded.atlassian.net/browse/SEC-1064
Fix `register-dust-address` command when run on wallets with NIGHT (#140, PM-20026) (#toolkit)
This command submitted a TX which was
- recreating all NIGHT UTxOs in the unshielded wallet in segment 1
- registering the DUST address in segment 2
The existing NIGHT UTxOs only start accumulating DUST when spent in the same segment as the registration. We now apply all DUST actions in segment 1.
PR: #140
JIRA: https://shielded.atlassian.net/browse/PM-20026
Add `midnight_` prefix to Chain ID to follow Polkadot convention (#188)
The convention for Polkadot-SDK-based chains is to prefix the chain ID with the name of the mainchain.
We're no...
node-0.18.0-rc.7
Git tag: node-0.18.0-rc.7
Docker Images
Node: docker pull midnightntwrk/midnight-node:0.18.0-rc.7
Toolkit: docker pull midnightntwrk/midnight-node-toolkit:0.18.0-rc.7
Added
Add `preprod` config preset (#265, SRE-1282) (#node-ops)
PR: #265
JIRA: https://shielded.atlassian.net/browse/SRE-1282
Add support for cNight genesis data in chain-spec (#160, PM-19683, PM-19682, PM-19172) (#cnight-generates-dust)
This is specified via a new config file, cnight-genesis.json. The config file can be generated using a new sub-command of the node, generate-c-night-genesis. It requires a db-sync connection to the target Cardano network.
PR: #160
Tickets:
New e2e test added that verifies DUST production out of cNIGHT UTXO (#157, PM-20072)
PR: #157
JIRA: https://shielded.atlassian.net/browse/PM-20072
New e2e test added that verifies deregistration of Cardano-Dust mapping (#159, PM-20141)
PR: #159
JIRA: https://shielded.atlassian.net/browse/PM-20141
New e2e test added that verifies registration of two Cardano addresses to one Dust address (#164, PM-20181)
PR: #164
JIRA: https://shielded.atlassian.net/browse/PM-20181
New e2e test added that verifies if Alice can't deregister Bob from Dust production (#167, PM-19856)
PR: #167
JIRA: https://shielded.atlassian.net/browse/PM-19856
Ephemeral Environments state forking (#135, PM-17365)
Adds a command to create and upload a snapshot of node state. Adds the ability to restore a well-known network using a snapshot
PR: #135
Ticket: https://shielded.atlassian.net/browse/PM-17365
Implement `FederatedAuthorityObservationDataSourceImpl` and e2e tests for Federated Authority Observation (#142, PM-18914)
Implementation of FederatedAuthorityObservationDataSourceImpl and e2e tests for Federated Authority Observation
Now the Node is able to query the Federated Authority members from Cardano smart contracts
PR: #142
JIRA: https://shielded.atlassian.net/browse/PM-18914
Federated Authority Observation pallet (#107, PM-18914)
A pallet responsible for observing and propagating federated authority changes from the main chain to governance bodies (Council and Technical Committee).
Still work in progress as only mock data is queried from the mainchain-follower for now.
PR: #107
Ticket: https://shielded.atlassian.net/browse/PM-18914
Impl Hard Fork version in midnight-node-ledger-helpers (#128, PM-19985)
In order to reuse components from midnight-node-ledger-helpers in midnight-node-ledger and midnight-node-toolkit, we followed the same approach as in midnight-node-ledger, using module parameterization to support both hard-fork and non-hard-fork ledger dependencies.
Additionally, a disabled-by-default can-panic feature flag was added in midnight-node-ledger-helpers to prevent midnight-node-ledger from importing methods that can panic. These methods are acceptable for the Toolkit though, which imports the crate with that feature enabled.
PR: #128
Ticket: https://shielded.atlassian.net/browse/PM-19985
Register Dust Address Command in Toolkit (#70, PM-19777)
Update to the generate-txs command to include a builder for a transaction that registers a specified dust address. Funding for the transaction is provided by a different wallet, specified by --funding-seed as is the pattern for the other transactions.
For example:
cargo run -p midnight-node-toolkit -- generate-txs --src-file res/genesis/genesis_block_undeployed.mn --dest-file register.mn --to-bytes register-dust-address --wallet-seed 0000000000000000000000000000000000000000000000000000000000000000 --funding-seed 0000000000000000000000000000000000000000000000000000000000000001PR: #70
JIRA: https://shielded.atlassian.net/browse/PM-19777
Rust end to end tests framework (proof of concept) (#63, PM-17482)
Proof of concept for running end to end tests in Rust. Example cNgD test was added.
PR: #63
JIRA: https://shielded.atlassian.net/browse/PM-17482
Add `dust-balance` command (#141, PM-19768) (#toolkit)
This command shows the total dust balance, dust balance from each Dust UTXO,
and details of each Dust UTXO and corresponding generation info.
PR: #141
Ticket: https://shielded.atlassian.net/browse/PM-19768
Support input Unshielded UTXOs when executing contracts (#68, #117, PM-17487) (#toolkit)
Note: This feature will result in unbalanced transactions until this ledger fix
is released and integrated into Node: midnightntwrk/midnight-ledger#68
PR: #117
Ticket: https://shielded.atlassian.net/browse/PM-17487
Changed
Add nonroot users to all Dockerfiles (#114, SEC-1062, SEC-1063, SEC-1064)
The midnight-node, midnight-node-toolkit, and hardfork-test-upgrader images all run as a user named appuser by default.
PR: #114
Ticket: https://shielded.atlassian.net/browse/SEC-1062
Ticket: https://shielded.atlassian.net/browse/SEC-1063
Ticket: https://shielded.atlassian.net/browse/SEC-1064
Fix `register-dust-address` command when run on wallets with NIGHT (#140, PM-20026) (#toolkit)
This command submitted a TX which was
- recreating all NIGHT UTxOs in the unshielded wallet in segment 1
- registering the DUST address in segment 2
The existing NIGHT UTxOs only start accumulating DUST when spent in the same segment as the registration. We now apply all DUST actions in segment 1.
PR: #140
JIRA: https://shielded.atlassian.net/browse/PM-20026
Add `midnight_` prefix to Chain ID to follow Polkadot convention (#188)
The convention for Polkadot-SDK-based chains is to prefix the chain ID with the name of the mainchain.
We're no...
node-0.18.0-rc.6
Git tag: node-0.18.0-rc.6
Docker Images
Node: docker pull ghcr.io/midnight-ntwrk/midnight-node:0.18.0-rc.6
Toolkit: docker pull ghcr.io/midnight-ntwrk/midnight-node-toolkit:0.18.0-rc.6
Added
Add `preprod` config preset (#265, SRE-1282) (#node-ops)
PR: #265
JIRA: https://shielded.atlassian.net/browse/SRE-1282
Add support for cNight genesis data in chain-spec (#160, PM-19683, PM-19682, PM-19172) (#cnight-generates-dust)
This is specified via a new config file, cnight-genesis.json. The config file can be generated using a new sub-command of the node, generate-c-night-genesis. It requires a db-sync connection to the target Cardano network.
PR: #160
Tickets:
New e2e test added that verifies DUST production out of cNIGHT UTXO (#157, PM-20072)
PR: #157
JIRA: https://shielded.atlassian.net/browse/PM-20072
New e2e test added that verifies deregistration of Cardano-Dust mapping (#159, PM-20141)
PR: #159
JIRA: https://shielded.atlassian.net/browse/PM-20141
New e2e test added that verifies registration of two Cardano addresses to one Dust address (#164, PM-20181)
PR: #164
JIRA: https://shielded.atlassian.net/browse/PM-20181
New e2e test added that verifies if Alice can't deregister Bob from Dust production (#167, PM-19856)
PR: #167
JIRA: https://shielded.atlassian.net/browse/PM-19856
Ephemeral Environments state forking (#135, PM-17365)
Adds a command to create and upload a snapshot of node state. Adds the ability to restore a well-known network using a snapshot
PR: #135
Ticket: https://shielded.atlassian.net/browse/PM-17365
Implement `FederatedAuthorityObservationDataSourceImpl` and e2e tests for Federated Authority Observation (#142, PM-18914)
Implementation of FederatedAuthorityObservationDataSourceImpl and e2e tests for Federated Authority Observation
Now the Node is able to query the Federated Authority members from Cardano smart contracts
PR: #142
JIRA: https://shielded.atlassian.net/browse/PM-18914
Federated Authority Observation pallet (#107, PM-18914)
A pallet responsible for observing and propagating federated authority changes from the main chain to governance bodies (Council and Technical Committee).
Still work in progress as only mock data is queried from the mainchain-follower for now.
PR: #107
Ticket: https://shielded.atlassian.net/browse/PM-18914
Impl Hard Fork version in midnight-node-ledger-helpers (#128, PM-19985)
In order to reuse components from midnight-node-ledger-helpers in midnight-node-ledger and midnight-node-toolkit, we followed the same approach as in midnight-node-ledger, using module parameterization to support both hard-fork and non-hard-fork ledger dependencies.
Additionally, a disabled-by-default can-panic feature flag was added in midnight-node-ledger-helpers to prevent midnight-node-ledger from importing methods that can panic. These methods are acceptable for the Toolkit though, which imports the crate with that feature enabled.
PR: #128
Ticket: https://shielded.atlassian.net/browse/PM-19985
Register Dust Address Command in Toolkit (#70, PM-19777)
Update to the generate-txs command to include a builder for a transaction that registers a specified dust address. Funding for the transaction is provided by a different wallet, specified by --funding-seed as is the pattern for the other transactions.
For example:
cargo run -p midnight-node-toolkit -- generate-txs --src-file res/genesis/genesis_block_undeployed.mn --dest-file register.mn --to-bytes register-dust-address --wallet-seed 0000000000000000000000000000000000000000000000000000000000000000 --funding-seed 0000000000000000000000000000000000000000000000000000000000000001PR: #70
JIRA: https://shielded.atlassian.net/browse/PM-19777
Rust end to end tests framework (proof of concept) (#63, PM-17482)
Proof of concept for running end to end tests in Rust. Example cNgD test was added.
PR: #63
JIRA: https://shielded.atlassian.net/browse/PM-17482
Add `dust-balance` command (#141, PM-19768) (#toolkit)
This command shows the total dust balance, dust balance from each Dust UTXO,
and details of each Dust UTXO and corresponding generation info.
PR: #141
Ticket: https://shielded.atlassian.net/browse/PM-19768
Support input Unshielded UTXOs when executing contracts (#68, #117, PM-17487) (#toolkit)
Note: This feature will result in unbalanced transactions until this ledger fix
is released and integrated into Node: midnightntwrk/midnight-ledger#68
PR: #117
Ticket: https://shielded.atlassian.net/browse/PM-17487
Changed
Add nonroot users to all Dockerfiles (#114, SEC-1062, SEC-1063, SEC-1064)
The midnight-node, midnight-node-toolkit, and hardfork-test-upgrader images all run as a user named appuser by default.
PR: #114
Ticket: https://shielded.atlassian.net/browse/SEC-1062
Ticket: https://shielded.atlassian.net/browse/SEC-1063
Ticket: https://shielded.atlassian.net/browse/SEC-1064
Fix `register-dust-address` command when run on wallets with NIGHT (#140, PM-20026) (#toolkit)
This command submitted a TX which was
- recreating all NIGHT UTxOs in the unshielded wallet in segment 1
- registering the DUST address in segment 2
The existing NIGHT UTxOs only start accumulating DUST when spent in the same segment as the registration. We now apply all DUST actions in segment 1.
PR: #140
JIRA: https://shielded.atlassian.net/browse/PM-20026
Add `midnight_` prefix to Chain ID to follow Polkadot convention (#188)
The convention for Polkadot-SDK-based chains is to prefix the chain ID with the name of the ma...
node-0.18.0-rc.5
Git tag: node-0.18.0-rc.5
Docker Images
Node: docker pull ghcr.io/midnight-ntwrk/midnight-node:0.18.0-rc.5
Toolkit: docker pull ghcr.io/midnight-ntwrk/midnight-node-toolkit:0.18.0-rc.5
Added
Add support for cNight genesis data in chain-spec (#160, PM-19683, PM-19682, PM-19172) (#cnight-generates-dust)
This is specified via a new config file, cnight-genesis.json. The config file can be generated using a new sub-command of the node, generate-c-night-genesis. It requires a db-sync connection to the target Cardano network.
PR: #160
Tickets:
New e2e test added that verifies DUST production out of cNIGHT UTXO (#157, PM-20072)
PR: #157
JIRA: https://shielded.atlassian.net/browse/PM-20072
New e2e test added that verifies deregistration of Cardano-Dust mapping (#159, PM-20141)
PR: #159
JIRA: https://shielded.atlassian.net/browse/PM-20141
New e2e test added that verifies registration of two Cardano addresses to one Dust address (#164, PM-20181)
PR: #164
JIRA: https://shielded.atlassian.net/browse/PM-20181
New e2e test added that verifies if Alice can't deregister Bob from Dust production (#167, PM-19856)
PR: #167
JIRA: https://shielded.atlassian.net/browse/PM-19856
Ephemeral Environments state forking (#135, PM-17365)
Adds a command to create and upload a snapshot of node state. Adds the ability to restore a well-known network using a snapshot
PR: #135
Ticket: https://shielded.atlassian.net/browse/PM-17365
Implement `FederatedAuthorityObservationDataSourceImpl` and e2e tests for Federated Authority Observation (#142, PM-18914)
Implementation of FederatedAuthorityObservationDataSourceImpl and e2e tests for Federated Authority Observation
Now the Node is able to query the Federated Authority members from Cardano smart contracts
PR: #142
JIRA: https://shielded.atlassian.net/browse/PM-18914
Federated Authority Observation pallet (#107, PM-18914)
A pallet responsible for observing and propagating federated authority changes from the main chain to governance bodies (Council and Technical Committee).
Still work in progress as only mock data is queried from the mainchain-follower for now.
PR: #107
Ticket: https://shielded.atlassian.net/browse/PM-18914
Impl Hard Fork version in midnight-node-ledger-helpers (#128, PM-19985)
In order to reuse components from midnight-node-ledger-helpers in midnight-node-ledger and midnight-node-toolkit, we followed the same approach as in midnight-node-ledger, using module parameterization to support both hard-fork and non-hard-fork ledger dependencies.
Additionally, a disabled-by-default can-panic feature flag was added in midnight-node-ledger-helpers to prevent midnight-node-ledger from importing methods that can panic. These methods are acceptable for the Toolkit though, which imports the crate with that feature enabled.
PR: #128
Ticket: https://shielded.atlassian.net/browse/PM-19985
Register Dust Address Command in Toolkit (#70, PM-19777)
Update to the generate-txs command to include a builder for a transaction that registers a specified dust address. Funding for the transaction is provided by a different wallet, specified by --funding-seed as is the pattern for the other transactions.
For example:
cargo run -p midnight-node-toolkit -- generate-txs --src-file res/genesis/genesis_block_undeployed.mn --dest-file register.mn --to-bytes register-dust-address --wallet-seed 0000000000000000000000000000000000000000000000000000000000000000 --funding-seed 0000000000000000000000000000000000000000000000000000000000000001PR: #70
JIRA: https://shielded.atlassian.net/browse/PM-19777
Rust end to end tests framework (proof of concept) (#63, PM-17482)
Proof of concept for running end to end tests in Rust. Example cNgD test was added.
PR: #63
JIRA: https://shielded.atlassian.net/browse/PM-17482
Add `dust-balance` command (#141, PM-19768) (#toolkit)
This command shows the total dust balance, dust balance from each Dust UTXO,
and details of each Dust UTXO and corresponding generation info.
PR: #141
Ticket: https://shielded.atlassian.net/browse/PM-19768
Support input Unshielded UTXOs when executing contracts (#68, #117, PM-17487) (#toolkit)
Note: This feature will result in unbalanced transactions until this ledger fix
is released and integrated into Node: midnightntwrk/midnight-ledger#68
PR: #117
Ticket: https://shielded.atlassian.net/browse/PM-17487
Changed
Add nonroot users to all Dockerfiles (#114, SEC-1062, SEC-1063, SEC-1064)
The midnight-node, midnight-node-toolkit, and hardfork-test-upgrader images all run as a user named appuser by default.
PR: #114
Ticket: https://shielded.atlassian.net/browse/SEC-1062
Ticket: https://shielded.atlassian.net/browse/SEC-1063
Ticket: https://shielded.atlassian.net/browse/SEC-1064
Fix `register-dust-address` command when run on wallets with NIGHT (#140, PM-20026) (#toolkit)
This command submitted a TX which was
- recreating all NIGHT UTxOs in the unshielded wallet in segment 1
- registering the DUST address in segment 2
The existing NIGHT UTxOs only start accumulating DUST when spent in the same segment as the registration. We now apply all DUST actions in segment 1.
PR: #140
JIRA: https://shielded.atlassian.net/browse/PM-20026
Add `midnight_` prefix to Chain ID to follow Polkadot convention (#188)
The convention for Polkadot-SDK-based chains is to prefix the chain ID with the name of the mainchain.
We're now doing this with Midnight - our internal network_id string is derived from the chain_id when generating the chain-spec.
This is to keep the network_id length small - it's included in all transactions, and included as a prefix in addresses.
Examples:
- chain_id:
midnight_preview, network_id:preview, address-prefix:preview
-...