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

Was this helpful?

  1. For validators
  2. Hard Forks
  3. POA Core

POA Core spec.json hard-fork update

Previous2018-10-22 | #5329160NextSokol

Last updated 5 years ago

Was this helpful?

This guide assumes that you're running this playbook from the same machine you used to make initial deployment of your node. You should already have python and ansible installed, and you have the correct ssh keypair to root-access the node.

1) If you already have a cloned version of the poa-devops repository (), pull the latest changes:

cd poa-devops
git pull origin master

otherwise, clone this repository:

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

1) create group_vars/all file:

cp group_vars/hf-spec-change.example group_vars/all

and set the following variables:

  1. poa_role - node's role (one of bootnode, validator, moc, explorer, netstat)

  2. MAIN_REPO_FETCH: "poanetwork")

  3. GENESIS_BRANCH: "core" )

2) Create/edit hosts file:

echo "" > hosts

and put your node's ip address (assuming it's 192.0.2.1) as follows:

[hf-spec-change]
192.0.2.1

make sure you don't have other tags ([...]) in hosts file, and double check you are using your POA CORE node's IP address.

For those who host multiple nodes:

  • if all your nodes are of the same role (e.g. all bootnodes), you can run this playbook on all of them by listing their ips, e.g.

    [hf-spec-change]
    192.0.2.1
    192.0.2.2
    192.0.2.3
    192.0.2.4
  • if you host nodes of different types you can set poa_role individually against the corresponding ip address like so:

    [hf-spec-change]
    192.0.2.1 poa_role=explorer
    192.0.2.2
    192.0.2.3 poa_role=moc
    192.0.2.4

    on lines where you omitted explicit poa_role, the value from group_vars/all is used.

3) Run the playbook:

ansible-playbook -i hosts site.yml

If you get a ssh connection error, try to add -e 'ansible_ssh_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

4) Verify that your node is active in the netstat:

5) connect to the node

ssh root@192.0.2.1

switch to the home folder of corresponding role:

# substitute validator with your node's role (bootnode, moc, ...)
cd /home/validator

and check the update time of spec.json (should be about the time you started the playbook)

ls -lh
# a long list should appear here, look for spec.json in the rightmost column and check the date and time on the same row

also check that backup was created:

ls -lh spec-hfs/
# look for a file named similar to spec-hf-20180108-174649.json Numbers represent date and time in UTC when the playbook was started

https://github.com/poanetwork/poa-devops.git
https://core-netstat.poa.network