Run a compute host
A compute host runs the dait-host daemon inside a confidential VM, serves AI inference jobs from an attested TEE, signs receipts with a TEE-bound key, and posts those receipts back to the chain for PoUW credit. Hosts earn the 60 percent share of block rewards plus tenant lease payments.
Hardware
| Component | Minimum | Notes |
|---|---|---|
| CPU | Intel Xeon Sapphire Rapids+ with TDX, or AMD EPYC Genoa+ with SEV-SNP | Older CPUs cannot attest. TDX requires 4th-gen Xeon or newer; SEV-SNP requires EPYC 7003 or newer. |
| RAM | 256 GB ECC | The CC VM eats one full memory channel. 128 GB is too tight for 70B-class models. |
| GPU | 1x H100 80 GB SXM, or H200, or B200, or GB200 | Hopper or newer. CC mode must be enabled in firmware. |
| NIC | 25 GbE minimum, 100 GbE recommended | State channel servers see bursty token streams. |
| Storage | 2 TB NVMe Gen4 | Model weights, receipt log, attestation cache. |
| BMC | Out-of-band on a separate VLAN | Required for evidence-of-physical-control audits. |
Stake
3,690 DAIT per registered GPU at the Node tier. 36,900 DAIT per multi-GPU rack at the Supernode tier (1.25x reward multiplier, priority routing). See x/staking_tiers for the full tier table and slashing rules.
Software stack
+----------------------------- physical host -----------------------------+ | host OS (Ubuntu 24.04 or RHEL 9) | | +-- KVM / QEMU | | +-- confidential VM (TDX or SEV-SNP guest) | | +-- dait-host daemon | | +-- vLLM worker | | +-- NVIDIA driver in CC mode | +-------------------------------------------------------------------------+
The daemon expects to run inside the confidential VM, not on the host OS. /dev/tdx-guest or /dev/sev-guest must be exposed inside the VM, and the NVIDIA Local Verifier SDK must be installed in the same image.
Setup
# 1. Provision the confidential VM image (per-vendor; see vendor docs) # 2. Inside the VM, install dait-host pip install dait-host # 3. Configure export DAIT_CHAIN_RPC=https://rpc.daitchain.io:443 export DAIT_HOST_KEY_PATH=/var/lib/dait-host/operator.key export DAIT_TEE_KIND=nvidia-nras # or intel-tdx, amd-sev-snp dait-host init # 4. Register on-chain dait-host register --gpu-uuid GPU-XXXXXX-XXXX-XXXX # 5. Submit attestation (rotates every Params.EpochNonceRotationBlocks) dait-host attest # 6. Start serving dait-host serve --models qwen2.5-32b-instruct,llama3.1-8b-instruct
The receipt loop
- Tenant opens a state channel with the host (
MsgOpenChannel). - Tenant sends inference requests over HTTPS to the host's channel server.
- Host runs the request inside the TEE, produces a signed SPUR-IC receipt, returns the response with
X-DAIT-ReceiptandX-DAIT-Stateheaders. - Tenant verifies the receipt, counter-signs the new
ChannelState, ships it back on the next request. - Periodically the host calls
MsgCommitReceipt, thenMsgRevealReceiptaftercommit_reveal_windowblocks. Reveal mints PoUW credits. - On channel close (cooperative or challenge), the channel's
spent_amountmoves from tenant escrow to host balance.
Determinism rules
Receipts must be reproducible by an auditor. The reference daemon serves replayable: true jobs with --enforce-eager --seed=N mode in vLLM and writes response_hash over the canonicalized JSON output. Audits replay the receipt and reject any that do not produce a bit-exact match.
Slashing
- Downtime (Node tier): -3%.
- Downtime (Supernode tier): -6%.
- Bad attestation (any tier): -100%.
- Failed audit on a non-replayable job: deducted via the
(1 - audit_fail_rate)term in the credit formula rather than a slash event.
See also
- x/tee_attest for the on-chain verification path
- x/pouw for credit accrual math
- SPUR-IC receipt spec for the wire format hosts produce