This file provides guidance to Claude Code when working with code in this repository.
Infrastructure automation for running Horizen blockchain nodes at scale. Managed 200+ secure/super nodes across OVH and Hetzner using LXD containers.
Status: Historical/portfolio project - the Horizen node program was discontinued in 2024.
Provisions LXD containers on remote hosts. Each subdirectory (sb01-sb11, sr01-sr14) represents a physical host server with container definitions.
Configuration management for nodes. Key roles:
zen-node- Main role for installing zend daemon and nodetrackerlxd-host- Configures physical LXD hostslockdown- Security hardeningwildcard-cert/letsencrypt-cert- TLS certificate management
Day-to-day fleet management - the tools that were actually used once infrastructure was running.
| Script | Purpose |
|---|---|
zclon |
Clone an LXD container to create a new node |
znew |
Configure a newly cloned node with stake address |
zmv |
Move/rename a node |
zeol |
End-of-life a node |
zstake |
Manage staking addresses |
ztc |
Tracker control (runs on nodes) |
zen-inv.yml- Ansible inventory of all nodes (single source of truth)- Terraform uses Jinja2 templates (
lxd-tf.j2,lxd-tf6.j2) with Python generators to create per-host .tf files
- Dual-stack IPv4/IPv6 addressing
- LXD containers use macvlan networking for direct IPs
- Container naming:
zen-XXX(alphanumeric based on host)