As the Audius network grows, it’s essential that Service Providers on the network work together to guarantee minimum system resources like CPU, memory and disk space (for each registered node) to maintain a baseline level of performance.
Resource requirements to run nodes were published last year, and given the recent growth in both node count, and usage of the network, it makes sense to revisit and start enforcing these requirements as a community of node operators.
This disparity in resources allocated per node raises a few key issues:
- Reputation of the Audius protocol may become tarnished if users consistently experience poor performance.
- Inconsistent protocol performance between any two given nodes. Some nodes are able to perform under load with ease, while others are unable to maintain a healthy steady state even without load.
- New and upcoming features require an adequate level of resource headroom per node so we may examine and report on performance.
The proposed solution
To help enforce these minimums we propose that
- Each service will monitor its own available resources as well as resources for other nodes in the network.
- The service /health_check endpoint will start begin reporting a meets_minimum_requirements boolean
- In the event minimum requirements are not met, a service would report its health status as unhealthy. Downtime due to failing health checks and non-compliance with specified minimum service requirements are slashable offenses.
Minimum Resource Requirements (Per Registered Node)
- 8 vCPU
- 16 GB of RAM
- 250GB SSD (discovery nodes) / 2000GB SSD (content nodes)