nymtech/nyxd

Test chain upgrades in ephemeral dev environment

Closed this issue · 1 comments

Phase 1

Components to deploy:

  • several nyxds (use genesis from Nyx and empty chain, no snapshot)
  • Big Dipper v2 (to view blocks)
  • deploy mixnet contract

Test the following:

  • test basic Cosmos tx's: send tokens, execute contract
  • send a tx to do the upgrade

Upgrade versions of nyxd:

  • test basic Cosmos tx's: send tokens, execute contract

Phase 2

Components to deploy:

  • several nyxds (use genesis from Nyx and empty chain, no snapshot)
  • gravity bridge
  • gravity infrastructure (validators, etc)
  • Big Dipper v2 (to view blocks)
  • deploy mixnet contract

Test the following:

  • test basic Cosmos tx's: send tokens, execute contract
  • test sending ERC20 testnet tokens to NYM across dev env gravity bridge (ERC20 => NYM)
  • test sending NYM to ERC20 testnet tokens across the bridge (NYM => ERC20)

Upgrade to a newer nyxd, and then test:

  • send more ERC20 testnet tokens (both ways)
  • test basic Cosmos tx's

Phase 3

Test full upgrade, and then smoke test mixnet and vesting contracts

Also:

  • find out if possible to run gravity without the ERC20 contract deployed, i.e. send NYM to GRAV, rather than NYM to NYM-ERC20
  • if not, get help from Max / Bogdan to deploy ERC20 NYM minting contract to an ETH testnet
  • when you start from a Nyx Mainnet snapshot, how do you deal with the mainnet IBC channel to Gravity
    • what happens when you add a testnet IBC channel?
    • can you use the same token address?
    • does transferring tokens across the bridge work?
    • can you ignore failed channels (mainnet one will be broken in the dev env)