testnet-laconicd-stack/ops/stage1-to-stage2.md
Prathamesh Musale 0d8628d7c3 Add steps to update testnet2 deployments (#38)
Part of [Create a public laconicd testnet](https://www.notion.so/Create-a-public-laconicd-testnet-896a11bdd8094eff8f1b49c0be0ca3b8)

Added steps to update deployments:
- stage2 laconicd
- laconic-console-testnet2
- laconic-shopify
- fixturenet-eth
- Nitro bridge
- Nitro nodes
- Snowball backend
- Snowball frontend

Co-authored-by: Adw8 <adwaitgharpure@gmail.com>
Reviewed-on: #38
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-10-30 13:59:56 +00:00

3.8 KiB

Halt stage1 and start stage2

Login

  • Log in as dev user on the deployments VM

  • All the deployments are placed in the /srv directory:

    cd /srv
    

Halt stage1

  • Confirm the the currently running node is for stage1 chain:

    # On stage1 deployment machine
    STAGE1_DEPLOYMENT=/srv/laconicd/testnet-laconicd-deployment
    
    laconic-so deployment --dir $STAGE1_DEPLOYMENT logs laconicd -f --tail 30
    
    # Note: stage1 node on deployments VM has been changed to run from /srv/laconicd/testnet-laconicd-deployment instead of /srv/laconicd/stage1-deployment
    
  • Stop the stage1 deployment:

    laconic-so deployment --dir $STAGE1_DEPLOYMENT stop
    
    # Stopping this deployment marks the end of testnet stage1
    

Export stage1 state

  • Export the chain state:

    docker run -it \
      -v $STAGE1_DEPLOYMENT/data/laconicd-data:/root/.laconicd \
      cerc/laconicd-stage1:local bash -c "laconicd export | jq > /root/.laconicd/stage1-state.json"
    
  • Archive the state and node config and keys:

    sudo tar -czf /srv/laconicd/stage1-laconicd-export.tar.gz --exclude="./data" --exclude="./tmp" -C $STAGE1_DEPLOYMENT/data/laconicd-data .
    sudo chown dev:dev /srv/laconicd/stage1-laconicd-export.tar.gz
    

Initialize stage2

  • Copy over the stage1 state and node export archive to stage2 deployment machine

  • Extract the stage1 state and node config to stage2 deployment dir:

    # On stage2 deployment machine
    cd /srv/laconicd
    
    # Unarchive
    tar -xzf stage1-laconicd-export.tar.gz -C stage2-deployment/data/laconicd-data
    
    # Verify contents
    ll stage2-deployment/data/laconicd-data
    
  • Initialize stage2 chain:

    DEPLOYMENT_DIR=$(pwd)
    
    cd ~/cerc/fixturenet-laconicd-stack/stack-orchestrator/stacks/fixturenet-laconicd
    
    STAGE2_CHAIN_ID=laconic-testnet-2
    ./scripts/initialize-stage2.sh $DEPLOYMENT_DIR/stage2-deployment $STAGE2_CHAIN_ID LaconicStage2 os 1000000000000000
    
    # Enter the keyring passphrase for account from stage1 when prompted
    
    cd $DEPLOYMENT_DIR
    
    • Resets the node data (unsafe-reset-all)

    • Initializes the stage2-deployment node

    • Generates the genesis file for stage2 with stage1 state

      • Carries over accounts, balances and laconicd modules from stage1

      • Skips staking and validator data

  • Copy over the genesis file outside data directory:

    cp stage2-deployment/data/laconicd-data/config/genesis.json stage2-deployment
    

Start stage2

  • Start the stage2 deployment:

    laconic-so deployment --dir stage2-deployment start
    
  • Check status of stage2 laconicd:

    # List down the container and check health status
    docker ps -a | grep laconicd
    
    # Follow logs for laconicd container, check that new blocks are getting created
    laconic-so deployment --dir stage2-deployment logs laconicd -f
    
  • Get the node's peer adddress and stage2 genesis file to share with the participants:

    • Get the node id:

      echo $(laconic-so deployment --dir stage2-deployment exec laconicd "laconicd cometbft show-node-id")@laconicd-sapo.laconic.com:36656
      
    • Get the genesis file:

      scp dev@<deployments-server-hostname>:/srv/laconicd/stage2-deployment/genesis.json </path/to/local/directory>
      
  • Now users can follow the steps to Upgrade to SAPO testnet

Bank Transfer

  • Transfer tokens to an address:

    cd /srv/laconicd
    
    RECEIVER_ADDRESS=
    AMOUNT=
    
    laconic-so deployment --dir stage2-deployment exec laconicd "laconicd tx bank send alice ${RECEIVER_ADDRESS} ${AMOUNT}alnt --from alice --fees 1000alnt"
    
  • Check balance:

    laconic-so deployment --dir stage2-deployment exec laconicd "laconicd query bank balances ${RECEIVER_ADDRESS}"