packaging/linux: preflight (Ubuntu 24.04, NVIDIA driver 580 floor with libcuda and libnvrtc.so.12, AMD ROCm OpenCL ICD, Intel compute runtime, nvidia-smi and the OpenCL list printed, RAM, free disk, ports, ufw), the wallet and rig name asked once, the igneum system user, the Ed25519 check of dl/public/igneum-app-latest.json with the OTA public key (OpenSSL 3 pkeyutl -rawin, python3 cryptography fallback, never skipped), consensus.override written from the verified manifest and refreshed hourly (the HiveOS override rule without a package republish), the HiveOS package downloaded with size and sha256 checked (the signed linux entry when the manifest has one, else the .sha256 sidecar behind --allow-sidecar-sha256, said in capitals), releases under /opt/igneum with a current symlink and a 90-s rollback, one miner unit per card with CUDA_DEVICE_ORDER=PCI_BUS_ID and the OpenCL ordinal mapping, the integrated GPU and the BMC VGA excluded by the inventory, the prover unit as the proving-v1 loop in bash (12 GB gate, 20 GB mine-and-prove line with the card's miner paused per shard through a sudoers rule, idles in state setup while no Linux prover binary is published), telemetry in the app's line shapes with the relay upload under nodelog-linux/miner-<vendor>/linux labels, the identities rule with its 8 GiB threshold. Tested on the Mac: shellcheck -x -S style clean, bash -n, check-units.sh (6 units, the systemd-analyze stand-in; no systemd or Docker here), the inventory on a fake sysfs tree, the rules, the live manifest verified by both verifiers and tampered copies refused, the installer dry run with the 0.3.9 package downloaded and verified. Untested until a rig exists: listed in README.md. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
35 lines
826 B
Desktop File
35 lines
826 B
Desktop File
[Unit]
|
|
Description=Igneum miner on card %i (igneum-miner with the CUDA or OpenCL worker)
|
|
Documentation=file:///opt/igneum/README.md
|
|
After=igneum-node.service
|
|
Requires=igneum-node.service
|
|
PartOf=igneum-node.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=igneum
|
|
Group=igneum
|
|
SupplementaryGroups=video render
|
|
ExecStart=/opt/igneum/bin/igneum-miner.sh %i
|
|
WorkingDirectory=/var/lib/igneum
|
|
Environment=CUDA_DEVICE_ORDER=PCI_BUS_ID
|
|
Restart=always
|
|
RestartSec=5
|
|
SuccessExitStatus=42
|
|
TimeoutStopSec=20
|
|
KillMode=control-group
|
|
KillSignal=SIGTERM
|
|
LimitNOFILE=65536
|
|
ProtectSystem=full
|
|
ProtectHome=true
|
|
PrivateTmp=true
|
|
NoNewPrivileges=true
|
|
ReadWritePaths=/var/lib/igneum /run/igneum
|
|
RuntimeDirectory=igneum
|
|
RuntimeDirectoryPreserve=yes
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
SyslogIdentifier=igneum-miner-%i
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|