Wanchain Saturn Guide

The Wanchain mainnet will undergo its highly anticipated “Saturn” hard fork (v3.0.0) at block height 21,454,700, which is expected on July 5, 2022.

All Wanchain PoS validator nodes and other relevant nodes, such as those belonging to exchanges and wallets, must update their GWAN client to version 3.0.0 before that time to avoid block synchronisation issues.

New Features

After the upgrade of GWAN EVM, here are the primary new features:

  • New EVM (London hard fork version)

  • Support for EIP1559

  • Support for SHA3

  • Support for the latest EVM opcodes

  • Support for the seamless migration of new DAPPs from Ethereum

Node Upgrade Methods

There are two methods to upgrade Wanchain mainnet nodes: Script Upgrade and manual upgrade.

Script Upgrade (best option for PoS Validator Nodes)

Executing a simple upgrade script is the best way to upgrade a Wanchain PoS Validator Node. Users can execute the following script after logging into their cloud service node with SSH:

$ rm updateMainnetValidator.sh$ wget https://raw.githubusercontent.com/wanchain/go-wanchain/develop/loadScript/updateMainnetValidator.sh && chmod +x updateMainnetValidator.sh && ./updateMainnetValidator.sh

Notes:

  • Please upgrade GWAN to v3.0.0 as soon as possible.

  • After the upgrade, the node will require slightly more storage. Please ensure that your server has an additional 20GB of space available.

  • As the Wanchain blockchain continues to grow, the storage requirements for GWAN will continue to grow.

Manual Upgrade (best option for non-PoS Nodes including exchanges)

For Wanchain nodes running in a non-standard or customised operating environment, the GWAN v3.0.0 binary file can be downloaded from Wanchain’s GitHub. After downloading the binary file, simply manually replace and upgrade the GWAN.

This method is generally most suitable for non-PoS Nodes including exchanges’ nodes and wallet operators’ nodes.

GWAN v3.0.0 download link: https://github.com/wanchain/go-wanchain/releases/tag/v3.0.0

Startup:

$ ./gwan --http --http.addr <ipaddress> --http.port 8545

Notes:

  • Please upgrade GWAN to v3.0.0 as soon as possible.

  • Exchanges are requested to close the deposit and withdrawal services before the Wanchain blockchain reaches block height 21,454,700 (expected on July 5, 2022). Deposit and withdrawal services can be re-opened once Wanchain’s Saturn hard fork is complete.

  • After the upgrade, the node will require slightly more storage. Please ensure that your server has an additional 20GB of space available.

  • As the Wanchain blockchain continues to grow, the storage requirements for GWAN will continue to grow.

  • The command line for GWAN v3.0.0 is ./gwan --http --http.addr --http.port. The RPC is optional. Previously, for GWAN v2.2.0 and its earlier versions, the startup command line was ./gwan --rpc --rpcport 8545. The startup command line for the new GWAN v3.0.0 now completely abides by Ethereum’s rules.

  • --http Enable the HTTP-RPC server

  • --http.addr value HTTP-RPC server listening interface (default: “localhost”)

  • --http.port value HTTP-RPC server listening port (default: 8545)

Technical FAQ

  1. If a transaction sent to GWAN a legacy format (ie. before EIP-1559), the txHash returned by GWAN will differ from the result calculated locally by the SDK. In such instances, please use the txHash returned by the node.

  2. The new GWAN RPC nodes enable “ChainID enforcement”. Consequently, GWAN will reject transactions on the RPC that are not replay protected. Therefore, please provide the ChainID in the transaction. If a transaction doesn’t provide ChainID, you will encounter an error like “only replay-protected (EIP-155) transactions allowed over RPC”. GETH v1.10.0 enables this feature. Please refer to the chapter of ChainID enforcement at https://blog.ethereum.org/2021/03/03/geth-v1-10-0/ for more details.

  3. Like GETH, GWAN’s APIs strengthen field type checking. In eth.estimateGas, ChainID must be a string and cannot be 0 at the beginning. For example, a Wanchain transaction with format before EIP-1559 with ChainID “0x01” in estimateGas will encounter an error like “cannot unmarshal hex number with leading zero digits into Go struct field TransactionArgs.chainId of type *hexutil.Big”. In this case, you should modify the ChainID to “0x1”.

Changes to Commonly Used Command lines

Some command line parameters in the GETH client have changed, so GWAN follows suit to maintain full compatibility with Ethereum. Here are several commonly used command lines which have changed:

1. --http related command lines

Some command lines that begin with --rpc are changed to --http , such as:

  • Change --rpc to --http

  • Change --rpcport changed to --http.port

  • Change --rpcaddr changed to --http.addr

  • Change --rpcapi changed to --http.api

2. --miner related command lines

Such as:

  • Change--minerthreads to --miner.threads

  • Change --etherbase to --miner.etherbase

3. Status monitoring related command lines

For the compatibility with GETH, change --wanstats to --ethstats

If you encounter any problems during the upgrade, please contact our developers directly in the corresponding private technical group, or email us at techsupport@wanchain.org

Last updated