Doku

Anleitung für Betreiber

Linux-Agent

Mit dem Node-Agent kann ein freigegebener Betreiber ein Linux-GPU-Rig oder einen Server für andere Arbeit als KI-Inferenz anbieten: Rendering, Trainingsjobs, Mining und später Server. Er führt jeden Job als Container auf deiner Maschine aus und meldet sich bei der Control Plane.

Abgeschaltet: keine Aufträge

Der Agent ist gebaut, aber das Netzwerk nimmt noch keine Linux-Agenten an und schickt ihnen keine Jobs. Ein heute gestarteter Agent registriert nichts und führt nichts aus: Er protokolliert, dass Linux-Agenten abgeschaltet sind, und fragt alle zehn Minuten erneut. Auszahlungen sind ebenfalls abgeschaltet. Diese Seite beschreibt, wie er funktionieren wird, sobald er eingeschaltet ist.

Was er tut

  • Er baut über HTTPS eine ausgehende Verbindung zur Control Plane auf, mit deinem Betreiber-Zugang (snop_...), demselben, den ein Engine-Node nutzt. Er öffnet keinen Port.
  • Er meldet die Maschine an: CPU, Arbeitsspeicher, GPUs mit Modell und VRAM (über nvidia-smi oder rocm-smi), freien Speicherplatz, Region sowie die Workloads und Preise, die du gewählt hast.
  • Er fragt nach Jobs, führt jeden in einem Container über Podman oder Docker aus, überträgt die Logs, meldet jede Minute die Nutzung und beendet einen Job, wenn das Netzwerk es verlangt, wenn er sich beendet oder wenn sein Zeitlimit abgelaufen ist.

Wie Jobs isoliert werden

Jeder Job läuft mit diesen Einstellungen, die der Agent setzt und nicht der Kunde:

  • kein privilegierter Modus, kein Netzwerk-, Prozess-, IPC- oder User-Namespace des Hosts, kein veröffentlichter Port und kein Pfad des Hosts außer dem eigenen Arbeitsverzeichnis des Jobs
  • alle Capabilities entzogen, keine neuen Privilegien, ein unprivilegierter Benutzer und ein schreibgeschütztes Root-Dateisystem
  • deine Limits für CPU, Arbeitsspeicher, Prozesse und Shared Memory sowie ein festes Zeitlimit
  • GPUs nur, wenn du sie freigibst
  • nur per Digest festgelegte Images; Umgebungsvariablen über eine private Datei, nie über die Kommandozeile

Netzwerk je Workload

Rendering- und Trainingsjobs bekommen kein Netzwerk, außer du erlaubst ausgehenden Zugriff. Mining bekommt nur ausgehenden Zugriff, in einem eigenen Netzwerk. Server sollen eingehenden Verkehr nur über das Silicon Network Relay annehmen; dieser Weg ist noch nicht gebaut, deshalb bietet das Netzwerk noch keine Server auf Maschinen von Betreibern an.

Du führst den Job aus, also siehst du seinen Befehl und seine Umgebungsvariablen. Der Speicherplatz im Arbeitsverzeichnis ist nicht begrenzt: Lege das Zustandsverzeichnis des Agenten auf ein Volume, das Jobs füllen dürfen.

Preise und Einnahmen

Du legst deinen eigenen Preis je Workload fest: USD pro GPU-Stunde für Training und Rendering, pro Stunde für Mining und Server. Das Netzwerk zeigt einen Preis nur als Angebot einer Maschine, die online ist, nie als Marktpreis. Die Control Plane misst die Laufzeit jedes Jobs selbst und berechnet den kleineren Wert aus ihrer eigenen Messung und der deines Agenten. Solange Auszahlungen abgeschaltet sind, erscheint geleistete Arbeit nur als ausstehende Einnahme.

Installation

Du brauchst Linux (x86_64 oder arm64), Python 3.11 oder neuer und Podman 4 oder Docker 24 oder neuer; für NVIDIA-GPUs das NVIDIA Container Toolkit, für AMD-GPUs ROCm. Werde zuerst auf der Seite Nodes im Dashboard Betreiber. Alle Schritte, die Beispielkonfiguration und die systemd-Unit stehen in node-agent/README.md im Repository.

linux - sh
# as root, on the Linux machine
git clone https://github.com/ekempinski/siliconnetwork /opt/silicon-node-agent
python3 -m venv /opt/silicon-node-agent/.venv
/opt/silicon-node-agent/.venv/bin/pip install --require-hashes \
  -r /opt/silicon-node-agent/node-agent/requirements.txt

# the credential, readable by root only
install -d -m 700 /etc/silicon-node-agent
sh -c 'umask 077; printf "%s\n" "snop_..." > /etc/silicon-node-agent/credential'

# the config: accepts nothing until you list workloads and prices
cp /opt/silicon-node-agent/node-agent/agent.example.toml /etc/silicon-node-agent/agent.toml

# check the config and the hardware (sends nothing)
cd /opt/silicon-node-agent/node-agent
/opt/silicon-node-agent/.venv/bin/python -m silicon_node_agent check
/opt/silicon-node-agent/.venv/bin/python -m silicon_node_agent detect

Deine Konfiguration nimmt nichts an, bis du Workloads einträgst und für jeden einen Preis festlegst. check und detect senden nichts.

Um KI-Inferenz auf einem Mac anzubieten, siehe Einen Node betreiben.

Silicon Network›Doku›Anleitungen›Linux-Agent50 Objekte