Running 25 Bare-Metal Servers for Blockchain Validators on LXD
A single management node orchestrating 24 bare-metal validator servers with LXD, Caddy, and Cloudflare, replacing a far pricier cloud setup.
This is the infrastructure that runs a fleet of IKA and Sui blockchain validators. Twenty-four dedicated servers act as validators and fullnodes, with one central management server driving them, for a combined 3,220 GB of RAM, 872 CPU cores, and 77.6 TB of storage. It has been in production since roughly November 2024, running critical mainnet validators at over ninety percent uptime.
The Case for Bare Metal
The core decision was to leave the cloud. Running this workload on AWS EC2 penciled out somewhere between fifty and a hundred and nine thousand dollars a year. The same fleet on bare-metal OVHcloud servers runs about $5,800 a month, which lands the whole thing at ten to twenty percent of the AWS equivalent. For validators, which are steady, long-lived, resource-hungry processes rather than bursty web traffic, you are paying cloud prices for elasticity you never use. Owning the boxes is the honest fit.
The trade you accept is that you now have to be your own orchestration layer. Nobody hands you a control plane. That is where LXD comes in.
One Node to Drive the Fleet
Everything routes through the management server. Deployment is a developer reaching that node over SSH, which then talks to a target server as an LXD remote and launches a container. Accessing a running app is the same path in reverse, through the management node and into the container with lxc exec. Centralizing the control plane means I operate twenty-four machines as if they were one, instead of SSHing box to box and losing track of state.
Web traffic takes a separate, deliberate route. A request comes in through Cloudflare for SSL, hits the server IP, lands on Caddy running on the host, and Caddy forwards to the right container IP and port. Caddy paired with Cloudflare DNS also handles domains and certificates automatically, which removes a whole category of manual toil that does not scale to twenty-five servers. Monitoring closes the loop, with hourly reports and alerts to Discord covering the entire fleet so a failing node surfaces on its own.
The lesson is that bare metal is not the expensive-time-for-cheap-hardware trap people assume, provided you invest in the orchestration. Once one management node can deploy, reach, route, and monitor the whole fleet, the savings are real and the operational burden stays bounded.
Have something that needs building, or stabilizing?
These notes are the work log. The paid work runs through Moonshine Labs, my product and engineering studio. Tell us what you're building, or grab a call.
Work with us →