Skip to content

Releases: bane-labs/go-ethereum

Ornamentation

07 Nov 07:05
ced1753

Choose a tag to compare

This patch-release supports an event subscription from dBFT and improves the
PreBlock construction about Envelope transaction handling. Since the Cancun
and Prague upgrades work on TestNet quite well, this version also schedules
the same upgrades for MainNet.

This version is fully compatible with v0.5.0 and does not require node
resynchronization. For TestNet nodes no configuration changes are required on
upgrade (comparing to v0.5.0). For MainNet nodes the DB reinitialization is
required with the updated genesis configuration since Cancun and Prague
forks are enabled. Follow the instructions below to upgrade your node from
v0.5.0 to v0.5.1:

  1. Download new binary and new genesis configuration file from the release page.
  2. Gracefully stop the node.
  3. Replace the old binary with the new binary.
  4. 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
    
  5. Start the node.

New features:

  • support a real-time event subscription about Envelopes (#528, #530)

Behaviour changes:

  • Cancun fork is enabled at timestamp 1763000000 on MainNet (#531)
  • Prague fork is enabled at timestamp 1763000000 on MainNet (#531)

Improvements:

  • refactor PreBlock handling to avoid unexpected Envelope revert (#528)
  • update system contract documentation about Message Bridge (#529)

Neutralization‌

23 Oct 09:32
c44992a

Choose a tag to compare

This version introduces the support for two Ethereum major upgrades: Cancun and Prague. Since this repository starts from and still is an Execution Layer (EL), this upgrade is only a part of Dencun and Pectra. As a result, the proposal of EIP-4844 (Shard Blob Transactions) are not fully implemented. Currently, blob data is only very short-lived in the network, and doesn't have any API to get properly accessed.

Follow the instructions below to upgrade your node from v0.4.2 to v0.5.0:

  1. Download new binary and new genesis configuration file from the release page.
  2. Gracefully stop the node.
  3. Replace the old binary with the new binary.
  4. For TestNet nodes only: reinitialize DB using new binary and new genesis configuration file with the following command:
    ## If you are running a full node, don't remove DB.
    ./geth init --state.scheme hash --datadir ./node-datadir ./config/genesis.json
    
    ## If you are running a snap node, you can reserve the DB by reiniting with "--state.scheme hash".
    ## Or, remove existing DB and init a new one with "--state.scheme path" as default.
    ./geth removedb --datadir ./node-datadir
    ./geth init --datadir ./node-datadir ./config/genesis.json
    
  5. Start the node with --state.scheme set to hash or path (default)
    correspondingly.

Behaviour changes:

  • Cancun fork is enabled at timestamp 1761600000 on TestNet (#522)
  • Prague fork is enabled at timestamp 1761600000 on TestNet (#522)

Improvements:

  • base Geth source code is updated to v1.14.13 (#487)
  • base Geth source code is updated to v1.15.11 (#499)
  • reschedule NeoXAMEV and NeoXEthSig forks for PrivNet setups (#510)
  • update hardware requirement documentation (#514)
  • remove proxy checks from system contracts and upgrade hardhat (#519)

Mutualization

02 Sep 17:35
7065618

Choose a tag to compare

A couple of ZK-based DKG rounds passed on TestNet, hence it may be safely enabled on MainNet. This version reschedules NeoXDKG, NeoXAMEV and NeoXEthSig forks to enable them earlier than planned initially. This version also adds an availability check for DKG-related files on node bootstrap.

This version is fully compatible with v0.4.1 and does not require node resynchronization. For TestNet nodes no configuration changes are required on upgrade (comparing to v0.4.1). For MainNet nodes the DB reinitialization is required with the updated genesis configuration since NeoXEthSig, NeoXDKG and NeoXAMEV forks are rescheduled. Follow the instructions below to upgrade your node from v0.4.1 to v0.4.2:

  1. Download new binary and new genesis configuration file from the release page.
  2. Gracefully stop the node.
  3. Replace the old binary with the new binary.
  4. 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
    
  5. Start the node.

Behaviour changes:

  • NeoXDKG, NeoXAMEV and NeoXEthSig forks of MainNet are rescheduled to 3623040, 3749760 and 3749760 blocks correspondingly (#512, #516)
  • reschedule NeoXDKG fork for PrivNet setups (#502)

Improvements:

  • check DKG-related files are available on node startup (#503)
  • remove compatibility code from system contracts (#506)
  • update ZK-PrivNet documentation (#511)

Liberalization

19 Aug 19:33
19b565f

Choose a tag to compare

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:

  1. Download new binary and new genesis configuration file from the release page.
  2. Gracefully stop the node.
  3. Replace the old binary with the new binary.
  4. 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
    
  5. For consensus nodes only: prepare for participation in ZK-based DKG process following the steps below:
    1. 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
      
    2. 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 \
      
    3. Ensure that --antimev.password flag is provided to the node's run command and the node has access to its anti-MEV keystore.
    4. 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.
  6. 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)
  • NeoXDKG fork is enabled at height 3689280 of MainNet (#497)
  • NeoXEthSig fork is enabled at height 3810240 of MainNet (#497)
  • NeoXAMEV fork is enabled at height 3810240 of MainNet (#497)

Improvements:

  • support out-of-date or lost anti-MEV keystore recovery (#480, #491)
  • an upgrade to optimized zk-dkg v0.3.0 (#492)
  • ZK-related KeyManagement system contract updates (#489)

Bugs fixed:

  • panic on ZK-based DKG message recovery (#485)
  • disabled shares phase check during DKG epoch transition (#480)
  • improper ZK version is used during reshare recovery (#480)
  • zero random scalar is possible in anti-MEV related operations (#490)

Karstification

20 Jun 13:03
a6e6874

Choose a tag to compare

This version introduces a preview of ZK-based DKG signature verification added to KeyManagement system contract and the support of ZK-based DKG signature generation at the dBFT side (this feature will be auto-enabled by dBFT once KeyManagement contract is upgraded by the network maintainers). Note that this feature is not yet finalized and is a subject of polishing for further releases. Also, this version adds a support for NeoXEthSig fork that switches to a canonical form of TPKE block signatures. In addition to that, this version contains a set of optimisations improving the efficiency of block producing process and a set of dBFT-related bug fixes.

This version is fully compatible with v0.3.2 and does not require DB resync. For TestNet nodes upgrade, the DB reinitialization with updated genesis configuration is required (NeoXEthSig fork is scheduled at block 3750000 of TestNet). To upgrade MainNet nodes from v0.2.2, DB reinitialization is required (since we've removed NeoXBurn from the list of known forks; note that we don't yet enable NeoXDKG, NeoXAMEV and NeoXEthSig forks on MainNet). Also, anti-MEV keystore should be generated and provided to the node on startup following the notes from v0.3.0 release.

New features:

  • NeoXEthSig hardfork fixing the format of TPKE block signature (#463)
  • ZK-based DKG signature verification support in KeyManagement contract (#442, #470)
  • ZK-based DKG signature generation support in dBFT (#444)

Behaviour changes:

  • txpool.signaturecache CLI flag is renamed to txpool.amevcache (#457)

Improvements:

  • configurable dBFT status statistics period (#449)
  • documentation improvements (#457)
  • refactoring of encrypted transactions pool (#468)
  • optimize conversion of dBFT CN index to DKG CN index (#458)
  • use local mempool for dBFT proposal verification (#466, #476)

Bugs fixed:

  • panic in encrypted transactions pool on attempt to remove expired transaction (#447)
  • empty pending consensus list on new epoch start in Governance contract (#460)
  • DKG routine is not synchronized with miner interruption (#475)
  • panic on dBFT payload processing during miner node shutdown (#467)
  • non-canonical format of TPKE block signature (#463)
  • panic in dBFT on PreBlock verification (#473)
  • consensus doesn't work on single-node privnet (#315)
  • inability to retrieve ZK version from old KeyManagement implementation (#478)

Ionization

20 Mar 12:02
1cf3324

Choose a tag to compare

This is an urgent patch-release fixing a panic happened on primary CN during decrypted transaction verification. This version is compatible with v0.3.1 and does not require DB resync or configuration update on upgrade.

Behaviour changes:

  • NeoXAMEV fork is enabled at height 2088000 of Testnet (#437)

Bugs fixed:

  • decrypted transaction can't be verified at primary node due to panic (#439)

Zonation

11 Mar 09:15
b8e54d6

Choose a tag to compare

This patch-release introduces NeoXDKG fork on Testnet and contains a couple of minor improvements compatible with v0.3.0 version.

Please, follow the notes to upgrade your node from v0.3.0 to v0.3.1:

  1. Download new binary and new genesis configuration file from the release page.
  2. Gracefully stop the node.
  3. Replace the old binary with the new binary.
  4. Don't remove DB. Reinitialize DB using new binary and new configuration file for the corresponding network with the following command:
    ./geth init --datadir ./node-datadir ./config/genesis.json
    
  5. If you're running a consensus node, ensure that --antimev.password flag is provided to the node's runner script and the node has access to its anti-MEV keystore. Also, ensure that you've registered your node's anti-MEV public key in the KeyManagement contract.
  6. Start the node.

Behaviour changes:

  • NeoXDKG fork is enabled at height 1990080 of Testnet (#434)

Improvements:

  • anti-MEV related documentation upgrade (#430)
  • anti-MEV public key is required to register new candidate via Governance contract (#433)

Bugs fixed:

  • encrypted transaction fee wasn't checked at the consensus/state DB level (#431)
  • Governance contract wasn't allow to register a candidate (#433)

Elation

27 Feb 16:09
603d6ea

Choose a tag to compare

This version introduces support for two major features: anti-MEV encrypted transactions processing and threshold BLS block signatures. Two new forks are implemented to provide these features: NeoXDKG enables new system KeyManagement contract that allows consensus nodes to participate in the DKG process, and NeoXAMEV that enables encrypted transactions processing at the consensus level and BLS threshold block signatures which solves the frequent chain reorg problem.

Please, follow carefully the notes to upgrade your node from v0.2.2 to v0.3.0:

  1. Download new binary and new genesis configuration file (go-ethereum/config/genesis_mainnet.json or go-ethereum/config/genesis_testnet.json) from the release page.
  2. Gracefully stop the node.
  3. Replace the old binary with the new binary.
  4. Don't remove DB. Reinitialize DB using new binary and new configuration file for the corresponding network with the following command:
    ./geth init --datadir ./node-datadir ./config/genesis.json
    
  5. If you're running a consensus node, ensure this step is executed in a safe environment. Generate anti-MEV keystore for your consensus node with new binary using the following command:
    ./geth --datadir ./node-datadir antimev init <address>
    
    • <address> is the address of your consensus node that is used to participate in the consensus process, it can be found in the consensus node wallet.
      You will be prompted for a password. Ensure that you remember the password.
  6. Adjust your node's runner script:
    • For consensus nodes only: add a password for anti-MEV keystore using --antimev.password ./password.txt flag.
    • Optional: if you'd like to change the dBFT log level from default (info), specify it via --dbft.loglevel debug flag.
  7. Start the node.

New features:

  • anti-MEV keystore support for the node and CLI and related TPKE cryptography implementation (#301, #326, #332, #371, #392, #394)
  • new KeyManagement system contract (#312, #332, #398)
  • anti-MEV enabled dBFT consensus support (#287)
  • NeoXDKG fork that enables KeyManagement system contract operations, BLS precompiles and MCOPY opcode (#328, #332, #402, #409)
  • NeoXAMEV fork that enables anti-MEV logic, encrypted transactions processing for consensus engine and threshold block signatures (#321, #347, #358, #384, #383, #385, #391, #393, #389, #392, #416, #418, #421)

Behaviour changes:

  • NeoXBurn fork is removed (#328)
  • OnPersist system script execution now includes KeyManagement system contract call (#330)
  • reduce block acceptance interval to 5 seconds (#369)
  • Governance system contract voting lock is removed, logic distribution scheme is adjusted to be seamless (#349)

Improvements:

  • enhanced transactions verification logic in consensus engine (#339)
  • Governance contract updates required for DKG setup (#337)
  • watch-only consensus nodes are added to privnet (#359)
  • maintain processed block state in consensus engine of every consensus node (#360)
  • possibility of fallback from threshold block signature to multisignature (#366, #390)
  • stabilize block generation time (#396)
  • make GovernanceReward contract accept Envelope transfers (#400)
  • ability to customize dBFT log messages level (#419)
  • anti-MEV transactions policies (#413, #422)

Bugs fixed:

  • extensible payload senders are not properly verified (#319)
  • watch-only consensus node is able so send consensus messages (#351)
  • unexpected timeout for system contract calls (#379)
  • new blocks are not tracked during sealing proposal awaiting (#404)
  • RecoveryMessage encoding format incompatibility (#425)

Disjunction

21 Aug 09:36
0ee4307

Choose a tag to compare

Another v0.2.0 compatible version of Neo X node that includes Geth update to v1.13.15 and a set of bugfixes critical for both MainNet and T4 TestNet functioning.

Node operators should update the binary for both T4 and MainNet nodes, no DB resync is needed.

Improvements:

  • base Geth source code is updated to v1.13.15 (#232)

Bug fixed:

  • panic during PREVRANDAO opcode handling (#289)
  • duplicated transactions requests are sending by dBFT (#292)
  • transaction receipts carrying non-canonical block hash (#232)
  • race in sealed block submission to miner (#302)
  • frequent peer disconnections due to invalid extensible dBFT payload sender (#298)

Graphitization

24 Jul 12:18
e42cbef

Choose a tag to compare

A patch version compatible with v0.2.0 release of Neo X node that brings a set of minor compatible improvements and bug fixes to system contracts, dBFT consensus engine and RPC APIs. This version is aimed to be run on the initial version of Neo X MainNet.

A new config/genesis_mainnet.json configuration file is added, please use this file to initialize a database for MainNet nodes. Ensure your MainNet node running script contains an updated network ID (47763) and a proper MainNet bootnode identifiers set. For T4 node operators it should be noted that this release does not require a DB resynchronisation. However, we recommend to update the node binary since it contains a dBFT-related bug fix that may affect the consensus functionality in a very specific set of conditions.

New features:

  • Multisignature system contract aimed to serve as an owner of Bridge and Bridge Management system contracts instead of a simple EOA account (#279)
  • genesis configuration for Neo X MainNet (#271)

Behavior changes:

  • initial candidate registration fee is lowered down to 1000 GAS in Governance system contract (#275, #281)
  • candidate exit fee ratio is increased up to 50% from the deposited value in Governance system contract (#275, #280, #281)

Improvements:

  • disable initialization code for every UUPS implementation (#259)
  • Bridge and Bridge Management system contracts update (#274)

Bugs fixed:

  • missing total votes update on transferring votes from exited candidate in Governance system contract (#260)
  • non-strict GovernanceVote system contract check for the number of voters (#267)
  • improper GAS estimation in eth_estimateGas Blockchain RPC API caused by changes in fee policies of Neo X (#263)
  • missing track of miner's work resume event which leads to dBFT hanging on next block awaiting when miner is suspended due to the node sync (#268)