Stratos-Chain-Testnet upgrade from v0.4.0 to v0.5.0

Since this upgrade is introducing major changes in genesis setup for PoT module. We need to restart the validator using exported genesis from v0.4.0

Please follow these steps to upgrade your Stratos-Chain Testnet

1. Backup and cleanup current blockchain data

1.1 Backup data folder

mkdir ./backups/data
mv ./data/* ./backups/data/

1.2 Create priv_validator_state.json file in data folder

 echo '{
 "height": "0",
 "round": "0",
 "step": 0
  }' \
 > ./data/priv_validator_state.json

2. Prepare genesis.json file

2.1 Download genesis.json

wget https://raw.githubusercontent.com/stratosnet/stratos-chain-testnet/main/genesis.json

2.2 Replacegenesis.json file in config folder with the downloaded one

3. Existing multiple nodes(optional)

If you have multiple nodes, repeat Step 1 and Step 2 for each node.

4. Update binary

Download the updated stchaind and stchaincli binary files

wget https://github.com/stratosnet/stratos-chain/releases/download/v0.5.0/stchaincli
wget https://github.com/stratosnet/stratos-chain/releases/download/v0.5.0/stchaind

4.1 Check the granularity

md5sum stchain*

## expect output 
## aded93fa2f1f4816375dcb425ec4ce42 stchaincli
## 2d79092bd2096baa82879edc64c17294 stchaind

4.2 Replace old stchaincli and stchaind binary files with these downloaded ones

4.3 Add execute permission for these downloaded binary files

chmod +x stchaincli
chmod +x stchaind

4 Update binary -alternative

4.1 Compile the binary with source code

Make sure you have Go 1.15+ installed (link).

git clone https://github.com/stratosnet/stratos-chain.git
cd stratos-chain
git checkout v0.5.0

# The binary can be found in ./build folder
make build 

#or install to default $GOPATH/bin
make install 

5. Run your node

./stchaind start --home ./ 

Hereafter, the node will try to catch up with the blockchain to the latest block

5.1 Run the node in background

./stchaind start --home ./ 2>&1 >> chain.log &

6. Get test tokens from faucet(https://faucet-test.thestratos.org/)

curl -X POST https://faucet-test.thestratos.org/faucet/<your-wallet-address>

For example: in your terminal,

curl -X POST https://faucet-test.thestratos.org/faucet/st1gwtcnptte6fpxck3f9xs45ufrru9sz2500edn8

Note:

1 stos = 1000000000 ustos

By default, faucet will send 100stos(100000000000ustos) to the given wallet address

7. Check your account balance

Note: Account balance is only available after your node has finished catching up with the blockchain.

./stchaincli query account <your address> --home ./

Example

root@2fb153d9009c:/stchaind# ./stchaincli query account st1gwtcnptte6fpxck3f9xs45ufrru9sz2500edn8 --home ./
|
  address: st1gwtcnptte6fpxck3f9xs45ufrru9sz2500edn8
  coins:
  - denom: ustos
    amount: "49999999900000000"
  public_key: stpub1addwnpepqd3x0rpxp6hrrmuwm25cz5yvuvaxmqgj9rfxqnu4pgpln7ytx9mrjz0pa3d
  account_number: 0
  sequence: 1

8. Check your node status

./stchaincli status --home ./

Example

root@4bed4f6fb8f9:/stchaind# ./stchaincli status --home ./
{
  "node_info": {
    "protocol_version": {
      "p2p": "7",
      "block": "10",
      "app": "0"
    },
    "id": "65d5e80214b5239b7397830879998cd3065fab57",
    "listen_addr": "tcp://0.0.0.0:26656",
    "network": "test-chain-localnet",
    "version": "0.33.9",
    "channels": "4020212223303800",
    "moniker": "node0",
    "other": {
      "tx_index": "on",
      "rpc_address": "tcp://127.0.0.1:26657"
    }
  },
  "sync_info": {
    "latest_block_hash": "4F9E3AB72D578CC6153445CF7154E593360DF39B2BBB63317241B94CA89967E9",
    "latest_app_hash": "3DA857CCF4D4F151E107BEC943C6A3A394D4B239F23B37091E7E33FE61B96AFB",
    "latest_block_height": "361",
    "latest_block_time": "2021-10-14T02:35:22.222386147Z",
    "earliest_block_hash": "87AA89CB8FEF876C38BAE4F810D3CEA6249C0330E7CF0673464EEEE734A72400",
    "earliest_app_hash": "",
    "earliest_block_height": "1",
    "earliest_block_time": "2021-09-29T21:48:00.612410904Z",
    "catching_up": false
  },
  "validator_info": {
    "address": "82B659FC939521E845E552DCE32BA29DA2EA8718",
    "pub_key": {
      "type": "tendermint/PubKeyEd25519",
      "value": "O+naHHEZ5SexfhniH73WXhJiC83lLPjDiav40GfPp5M="
    },
    "voting_power": "100"
  }
}

9. Try your first tx - send

./stchaincli tx send <from address> <to address> <amount> --home ./ --keyring-backend test --chain-id stratos-testnet-3 

Example

Tx command:

./stchaincli tx send st1kuhyf59qvukk8r5manky062d6c66utvytm7az6 st1m4f4hnyfhpaeqlcgv7lfhgzjwmrvfeggwnpygz  1000000ustos --home=./ --chain-id=stratos-testnet-3 --keyring-backend=test --gas=auto

Output:

          ...
          
    confirm transaction before signing and broadcasting [y/N]: y
    height: 0
    txhash: 0BFC71FFAFCB4554A95586E7C63042698F5E1D1BD5443B09C36F6FC2C3FFA737
    codespace: ""
    code: 0
    data: ""
    rawlog: '[]'
    logs: []
    info: ""
    gaswanted: 0
    gasused: 0
    tx: null
    timestamp: ""

Check this tx:

root@3200b05c02b9:/stchaind# ./stchaincli query tx 0BFC71FFAFCB4554A95586E7C63042698F5E1D1BD5443B09C36F6FC2C3FFA737 --chain-id=stratos-testnet-3
    height: 9765
    txhash: 0BFC71FFAFCB4554A95586E7C63042698F5E1D1BD5443B09C36F6FC2C3FFA737
    codespace: ""
    code: 0
    data: ""
    rawlog: '[{"msg_index":0,"log":"","events":[{"type":"message","attributes":[{"key":"action","value":"send"},{"key":"sender","value":"st1kuhyf59qvukk8r5manky062d6c66utvytm7az6"},{"key":"module","value":"bank"}]},{"type":"transfer","attributes":[{"key":"recipient","value":"st1m4f4hnyfhpaeqlcgv7lfhgzjwmrvfeggwnpygz"},{"key":"sender","value":"st1kuhyf59qvukk8r5manky062d6c66utvytm7az6"},{"key":"amount","value":"1000000ustos"}]}]}]'
    logs:
    - msgindex: 0
    log: ""
    events:
    - type: message
    attributes:
    - key: action
    value: send
    - key: sender
    value: st1kuhyf59qvukk8r5manky062d6c66utvytm7az6
    - key: module
    value: bank
    - type: transfer
    attributes:
    - key: recipient
    value: st1m4f4hnyfhpaeqlcgv7lfhgzjwmrvfeggwnpygz
    - key: sender
    value: st1kuhyf59qvukk8r5manky062d6c66utvytm7az6
    - key: amount
    value: 1000000ustos
    info: ""
    gaswanted: 200000
    gasused: 64559
    tx:
    msg:
    - from_address: st1kuhyf59qvukk8r5manky062d6c66utvytm7az6
    to_address: st1m4f4hnyfhpaeqlcgv7lfhgzjwmrvfeggwnpygz
    amount:
    - denom: ustos
    amount: "1000000"
    fee:
    amount:
    - denom: ustos
    amount: "100"
    gas: 200000
    signatures:
    - |
    pubkey: stpub1addwnpepq0dx083vc4gn3f5quc2znpt4qx39cyxg52lu28fp2r2nnky7yaxsur40qny
    signature: !!binary |
    v1E4ABuErs6lHP6mjLLyUkOa0SqyV1cICHLwdzjWORRLiA1XGD1fWgbweLUNmI/XNBoBYp
    YvodHGm3VRfg7C6A==
    memo: ""
    timestamp: "2021-07-13T17:42:14Z"

Last updated