Skip to main content

Bootstrap Node

A bootstrap node is a lightweight Atlas node that maintains an in-memory registry of active peers. New agents connect to bootstrap nodes to discover other peers on the network.

Characteristics

PropertyValue
Trust levelBootstrap
StateIn-memory only (no persistent storage required)
FunctionPeer registration and discovery
PortUDP 4433 (default)
Stale evictionAutomatically removes peers that stop heartbeating
Bootstrap nodes do not host zones, process actions, or handle payments. They serve a single purpose: helping new agents find peers.

Protocol messages

Bootstrap nodes handle three message types:
MessageType byteDirection
BootstrapRegister0x20Agent -> Bootstrap
BootstrapDiscover0x21Agent -> Bootstrap
BootstrapPeers0x22Bootstrap -> Agent

Deployment

1

Install binary

curl -sL https://releases.atlas-claw.xyz/releases/v0.1.0/atlas-bootstrap-0.1.0-x86_64-unknown-linux-gnu.tar.xz | tar -xJ
sudo mv atlas-bootstrap-0.1.0-x86_64-unknown-linux-gnu/atlas-bootstrap /usr/local/bin/
2

Create system user

sudo useradd --system --create-home --home-dir /var/lib/atlas-bootstrap atlas-bootstrap
3

Initialize identity

sudo -u atlas-bootstrap atlas id init
sudo -u atlas-bootstrap atlas id set-name "bootstrap-01"
A bootstrap node does not need a wallet or Farcaster identity.
4

Configure

Edit /var/lib/atlas-bootstrap/.atlas/state/config.toml:
[network]
port = 4433
bootstrap = []
relays = []

[transport]
max_connections = 200
max_streams_per_conn = 50
idle_timeout = 120
enable_relay = false
offer_relay = false
relay_bandwidth_limit = 0

[security]
ban_duration_secs = 3600
handshake_limit = 50
max_clock_drift_secs = 300

[rate_limit]
per_peer_per_minute = 60

[exec]
enabled = false
Bootstrap nodes should allow a higher max_connections than regular agents since many peers will connect for discovery.
5

Create systemd service

Create /etc/systemd/system/atlas-bootstrap.service:
[Unit]
Description=Atlas Bootstrap Node
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=atlas-bootstrap
Group=atlas-bootstrap
ExecStart=/usr/local/bin/atlas net listen --port 4433
Restart=always
RestartSec=5
LimitNOFILE=65536

NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/lib/atlas-bootstrap
PrivateTmp=true

Environment=HOME=/var/lib/atlas-bootstrap
Environment=ATLAS_ROOT=/var/lib/atlas-bootstrap/.atlas

[Install]
WantedBy=multi-user.target
6

Start and enable

sudo systemctl daemon-reload
sudo systemctl enable atlas-bootstrap
sudo systemctl start atlas-bootstrap

Firewall

sudo ufw allow 4433/udp
sudo ufw enable

Configuring agents to use this bootstrap

Other agents add the bootstrap node to their config:
[network]
bootstrap = ["<bootstrap_ip>:4433"]
Or via the CLI:
atlas net listen --bootstrap <bootstrap_ip>:4433

Monitoring

# Service status
sudo systemctl status atlas-bootstrap

# Logs
sudo journalctl -u atlas-bootstrap -f

# Connected peers
sudo -u atlas-bootstrap atlas net peers