Liberalization
This patch-release supports recovery from out-of-date or lost anti-MEV keystore and introduces an enhanced version of ZK-based DKG process. The results of MPC ceremony for ZK-DKG setup conducted by NGD, NSPCC, AxLabs and Lazynode are published to the https://github.com/bane-labs/mpc repository and integrated to the verifier system contracts. This release schedules NeoXEthSig, NeoXDKG and NeoXAMEV forks for MainNet with ZK-based DKG version.
This version is fully compatible with v0.4.0 and does not require node resynchronization. For TestNet nodes no configuration changes are required on upgrade (comparing to v0.4.0). For MainNet nodes the DB reinitialization is required with the updated genesis configuration since NeoXEthSig, NeoXDKG and NeoXAMEV forks are enabled. Follow the instructions below to upgrade your node from v0.4.0 to v0.4.1:
- Download new binary and new genesis configuration file from the release page.
- Gracefully stop the node.
- Replace the old binary with the new binary.
- For MainNet nodes only: don't remove DB; reinitialize DB using new binary and new genesis configuration file with the following command:
./geth init --datadir ./node-datadir ./config/genesis.json - For consensus nodes only: prepare for participation in ZK-based DKG process following the steps below:
- Download 3 pairs of R1CS files and proving key files from the Neo X MPC ceremony page using NeoFS CLI:
mkdir ./r1cs ./neofs-cli-linux-amd64 object get --cid 411d8vuzogogMxXJqTQcu61btgQ6rL2VNYUYnH7r4kE3 --oid 8f6m4RUvgNDyo7gdFhEJQEAqkdaTzEj4oYuLVxfRJP4S -r grpc://st3.storage.fs.neo.org:8080 --timeout 1000s --file ./r1cs/one_message.ccs ./neofs-cli-linux-amd64 object get --cid 411d8vuzogogMxXJqTQcu61btgQ6rL2VNYUYnH7r4kE3 --oid Fqzn6PvAhmmYWVBRV8dVRWwAL3T8JHgycBfjS7A18z6f -r grpc://st3.storage.fs.neo.org:8080 --timeout 1000s --file ./r1cs/two_message.ccs ./neofs-cli-linux-amd64 object get --cid 411d8vuzogogMxXJqTQcu61btgQ6rL2VNYUYnH7r4kE3 --oid 2jNd8acKHBb5s6matnED49MCo36vTMWXbfjocT7Xcub7 -r grpc://st3.storage.fs.neo.org:8080 --timeout 1000s --file ./r1cs/seven_message.ccs mkdir ./pk ./neofs-cli-linux-amd64 object get --cid 411d8vuzogogMxXJqTQcu61btgQ6rL2VNYUYnH7r4kE3 --oid HZVzrU7348zztWvgBTM3xkpvZ6BNNJMGDrKyeDDTHZLw -r grpc://st3.storage.fs.neo.org:8080 --timeout 1000s --file ./pk/one_message.pk ./neofs-cli-linux-amd64 object get --cid 411d8vuzogogMxXJqTQcu61btgQ6rL2VNYUYnH7r4kE3 --oid HKEeCskBjnL5yJGXYP4EfakVaDsw3aAJ64FXavDhpv4E -r grpc://st3.storage.fs.neo.org:8080 --timeout 1000s --file ./pk/two_message.pk ./neofs-cli-linux-amd64 object get --cid 411d8vuzogogMxXJqTQcu61btgQ6rL2VNYUYnH7r4kE3 --oid A1DTHYvdnzrgEJP14yzt2T8AXsuM3YaNDoe3LoMWXepT -r grpc://st3.storage.fs.neo.org:8080 --timeout 1000s --file ./pk/seven_message.pk - Specify paths to the downloaded files to the node's run command via the following flags:
--dkg.one-msg-r1cs=./r1cs/one_message.ccs \ --dkg.two-msg-r1cs=./r1cs/two_message.ccs \ --dkg.seven-msg-r1cs=./r1cs/seven_message.ccs \ --dkg.one-msg-pk=./pk/one_message.pk \ --dkg.two-msg-pk=./pk/two_message.pk \ --dkg.seven-msg-pk=./pk/seven_message.pk \ - Ensure that
--antimev.passwordflag is provided to the node's run command and the node has access to its anti-MEV keystore. - Ensure that your node meets the hardware requirements mentioned in the README since ZK-based DKG process significantly increases node's RAM consumption. If not, then migrate your node to the suitable machine.
- Download 3 pairs of R1CS files and proving key files from the Neo X MPC ceremony page using NeoFS CLI:
- Start the node.
New features:
- the results of MPC ceremony are integrated into verifier contracts (#494)
Behaviour changes:
- BLS12-381 precompiles are updated to Prague-compatible version (#488, #495)
NeoXDKGfork is enabled at height3689280of MainNet (#497)NeoXEthSigfork is enabled at height3810240of MainNet (#497)NeoXAMEVfork is enabled at height3810240of MainNet (#497)
Improvements:
- support out-of-date or lost anti-MEV keystore recovery (#480, #491)
- an upgrade to optimized
zk-dkgv0.3.0 (#492) - ZK-related KeyManagement system contract updates (#489)
Bugs fixed: