We suggest the following minimum spec for a self-hosted mainnet Ethereum node.
This spec is equivalent to
t3.xlarge type on AWS, and it provides a good balance for mixed usage including initial syncing and serving requests once syncing completes by utilizing multi-threading and memory cache.
We suggest using
geth instead of
turbogeth for balanced usage between CPU/memory and storage.
- Systemd service config
Please double check and modify your user according to your instance info.
You can do so by running
sudo vi /etc/systemd/system/main-geth.service.
- Start service
- Check sync progress
- Validate the RPC endpoint once your node is fully synced.
Here is a over-simplified load balancer using caddy to test your geth nodes.
Expose ports 80 and 443 on the instance hosting caddy and start caddy with this config.