keep-core icon indicating copy to clipboard operation
keep-core copied to clipboard

Internal development testnet for Random Beacon and TBTC v2

Open pdyraga opened this issue 3 years ago • 2 comments

We need an internal testnet for development builds. We will build our test environment against Goerli.

Prerequisites:

  • [ ] Geth testnet node with testnet ether mining (geth) (@electropolis)
    • [x] Install geth v1.10.20 on Virtual Machine and start syncing with Goerli (just PoC). (Flags to use: --goerli, --syncmode=snap, --http, --ws) Consider using ethereum/client-go docker image for simple installation.
    • [x] Run Goerli geth on kubernetes:
      • [x] StatefulSet
      • [x] Persistent storage
      • [x] Expose ports (HTTP, WS, P2P)
      • [x] Internal service
      • [ ] External service (extra task)
  • [x] Deploy V1 contracts to testnet manually and publish them to NPM Package Registry to use as hardcoded dependencies in V2 (@nkuba) - @keep-network/[email protected] https://github.com/keep-network/keep-core/pull/3059
  • Manually deployed and published V2 contracts (@nkuba):
  • [x] Automate deployment of V2 contracts (@michalinacienciala):
    • [x] CI config update: https://github.com/keep-network/ci/pull/28
    • [x] Update of workflows in solidity-contracts: https://github.com/threshold-network/solidity-contracts/pull/114
    • [x] Update of workflows in keep-core: https://github.com/keep-network/keep-core/pull/3081
    • [x] Update of workflows in tbtc-v2: https://github.com/keep-network/tbtc-v2/pull/382
    • [ ] ~~Replace the stub of the BitcoinRelay contract~~ - moved to an independent issue (https://github.com/keep-network/tbtc-v2/issues/400)
  • [x] Configure contracts references in the client (@nkuba)
  • [x] Docker client build and publish (@nkuba) (https://github.com/keep-network/keep-core/pull/3144)
  • [x] Docker initcontainer build and publish (@nkuba) (https://github.com/keep-network/keep-core/pull/3132)
  • [x] Automate client docker build and publish (on workflow dispatch) (@michalinacienciala) (https://github.com/keep-network/keep-core/pull/3154, https://github.com/keep-network/ci/pull/31)
  • [x] Scripts to init operators (staking) (@nkuba)

Requirements:

  • [x] 10 Keep nodes, each 20x minimum stake (@nkuba)(https://github.com/keep-network/keep-core/pull/3128)
  • [x] Provisioning includes staking for each node, authorizing Random Beacon and ECDSA applications (@nkuba)(https://github.com/keep-network/keep-core/pull/3128)
  • [x] Provisioning includes setting up config of clients with contract addresses and bootstrap nodes (@nkuba)(https://github.com/keep-network/keep-core/pull/3128)

Extras (for later, but let's keep in mind when implementing the solution):

  • [ ] Monitoring dashboard for Ethereum node (see: https://github.com/keep-network/keep-core/issues/3145)

  • [ ] Monitoring dashboards for Keep nodes

  • [ ] Improve developer experience when browsing logs (logs output, parsing, alerts, etc.) (for geth we could try --log.json flag)

  • [ ] Clean up V1 resources that will not be needed in V2

  • [x] Move tbtc-monitoring job to prod project (https://github.com/keep-network/tbtc-monitoring/pull/2)

Resources:

pdyraga avatar Jun 03 '22 07:06 pdyraga

After research and discussion, we decided to use Goerli as our Ethereum testnet.

nkuba avatar Jul 05 '22 12:07 nkuba

Reopening. Got closed accidentially.

michalinacienciala avatar Jul 21 '22 13:07 michalinacienciala

The remaining work has been extracted to separate issues:

  • https://github.com/keep-network/keep-core/issues/3344
  • https://github.com/keep-network/keep-core/issues/3279
  • https://github.com/keep-network/keep-core/issues/3145

pdyraga avatar Oct 04 '22 11:10 pdyraga