POA
English
English
  • Welcome to POA
  • Features
    • Known Validators
    • POADAO Consensus
    • Bridged Native Token
    • On-Chain Randomness
  • Use Cases
    • Scalability for BlockChain Games
    • Community-Based Currencies
    • Subsidized Transactions
    • Decentralized Finance (DeFi)
  • DApp Spotlights
    • Ethernal.World
  • Roadmap
  • For users
    • POA Tokens
      • POA Merger & STAKE Swap
      • POA - STAKE FAQs
      • POA Token Supply
      • POA & POA20 Exchanges
      • POA & POA20 on Binance
      • FAQ: POA20 General Questions
    • POA Token Use Cases
      • Utility Token
      • Currency Token
      • Collateral Token
      • Bridged Token
      • Staking Token
      • Stable Token
    • POA to POA20 Bridge
    • Accept POA20 Payments
      • Account Registration & Login (Merchant Setup)
      • Setup Merchant Account
      • Merchant Payment Method Setup
      • Making a Payment with POA20 (Customer Perspective)
    • Tutorials
      • Trading POA20 on DEX.AG
      • POA20 Token Swaps on 1inch.exchange
      • Getting Airdrops via Discord
    • Governance
      • Article: A Successful Year of On-Chain Governance
      • Governance Reports
        • April 2020 Report
        • December 2019 Report
      • Ballot Type, Lifecycle & Limits
    • ❌Nifty Wallet (Discontinued)
      • Getting Started
      • Import and Interact with Smart Contracts
      • Connect to a Hardware Wallet (Ledger & Trezor)
      • Connect to D'CENT Biometric Wallet
      • Connect to Pocket Decentralized Network
    • 3rd Party Wallets
      • Trust Wallet
      • MetaMask
    • POA Mania
      • News - Updates
      • Rules
      • POA Mania FAQs
      • Deposit & Withdraw
      • Winner Selection
      • Round Details
      • POA Mania vs PoolTogether
      • POA Mania on Trust Wallet
      • POA Mania Security Audit
      • POA Mania on MetaMask Mobile
    • Whitepaper
      • POADAO v1
        • Introduction
        • Proof of Authority
        • POA Network Functionality
        • Decentralized apps (DApps)
          • Initial ceremony DApp
          • Proof of Physical Address (PoPA) DApp
          • Proof of Bank Account DApp
          • Proof of Social Network DApp
          • Proof of Phone Number DApp
          • Governance DApp
        • Summary & Acknowledgements
        • References
        • Appendix A: Code Samples
          • Ballots manager
          • Validators manager
          • Deployment scripts for the mining node
  • For developers
    • Developer Resources
    • Getting Tokens For Tests
      • ERC20 Test Token Faucet
      • Sokol Testnet Faucet
    • Full Node Setup
      • Install OpenEthereum Client
      • Install Nethermind Client
    • DApp Deployment
    • TheGraph Data Indexing
    • On-Chain Random Numbers
      • RNG explainer (AuRa + RandomAura Contract)
      • Accessing a Random Seed with a Smart Contract
      • Randomness FAQs
    • API & SQL Access
    • Smart Contract Dashboard
    • Grants for Building on POA
  • For validators
    • Getting Started
      • Validator Resources
      • Becoming a Validator
    • Bootnode Setup
      • AWS Bootnode Setup
        • Prerequisites
        • Configure AWS
        • Download and Configure Playbook
        • Deploy
      • Non-AWS Bootnode Setup & Deployment
        • Local/Remote Machine System Requirements
        • Node Preparation
        • Configure node with Deployment Playbook
    • Validator Node Setup
      • Nethermind Upgrade
      • AWS VM for Validator Node Deployment
        • MoC: Master of Ceremony Key Exchange & Generation
        • Current Validators Vote in New Validators
        • Validator Node Setup Prerequisites
        • Configuring AWS
        • Download and Configure Playbook
        • Deployment
        • Upgrade Instance to a Larger Instance Type
      • Non-AWS Validator Node Setup
        • Local & Remote Machine System Requirements
        • Remote Machine Setup
        • Configure Node using Deployment Playbook
      • NetStats Dashboard
    • Hard Forks
      • Parity Upgrade Guide
      • POA Core
        • 2021-11-02 | #24090200
        • 2021-05-24 | #21364900
        • 2020-03-31 | #14350721
        • 2019-12-19 | #12598600
        • 2019-04-29 | #8582254
        • 2018-01-29 | # 772000
        • 2018-10-22 | #5329160
        • POA Core spec.json hard-fork update
      • Sokol
        • 2021-05-24 | #21050600
        • 2020-02-20 | #13391641
        • 2019-12-05 | #12095200
        • 2019-02-06 | #7026400
        • 2019-01-04 | #6464300
        • 2018-09-19 | #4622420
        • 2018-01-18 | #509355
        • 2018-01-08 | #362296
        • Sokol spec.json hard-fork update
    • Validator DApps
      • Validators MetaData DApp
      • Adding or Removing a Validator
  • Media
    • Social Media
    • Media Kit
    • Contact Us
