Node configuration
A Demos node is configured almost entirely from a single.env file. The repo ships .env.example as the canonical template:
./run, advanced), two settings differ — see Track-specific overrides below.
Track-specific overrides
Everything else in
.env is shared between the two tracks.
Consensus and governance
These values are the chain’s bootstrap defaults at genesis. Governance proposals can override them at runtime — see Network Governance.
Network and ports
Database (PostgreSQL)
See Browsing the Postgres DB via psql for connection commands per track.
Identity and peers
See Backing up and restoring a node —
.demos_identity is the single most important file to back up.
TLSNotary
TLSNotary provides cryptographic attestation of HTTPS responses.
Under Track 1, keep
TLSNOTARY_ENABLED aligned with the tlsnotary profile in COMPOSE_PROFILES — enabling one without the other produces noisy warnings.
Monitoring
Logging and runtime
Docker Compose only
These variables are consumed bydocker-compose.yml and not by the node binary itself, so they only matter on Track 1.
Optional external API keys
.env.example ships with these commented out. Uncomment only the ones you need; each unlocks a specific feature:
Generating your identity
You do not configure the node’s keypair manually. On first boot the node:- Generates a fresh ed25519 keypair.
- Writes the private key to
IDENTITY_FILE(default.demos_identity). - Writes the public key to a file named
publickey_<timestamp>in the same directory and prints it to the console.
Configuring the peerlist
demos_peerlist.json lists known peers as { "<publicKey>": "<url>" }. Copy the example and edit it: