keep-core
keep-core copied to clipboard
Internal development testnet for Random Beacon and TBTC v2
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] Threshold Network (
@threshold-network/[email protected]) - [x] Keep Random Beacon (
@keep-network/[email protected]) - [x] Keep ECDSA (
@keep-network/[email protected]) - [x] Keep TBTC v2 (
@keep-network/[email protected])
- [x] Threshold Network (
- [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.jsonflag) -
[ ] 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:
After research and discussion, we decided to use Goerli as our Ethereum testnet.
Reopening. Got closed accidentially.
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