OasisEth ParaTime Testing Plan - second-state/oasis-ssvm-runtime GitHub Wiki

OasisEth ParaTime Testing Plan

Current Parameters

  1. We will have two entities: EntityA (Base), EntityB (Follower)
  2. Each entity will have only one ParaTime node.

Workflow

  1. Initialize:
    1. EntityA registers runtime:
      1. Specify new runtime id RUNTIME_ID
      2. EntityA registers RUNTIME_ID and set the group size to 1
    2. Deploy the first ParaTime node and an RPC endpoint node:
      1. EntityA starts a new ParaTime node ParaTimeA
      2. Wait for the ParaTimeA syncing up with the oasis network
      3. Wait for the ParaTimeA joining the ParaTime committee
      4. EntityA starts a client node for enabling an RPC endpoint server
  2. Start testing:
    1. Use a cronjob to send the following transactions to the RPC endpoint server
      1. Transfer OETH from AddressA to AddressB
      2. Deploy an EVM version of ERC20 contract from AddressA and call the transfer function to send ERC20 to AddressB
      3. Deploy an EWasm version of ERC20 contract from AddressA and call the transfer function to send ERC20 to AddressB
    2. This testing process will not stop. And all of the testing transactions should not fail at any moment.
  3. Add more ParaTime nodes:
    1. Deploy the second ParaTime node from EntityB
      1. EntityB starts a new ParaTime node ParaTimeB
      2. EntityA signs a transaction to add EntityB into the ParaTime allowlist.
      3. Wait for the ParaTimeB syncing up with the oasis network
      4. Wait for the ParaTimeB joining the ParaTime committee
      5. If the ParaTimeB works with no issues, the testing transactions which are made in Step2 should not fail at any moment.
      6. Before we increase the committee group size, the new ParaTime nodes should join the committee with no issues at least 6 epoch times.
    2. Deploy the third ParaTime node from EntityC
      1. EntityC starts a new ParaTime node ParaTimeC
      2. EntityA signs a transaction to add EntityC into the ParaTime allowlist.
      3. Wait for the ParaTimeC syncing up with the oasis network
      4. Wait for the ParaTimeC joining the ParaTime committee
      5. If the ParaTimeC works with no issues, the testing transactions which are made in Step2 should not fail at any moment.
      6. Before we increase the committee group size, the new ParaTime nodes should join the committee with no issues at least 6 epoch times.
    3. Deploy the fourth ParaTime node from EntityA
      1. EntityA starts a new ParaTime node ParaTimeD
      2. Wait for the ParaTimeD syncing up with the oasis network
      3. Wait for the ParaTimeD joining the ParaTime committee
      4. If the ParaTimeD works with no issues, the testing transactions which are made in Step2 should not fail at any moment.
      5. Before we increase the committee group size, the new ParaTime nodes should join the committee with no issues at least 6 epoch times.