Skip to content

Commit 19b565f

Browse files
authored
Merge pull request #497 from bane-labs/rel-0.4.1
*: release v0.4.1
2 parents ae1041e + 28f340c commit 19b565f

File tree

3 files changed

+81
-1
lines changed

3 files changed

+81
-1
lines changed

CHANGELOG.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,83 @@
22

33
This document outlines major changes between releases.
44

5+
## 0.4.1 "Liberalization" (19 Aug 2025)
6+
7+
This patch-release supports recovery from out-of-date or lost anti-MEV keystore
8+
and introduces an enhanced version of ZK-based DKG process. The results of MPC
9+
ceremony for ZK-DKG setup conducted by NGD, NSPCC, AxLabs and Lazynode are
10+
published to the https://github.com/bane-labs/mpc repository and integrated to
11+
the verifier system contracts. This release schedules `NeoXEthSig`, `NeoXDKG`
12+
and `NeoXAMEV` forks for MainNet with ZK-based DKG version.
13+
14+
This version is fully compatible with v0.4.0 and does not require node
15+
resynchronization. For TestNet nodes no configuration changes are required on
16+
upgrade (comparing to v0.4.0). For MainNet nodes the DB reinitialization is
17+
required with the updated genesis configuration since `NeoXEthSig`, `NeoXDKG`
18+
and `NeoXAMEV` forks are enabled. Follow the instructions below to upgrade your
19+
node from v0.4.0 to v0.4.1:
20+
21+
1. Download new binary and new genesis configuration file from the release page.
22+
2. Gracefully stop the node.
23+
3. Replace the old binary with the new binary.
24+
4. For MainNet nodes only: don't remove DB; reinitialize DB using new binary and
25+
new genesis configuration file with the following command:
26+
```
27+
./geth init --datadir ./node-datadir ./config/genesis.json
28+
```
29+
5. For consensus nodes only: prepare for participation in ZK-based DKG process
30+
following the steps below:
31+
1. Download 3 pairs of R1CS files and proving key files from the
32+
[Neo X MPC ceremony page](https://github.com/bane-labs/mpc?tab=readme-ov-file#seal-result)
33+
using [NeoFS CLI](https://github.com/nspcc-dev/neofs-node/releases/tag/v0.48.3):
34+
```
35+
mkdir ./r1cs
36+
./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
37+
./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
38+
./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
39+
mkdir ./pk
40+
./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
41+
./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
42+
./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
43+
```
44+
2. Specify paths to the downloaded files to the node's run command via
45+
the following flags:
46+
```
47+
--dkg.one-msg-r1cs=./r1cs/one_message.ccs \
48+
--dkg.two-msg-r1cs=./r1cs/two_message.ccs \
49+
--dkg.seven-msg-r1cs=./r1cs/seven_message.ccs \
50+
--dkg.one-msg-pk=./pk/one_message.pk \
51+
--dkg.two-msg-pk=./pk/two_message.pk \
52+
--dkg.seven-msg-pk=./pk/seven_message.pk \
53+
```
54+
3. Ensure that `--antimev.password` flag is provided to the node's
55+
run command and the node has access to its anti-MEV keystore.
56+
4. Ensure that your node meets the hardware requirements mentioned in the
57+
[README](https://github.com/bane-labs/go-ethereum?tab=readme-ov-file#consensus-node)
58+
since ZK-based DKG process significantly increases node's RAM
59+
consumption. If not, then migrate your node to the suitable machine.
60+
6. Start the node.
61+
62+
New features:
63+
* the results of MPC ceremony are integrated into verifier contracts (#494)
64+
65+
Behaviour changes:
66+
* BLS12-381 precompiles are updated to Prague-compatible version (#488, #495)
67+
* `NeoXDKG` fork is enabled at height `3689280` of MainNet (#497)
68+
* `NeoXEthSig` fork is enabled at height `3810240` of MainNet (#497)
69+
* `NeoXAMEV` fork is enabled at height `3810240` of MainNet (#497)
70+
71+
Improvements:
72+
* support out-of-date or lost anti-MEV keystore recovery (#480, #491)
73+
* an upgrade to optimized `zk-dkg` v0.3.0 (#492)
74+
* ZK-related KeyManagement system contract updates (#489)
75+
76+
Bugs fixed:
77+
* panic on ZK-based DKG message recovery (#485)
78+
* disabled shares phase check during DKG epoch transition (#480)
79+
* improper ZK version is used during reshare recovery (#480)
80+
* zero random scalar is possible in anti-MEV related operations (#490)
81+
582
## 0.4.0 "Karstification" (20 Jun 2025)
683
784
This version introduces a preview of ZK-based DKG signature verification added to

config/genesis_mainnet.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
"arrowGlacierBlock": 0,
1616
"grayGlacierBlock": 0,
1717
"shanghaiTime": 0,
18+
"neoXDKGBlock": 3689280,
19+
"neoXEthSigBlock": 3810240,
20+
"neoXAMEVBlock": 3810240,
1821
"dbft": {
1922
"period": 5,
2023
"standbyValidators": [

params/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
const (
2424
VersionMajor = 0 // Major version component of the current release
2525
VersionMinor = 4 // Minor version component of the current release
26-
VersionPatch = 0 // Patch version component of the current release
26+
VersionPatch = 1 // Patch version component of the current release
2727
VersionMeta = "stable" // Version metadata to append to the version string
2828
)
2929

0 commit comments

Comments
 (0)