Start

Where do you start?

Two questions. Then you get the right guide and the commands for it.

The commands come from the miner, node and docs pages, copied as they are, and each route links to its full guide. New to Dendra? Dendra in five minutes shows the path of one request.

Two questions

Your route

Mine and judge with the miner kit

A Dendra miner answers AI requests with an open model on your own machine, and a judge votes on a random sample of other miners' answers.

An NVIDIA GPU mines: the hardware probe reads the card's memory and picks the model it can serve. On a machine that can judge, the kit also seats the judge by default. To mine only, add --no-judge to the last install command.

Without a GPU, a machine can only judge. It needs at least MOE_CPU_MIN_RAM_MB of system RAM; below that floor the kit refuses it and changes nothing. Run the probe first, so you know before you install.

A server with an NVIDIA GPU mines. Without one it can only judge, and it needs at least MOE_CPU_MIN_RAM_MB of system RAM; below that floor the kit refuses it and changes nothing. Run the probe first, so you know before you install.

Read the -> role line of the probe's report: mine only, mine and judge, judge on the CPU, or refused. The second command prints the judge's RAM floor in MB. On Linux, from a clone of the repository:

Hardware probe
$ git clone https://github.com/DendraNetwork/dendra-network.git && cd dendra-network
$ bash deploy/hw_probe.sh
$ bash deploy/hw_probe.sh --judge-floor-mb

These steps are for Ubuntu or Debian. On Windows, install.ps1 installs WSL 2 and Ubuntu first: Windows steps. On HiveOS, each release publishes a package for a flight sheet: HiveOS steps. Download the script, read it, then run it: the installer changes nothing until you pass --yes.

  1. Download the installer

    Linux
    $ curl -fsSLO https://raw.githubusercontent.com/DendraNetwork/dendra-network/main/deploy/install.sh
  2. Read it

    Run this on its own: a pager swallows anything pasted after it. Quit with q.

    Linux
    $ less install.sh
  3. See the plan

    This changes nothing. It reads the machine and lists what it would install.

    Linux
    $ bash install.sh
  4. Install and join

    It installs Docker, and the NVIDIA container toolkit when there is a GPU, clones the repository into ~/dendra-network, then runs join.sh.

    Linux
    $ bash install.sh --yes

At the end, join.sh prints [OK] miner alive and registered. Later, check the miner from your clone:

Health check
$ cd ~/dendra-network
$ bash deploy/testnet-miner/miner_health.sh

Run a node

A full node follows the Dendra chain and checks every block for itself. A validator is a full node that also signs blocks and locks a stake. Neither role needs a GPU.

A node does not use your GPU. It runs on Linux, or on Windows with WSL 2, with Docker and Compose v2. A validator should run on a server that stays on: long downtime gets a validator jailed and slashed.

No GPU is needed. A full node signs nothing, has nothing at stake and earns nothing, so nothing here puts funds at risk. A validator should run on a server that stays on, so start with the full node.

This is the machine a validator wants. Start with the full node below, then follow the validator steps in the guide. For a validator, port 26656 (P2P) must be reachable from outside.

The node has no bond. Three steps:

  1. Clone

    clone the kit
    $ git clone https://github.com/DendraNetwork/dendra-network.git
    $ cd dendra-network/deploy/testnet-node
  2. Fill the configuration from the network’s own file

    The first command prints the network’s values. Copy its CHAIN_ID, GENESIS_URL, GENESIS_SHA256, SEEDS and PERSISTENT_PEERS lines into .env, and set MONIKER to the name your node shows to its peers.

    read the values, then edit .env
    $ curl -s https://testnet-api.dendranetwork.com/network-info.txt
    $ cp .env.example .env
    $ nano .env
  3. Start it

    The node checks the genesis it downloads against GENESIS_SHA256 and refuses to start on a mismatch.

    build, start, follow the log
    $ docker compose up -d --build
    $ docker compose logs -f node

The node is synced when this prints "catching_up":false:

local node status
$ curl -s http://localhost:26657/status | grep -o '"catching_up":[a-z]*'

Use the AI

Dendra serves the chat-completions API, so any chat-completions client works: only the base URL changes. The chat page needs nothing but your browser.

Asking questions uses none of your hardware. To put your machine to work instead, choose Mine and judge, or Run a node.

From a terminal, without a key, on the demo tier:

curlkeyless demo tier
# curl, keyless demo tier
curl -s https://testnet-api.dendranetwork.com/demo/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"dendra-network","messages":[{"role":"user","content":"Capital of Australia?"}]}'

Set a generous timeout, in minutes rather than seconds. One consumer GPU serves each answer, and requests queue. The demo tier is rate-limited; the docs explain the keyed tier and the extra dendra block of a response.

Before you go

Already running a miner? Update your kit. Want the reasons behind the roles? Read Dendra in five minutes, then the roles in full. Stuck? Ask in #operator-support on the Discord.