Demonstrate the practical usage of the DKMS network consisting of DKMS Witnesses and Watchers, based on the KERI protocol.
- Docker with Compose v2
jq(used in test scripts)dkmsCLI binary — download the binary for your platform and note the path
The demo spins up five services via Docker Compose:
| Service | Container name | Host port |
|---|---|---|
| Witness 1 | keriox-witness1 | 3232 |
| Witness 2 | keriox-witness2 | 3233 |
| Witness 3 | keriox-witness3 | 3234 |
| Watcher | keriox-watcher | 3235 |
| Mesagkesto | mesagkesto | 3236 |
Services advertise their public_url so that external clients can reach them.
By default this is 172.17.0.1 (the Docker bridge gateway on Linux).
On macOS / Windows (Docker Desktop) the gateway address is different, so you need to run the configuration script once before starting Docker Compose:
cd infrastructure
# Copy the example env file and edit HOST_IP if needed
cp .env.example .env
# e.g. on macOS: HOST_IP=host.docker.internal
# Generate config files from templates
./configure.shOn Linux the default 172.17.0.1 works out of the box — you can skip
configure.sh unless you changed HOST_IP.
To find your Docker bridge gateway on any OS:
docker network inspect bridge | grep Gateway
cd infrastructure
docker compose upTo run in the background:
docker compose up -dTo stop and remove containers:
docker compose downTo also remove persisted data volumes:
docker compose down -vInteract with the running infrastructure using one of the following client options:
- Command Line Interface (CLI):
dkms-bin - Rust API: Keriox Controller Component
- JavaScript (Node.js): DKMS Bindings
See test-vectors/README.md for full instructions on
running the test scripts.