mina
mina copied to clipboard
Package ITN orchestrator
A much lighter alternative to/subset of #14798.
Following services need to be configured:
- A few Mina nodes to be used for experiment setup
- 1 seed, 3 bps, 5 regular nodes, 1 snark coordinator
- Uptime backend (configured in in-memory mode, see PR #15625)
- super-light HTTP container
- used for node discovery by testing toolkit
- nodes connect to uptime backend to submit data
- Internal log fetcher
- used to collect "internal" logs
- connects to Mina nodes and fetches logs from them
- 0.5-1 CPU per Mina node
- Some RAM/disk proportional to Mina nodes <- bounded
- Postgresql (with ability to be accessed externally)
- disk proportional to duration of experiment and number of Mina nodes
- 1 TB is a good start
- reachable by "admin" and log fetcher
- VS' Dashboard (optional)
- web app that connects to Mina nodes
- super-light
- Orchestrator
- light custom container running some Go application (4 CPU?)
- option A (milti-experiment setup): a server with an SSH access that allows "admin" to connect and start new experiments without touching any other resources in deployment
- option B (one-experiment setup): a server that runs a given script and finishes after
- Snark worker pool <- most CPU heavy component
- preferably with as few layers of virtualization as possible
- a small number of high-CPU machines that do not use virtualization
- preferably not multi-container, but multi-process (static number of worker per server)
- initially k8s/docker setup is fine
Communication diagram: https://docs.google.com/presentation/d/17ADhlWaH9FyzAI3G4urIwA8gbBVw48Niio0tZ57EEkc