Operators
Run a node in 5 minutes
One container, three roles, one identity seed — up and answering /health.
Before you start: just Docker. A fresh witness boots on an empty registry and grows as it receipts events — you only need the parties' registry once you want to anchor for them (see Keep the registry synced).
bash
git clone https://github.com/auths-dev/authscd auths/deploy/witnessexport WITNESS_SEED=$(openssl rand -hex 32) # this IS your identity — keep itexport WITNESS_NAME=acme-w1# Optional — where to keep the parties' registry (defaults to ./registry beside# the compose file). Sync it before you expect to anchor for those parties.export WITNESS_REGISTRY=./registrydocker compose up -d
Confirm it's up:
bash
curl -s localhost:3333/health
terminal
{"status":"ok","witness_did":"did:key:z6Mk…","first_seen_count":0,"receipt_count":0}
Your member key is printed at first boot — that's what principals add to their declared set:
bash
docker compose logs | grep 'member key'
terminal
witness-node: anchor role up as `acme-w1` (member key did:key:z6Mk…)
Two things will silently break trust
WITNESS_SEEDmust be identical on every restart. A changed seed is a new witness — your cosignatures stop counting toward anyone's threshold./datamust be a durable volume. It holds the last anchor you co-signed per chain. A witness with amnesia will happily co-sign the rollback it exists to refuse.
Without Docker
bash
witness-node serve --roles anchor,kel,cosign --bind 0.0.0.0:3333 \--data-dir /var/lib/auths-witness \--registry /var/lib/auths-registry \--witness-name acme-w1
WITNESS_SEED is read from the environment. Full flags: witness-node CLI.
If it fails:
- anchors 404 though
/healthis green — the node is up but hasn't synced the parties' registry, so it can't resolve their keys yet. Sync it (see Keep the registry synced); a fresh node is "up" before it's "useful" for a given party. - a role refuses to start — a role whose config is genuinely missing fails closed with a named error (e.g. the
registryrole needs thegitbinary on PATH), rather than serving a half-configured witness.
Next: Deploy for real.