charon-distributed-validator-node icon indicating copy to clipboard operation
charon-distributed-validator-node copied to clipboard

docker compose separation for client diversity, configuration management

Open carameleon opened this issue 1 year ago โ€ข 0 comments

๐ŸŽฏ Problem to be solved

background

At the moment, just a single client combination is provided for obol DVT configuration. e.g., nethermind-lighthouse-charon-lodestar-...

It does not make any problem itself. However, if all cluster members use the same configuration, which makes single point of failure against the same client.

In this approach(like MA to MSA), we need to divide a single docker-compose file to several docker-compose files.

It makes easy management, easy to use. These changes can be deployed for https://github.com/ObolNetwork/lido-charon-distributed-validator-node/

Obol can provides predefined multiple client configurations easily.

It allows operators

  • to choose their own combination from predefined client configurations (by adding clients in docker-compose.yml they choose)
  • be able to check changes easily
  • easily update modified service file (merge conflict from changes. It will not prevent conflict, but it narrow conflict range)

example

current : single docker-compose.yml including nethermind-lighthouse-lodestar-charon-...

want: docker-compose.yml

include:
- el/docker-compose-el-nethermind.yml
- cl/docker-compose-cl-lighthouse.yml
- vc/docker-compose-vc-lodestar.yml
- docker-compose-mev-boost.yml
- docker-compose-charon.yml
- docker-compose-prometheus.yml
- docker-compose-grafana.yml

networks:
  dvnode:

docker-compose-el-nethermind.yml, docker-compose-el-....yml

...

docker-compose-cl-lighthouse.yml, docker-compose-cl-....yml

...

docker-compose-vc-xxx.yml, docker-compose-vc-....yml

...

docker-compose-charon.yml ... ...

full example of concept : https://github.com/cosmostation/charon-distributed-validator-node/commit/0f64adde6dea27cafdb93e078cae57b00ca07c8b

expected work if these changes are acceptable

  • It is required to configure docker-compose-xxx.yml for supported clients
  • It needs to build new structures to accommodate current docker volume mount.

๐Ÿงช Tests

  • [ ] Works in local docker-compose
  • [ ] Has a attested on a testnet at least once

๐Ÿ‘ Additional acceptance criteria

โŒ Out of Scope

carameleon avatar May 05 '24 15:05 carameleon