Six distinct node roles make up the UNFED AI network. Each serves a specific purpose in the decentralized inference pipeline.
The cluster coordinator. Handles node discovery, model manifest distribution, verification ticket queuing, fraud proof tracking, and payment settlements. Analogous to a mining pool's stratum server.
Start commandpython -m network.registry_server \
--port 50050 \
--cluster-config cluster_config.json
The cluster config JSON defines the cluster identity, default economics (pricing, staking minimums, slash fractions), and optional on-chain escrow contract addresses.
The share-chain node, analogous to Monero's monerod. Accepts compute
shares from nodes, produces blocks, persists them to SQLite, and gossips
blocks to other daemon peers. Implements the EIP-1559-style fee oracle.
export UNFED_STAKE_EVM_PRIVATE_KEY_FILE=~/.unfed/daemon_stake.key
python -m network.daemon_node \
--port 50070 \
--registry localhost:50050 \
--eth-address 0xYourDaemonAddress \
--db ~/.unfed/chain.db
New auth requirement: daemon registration now uses the same signed admission and signed lifecycle control-plane flow as other staked roles (share-key proof + EVM stake signature + signed heartbeat/unregister with nonce/timestamp).
The workhorse of the network. Loads a text transformer shard, serves
Forward() RPCs, manages KV caches per session, and submits
compute shares to the daemon. Supports multiple model architectures via
the generic runtime (v2 manifests).
export UNFED_STAKE_EVM_PRIVATE_KEY_FILE=~/.unfed/node_stake.key
python -m node.server \
--shard-index 1 \
--port 50052 \
--model-type smolvlm \
--shards-dir shards_smolvlm \
--registry localhost:50050 \
--eth-address 0xYourAddress
Key arguments:
--shard-index (which shard),
--model-type (qwen2, smolvlm, qwen2_vl),
--shards-dir (weight directory),
--eth-address (for on-chain staking),
--sampling-rate (verification ticket frequency, default 5%).
Public safety: if you advertise a non-local endpoint,
compute startup requires TLS cert/key by default. Run preflight before launch:
python -m scripts.testnet_preflight node --advertise 203.0.113.42:50052 --tls-cert /path/to/server.crt --tls-key /path/to/server.key.
Processes images through the vision encoder (ViT) for multimodal models. Produces image embeddings that are merged with text tokens at shard 0. Auto-detects model type (SmolVLM or Qwen2-VL) from the manifest.
Start commandexport UNFED_STAKE_EVM_PRIVATE_KEY_FILE=~/.unfed/vision_stake.key
python -m node.server \
--shard-index 0 \
--port 50060 \
--model-type smolvlm_vision \
--shards-dir shards_smolvlm \
--registry localhost:50050 \
--eth-address 0xYourAddress
A pair of nodes that replaces shard 0 with privacy-preserving computation. Token IDs are secret-shared between Node A (entry point) and Node B (peer). Neither can reconstruct the original text. Both A and B now register and can advertise MPC capabilities for input and output-stage 2PC roles.
Start Node B (peer) firstexport UNFED_STAKE_EVM_PRIVATE_KEY_FILE=~/.unfed/mpcb_stake.key
python -m network.mpc_shard0 \
--role B \
--port 50063 \
--peer localhost:50061 \
--shards-dir shards_smolvlm \
--eth-address 0xYourPeerAddress
Then start Node A (entry, registers)
export UNFED_STAKE_EVM_PRIVATE_KEY_FILE=~/.unfed/mpca_stake.key
python -m network.mpc_shard0 \
--role A \
--port 50061 \
--peer localhost:50063 \
--registry localhost:50050 \
--shards-dir shards_smolvlm \
--eth-address 0xYourAddress
| Node Type | GPU | Weights | Stake | Module |
|---|---|---|---|---|
| Registry | No | No | Operator | network.registry_server |
| Daemon | No | No | Required (on-chain mode) | network.daemon_node |
| Compute | Yes | 1 shard | Required | node.server |
| Vision | Yes | Vision shard | Required | node.server |
| MPC (A+B) | Yes | Shard 0 | A only | network.mpc_shard0 |
Planning guidance for stable operation per node type.
| Node Type | CPU | RAM | GPU | Storage |
|---|---|---|---|---|
| Registry | 1 vCPU | 1-2 GB | No | 10 GB SSD |
| Daemon | 2 vCPU | 4 GB | No | 20 GB SSD |
| Compute (text) | 4+ vCPU | 8-16 GB | Recommended | 40+ GB SSD |
| Vision | 4+ vCPU | 12-24 GB | Preferred | 40+ GB SSD |
| MPC Node A | 4 vCPU | 8-16 GB | Recommended | 30 GB SSD |
| MPC Node B | 4 vCPU | 8-16 GB | Recommended | 30 GB SSD |
Budget note: registry-only hosting can run on 1 vCPU / 1 GB, but compute/vision/MPC nodes should run on separate higher-resource hosts.