Powered by GitBook
On this page
  • Running the update
  • Verifying the update
  • Rollback to the previous version (in case of problems)

Was this helpful?

  1. For validators
  2. Hard Forks

Parity Upgrade Guide

Parity may need to be updated to prepare for a hard fork

This guide assumes you are running this playbook from the same machine you used initially deploy of your node. You should already have python and ansible installed, and the correct ssh keypair to root-access the node.

Running the update

1) Clone the poa-devops repository if you haven't done so before

git clone https://github.com/poanetwork/poa-devops.git
cd poa-devops

or pull the latest changes

cd poa-devops
git pull origin master

2) Create group_vars/all file:

cp group_vars/upd-parity-version.example group_vars/all

and change the following variables:

  1. poa_role - role of the node on the network (select one of these: bootnode, validator, moc, explorer)

  2. GENESIS_BRANCH - either "sokol" or "core" or "dai" or "kovan" depending which network you're updating

DO NOT change other options

3) Create/edit hosts file and put your node's ip address (assuming it's 192.0.2.1) there with the following header:

[upd-parity-version]
192.0.2.1

If you're updating an existing file, make sure you remove other tags [...] and ips.

4) Run the playbook (change user: ubuntu to your user name, if necessary):

ansible-playbook -i hosts upd-parity-version.yml

Verifying the update

Playbook run completes without errors.

1) Open network statistic webpage:

check that your node is "green" and is catching new blocks. It may take 5-6 minutes to fully start and reconnect.

2) Connect to the node

ssh root@192.0.2.1

and check parity version (replace bootnode with correct role name ,e.g. validator):

/home/bootnode/parity --version

sample output (version number may be different):

Parity Ethereum
  version Parity-Ethereum/v2.4.6-stable-94164e1-20190514/x86_64-linux-gnu/rustc1.34.1
Copyright 2015-2018 Parity Technologies (UK) Ltd.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

By Wood/Paronyan/Kotewicz/Drwięga/Volf
   Habermeier/Czaban/Greeff/Gotchac/Redmann

3) During the next day check the status of your node on network status webpage and associated functions (e.g. for validators - are block rewards still being sent from your mining key to your payout key?).

Rollback to the previous version (in case of problems)

If you get any errors please consult the POA Team first, most likely it is a minor issue and you don't need to rollback.

1) Connect to the node:

ssh root@192.0.2.1

2) Switch to your home folder (replace bootnode with correct role name):

cd /home/bootnode

3) Stop services:

systemctl stop poa-netstats
systemctl stop poa-parity

4) Locate the backup folder:

ls backups-version

it contains folders labeled by the time backup was created in format<year><month><day>T<hour><minute><second>, e.g.

# ls backups-version
20190311T200132 20190614T214517

copy the version number that corresponds to this day. In the following examples we assume that it's 20180209T214517.

5) Make sure you have your mining key data (keyfile, password, address) available to you.

6) Remove files from the new version:

rm -rf parity_data
rm parity
rm node.toml

7) Restore previous versions of these files from backup (note dots . at the end of each line here, they are important):

cp -a backups-version/20190614T214517/parity .
cp -a backups-version/20190614T214517/parity_data .
cp -a backups-version/20180614T214517/node.toml .

8) Check parity version (must be previous one):

./parity --version

sample output (version number may be different):

Parity Ethereum
  version Parity-Ethereum/v2.3.2-beta-678138f-20190203/x86_64-linux-gnu/rustc1.31.1
Copyright 2015-2018 Parity Technologies (UK) Ltd.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

By Wood/Paronyan/Kotewicz/Drwięga/Volf
   Habermeier/Czaban/Greeff/Gotchac/Redmann

9) Restart services

systemctl restart poa-parity
systemctl restart poa-netstats

10) Open network statistic webpage:

Check that your node is "green" and is catching new blocks. It may take 2-3 minutes to fully start and reconnect.

PreviousHard ForksNextPOA Core

Last updated 5 years ago

Was this helpful?

Error Troubleshooting: If you get a ssh connection error, try to add option -e 'ansible_ssh_user=ubuntu' and/or --user="ubuntu" to the command line above, substituting ubuntu with correct ssh username, which is usually either ubuntu or root or poa or centos depending on your setup. You may also need to specify exact path to your ssh private key with --key-file=/path/to/private.key cli option.

If you are installing an update to the localhost machine, use -c local instead of specifying the private key.

If you get an error similar to the following, try adding the--ask-become-pass flag. FAILED! => {“changed”: false, “failed”: true, “module_stderr”: “sudo: a password is required\n”, “module_stdout”: “”, “msg”: “MODULE FAILURE”}

for sokol test network:

for core main network:

for dai network:

for kovan network:

for sokol test network:

for core main network:

for dai network:

👉
👉
👉
https://sokol-netstat.poa.network
https://core-netstat.poa.network
https://dai-netstat.poa.network
https://kovan-netstat.poa.network
https://sokol-netstat.poa.network
https://core-netstat.poa.network
https://dai-netstat.poa.network