System Requirements
Hardware Requirements
In order to maintain quality service across the Audius protocol, Audius Node hardware requirements are enforced by the on-chain governance protocol.
The minimum resource requirements per registered Node are as follows.
- a public DNS endpoint with SSL support
- operations support to enable high uptime and availability
- datacenter-quality internet connection (eg. AWS, GCP, or similar)
While any linux based operating system will work, Ubuntu 22.04 LTS is currently recommended.
Content Node
- 8 vCPU
- 16 GiB of RAM
- 2000 GiB (2 TiB) SSD
- Firewalls configured to allow
0.0.0.0/0
ingress on ports80
+443
Discovery Node
- 8 vCPU
- 16 GiB of RAM
- 512 GiB SSD
- Firewalls configured to allow
0.0.0.0/0
ingress on ports80
+443
+30300
System Configuration
With a Virtual Machine configured, confirm the following software configurations.
Docker is Installed
Both Content Nodes and Discovery Nodes must have docker installed.
Read more about installing Docker on Ubuntu on the official Docker documentation site.
Open Ports
When configuring Virtual Machines be sure to create firewall rules for the following ports.
- Content Node Firewalls should be configured to only allow
0.0.0.0/0
ingress on ports80
+443
- Discovery Node Firewalls should be configured to only allow
0.0.0.0/0
ingress on ports80
+443
+30300
SSH Access
Managing and configuring Audius Nodes requires ssh access to each Virtual Machine from a computer you have ready access to, a laptop for example.
Store ssh credentials in the ~/.ssh/config file on your local computer. While specifics may change, the general format is as follows:
Host content1.myurl.com # <--- NODE URL
HostName 41.586.753.09 # <--- STATIC IP OF THE NODE
User user # <--- USERNAME
Port 22 # <--- COMMON SSH ACCESS PORT
IdentityFile ~/.ssh/google_compute_engine # <--- EXAMPLE GOOGLE CLOUD IDENTITY FILE
Additional configurations can be added to a single .ssh/config
file, one after the other. Check
out
this guide from Digital Ocean
for more information on creating and using config
files.