https://www.github.com/etica

Etica network upgrade v2 Instructions to upgrade nodes to Etica v2

If you have a node running, make sure to upgrade it as soon as possible. If you don't upgrade your node in the next 7 days, it will get out of sync with Etica mainnet.

Phase 1: 31st January 2024

Phase 2: 7th Febuary 2024

Viewed 234053 times and downloaded 27471 times since September 28, 2019

For reminder, every Etica network upgrade requires majority of nodes of the network to accept the upgrade by upgrading their nodes. There is no central entity that can enforce an upgrade on Etica network.

Etica network upgrade v2

Eticav2 Upgrade instructions

  • 1. Install Go version 1.19.1
    sudo apt-get update
    wget https://go.dev/dl/go1.19.1.linux-amd64.tar.gz
    sudo tar -xvf go1.19.1.linux-amd64.tar.gz
    sudo mv go /usr/local
    export GOROOT=/usr/local/go
    export GOPATH=$HOME/go
    export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
    source ~/.profile
    go version
    
  • 2. Pull code updates
    If this is an update (you already have core-geth code), make sure you're in core-geth directory and pull the code. For this run:
    cd core-geth
    
    git pull
    
    Otherwise if this is a new node and you never pulled the code yet. Run:
    git clone https://github.com/etica/core-geth.git 
    
  • 3. Build from source code
    make sure you're in core-geth directory and then run:
    sudo apt install make
    
    sudo apt-get update
    
    make geth
    
  • 4. Update your launch script
    Eticav2 requires some edits to your geth command line launch scripts:
    • replace --networkid 61803 by --etica
    • replace --rpcvhosts="*" by --http.vhosts="*"
    • If this is a mining node, add --miner.etherbase="0x99Bea839c8c4F5ed756c29157705650a08068685" (set it to the address receiving the block rewards)
    • remove --gas.target
    For instance:
    ./build/bin/geth --networkid 61803 --nat extip:127.0.0.1 --datadir "./eticanode1" --http --http.addr "localhost" --http.port "8545" --port "30303" --allow-insecure-unlock --http.corsdomain "*"  --rpc.allow-unprotected-txs  --http.api eth,web3,personal,net --rpcvhosts=* --ipcpath "~/.ethereum/geth.ipc" --bootnodes "enode://b0e97d2f1a37b2035a34b97f32fb31ddd93ae822b603c56b7f17cfb189631ea2ef17bfbed904f8bc564765634f2d9db0a128835178c8af9f1dde68ee6b5e2bf7@167.172.47.195:30303"
    Becomes:
    ./build/bin/geth --etica --nat extip:127.0.0.1 --datadir "./eticanode1" --http --http.addr "localhost" --http.port "8545" --port "30303" --allow-insecure-unlock --http.corsdomain "*" --rpc.allow-unprotected-txs  --http.api eth,web3,personal,net --http.vhosts=* --ipcpath "~/.ethereum/geth.ipc" --bootnodes "enode://b0e97d2f1a37b2035a34b97f32fb31ddd93ae822b603c56b7f17cfb189631ea2ef17bfbed904f8bc564765634f2d9db0a128835178c8af9f1dde68ee6b5e2bf7@167.172.47.195:30303"
    
    Another example (mining node):
    ./build/bin/geth --networkid 61803 --mine --miner.threads=2 --miner.gasprice "1000000000" --miner.gastarget "50000000" --miner.gaslimit "50000000" --nat extip:127.0.0.1 --datadir "./eticanode1" --http --http.addr "localhost" --http.port "8545" --port "30303" --allow-insecure-unlock --http.corsdomain "*" --rpc.allow-unprotected-txs  --http.api eth,web3,personal,net --rpcvhosts=* --ipcpath "~/.ethereum/geth.ipc" --bootnodes "enode://b0e97d2f1a37b2035a34b97f32fb31ddd93ae822b603c56b7f17cfb189631ea2ef17bfbed904f8bc564765634f2d9db0a128835178c8af9f1dde68ee6b5e2bf7@167.172.47.195:30303"
    Becomes:
    ./build/bin/geth --etica --mine miner.etherbase="0x769cAB9308A3b86f5006D667f30652C92E4d8558" --miner.threads=2 --miner.gasprice "1000000000" --miner.gaslimit "50000000" --nat extip:127.0.0.1 --datadir "./eticanode1" --http --http.addr "localhost" --http.port "8545" --port "30303" --allow-insecure-unlock --http.corsdomain "*" --rpc.allow-unprotected-txs  --http.api eth,web3,personal,net --http.vhosts=* --ipcpath "~/.ethereum/geth.ipc" --bootnodes "enode://b0e97d2f1a37b2035a34b97f32fb31ddd93ae822b603c56b7f17cfb189631ea2ef17bfbed904f8bc564765634f2d9db0a128835178c8af9f1dde68ee6b5e2bf7@167.172.47.195:30303"
    
    Important: If you specified a datadirectory (--datadir) you must keep it in the command line, otherwise your node will start syncing from scratch with a brand new default directory
  • 5. Start the node
    You're now ready to launch your eticav2 node! Save your updated launch script and then run it as usual. For instance:
    pm2 start startnode.sh
    or
    ./startnode.sh
    
    If the upgrade was successfull, you should see this screen:
  • 6. Wait for 7th February
    Reminder wait for 7th February to complete your node upgrade. On 7th February the final phase of network upgrade will happen, you'll need to make a last git pull and make geth to finish your node upgrade, the final stage of the upgrade is as important as phase 1 and will occur on wednesday 7th February.
    Why upgrade in 2 phases?
    The upgrade of Etica smart contract requires some updates on the core-geth blockchain source code before it can be deployed. The phase 1, updates the blockchain source code and let's a period of 7 days to all nodes to update. Then for phase 2, the upgraded Etica smart contract bytecode will be deployed and nodes will simply update a variable in source code to finalize upgrade process. Without making phase 2 upgrade, a node will get out of sync with mainnet so it is important to follow both phases.
ETICA DOCS