idlebench
v1.0.4
Published
Benchmark and verify idle compute before it earns. The CLI for IDLE compute providers.
Maintainers
Readme
idlebench
The verification CLI for idle compute.
Run one command on your machine. IdleBench checks your GPU, CUDA, Docker, and network — then publishes a signed trust score buyers can verify before routing workloads to your IDLE resource.
Requirements
Node.js 18 or higher must be installed. Check with:
node --versionDownload from nodejs.org if needed (LTS recommended).
Usage
Once Node.js is installed, run the benchmark using npx — no global install needed:
npx idlebench runCommands
idlebench run
Main benchmark flow. Interactive — walks you through setup, runs all checks locally, calculates a score, and uploads a signed report to IdleBench.
? Solana wallet address (public key): 7xKXtg2CW87...gAsU
? Resource name: RTX 4090 Training Node
? Resource type: GPU
? IDLE endpoint URL (optional): https://gateway.earnidle.com/ep/...After completing, the CLI prints:
- Final score and grade
- Public verification URL
- Badge embed URL
- Local report file path
If the upload fails, the report is saved locally and can be uploaded later with idlebench upload.
idlebench doctor
Checks your local environment without running a benchmark or uploading anything. Use this to diagnose issues before a full run.
npx idlebench doctorChecks: Node.js version, OS, CPU, RAM, GPU detection, NVIDIA driver, CUDA, Docker, Docker GPU runtime, network connectivity.
idlebench upload <path>
Uploads a previously saved report JSON without re-running the benchmark.
idlebench upload ./idlebench-report-1717200000000.jsonThe report is validated before uploading. The hash is verified to ensure the file has not been modified.
idlebench version
Prints the installed CLI version.
idlebench versionWhat gets checked
| Check | Description |
|-------|-------------|
| System info | OS, architecture, CPU model and core count, total RAM |
| GPU detection | Model, VRAM, vendor — via nvidia-smi, falls back to systeminformation |
| CUDA | Availability and version from nvidia-smi |
| NVIDIA driver | Driver version |
| Docker | Installed version and daemon status |
| Docker GPU runtime | Tests docker run --rm --gpus all nvidia/cuda:12.3... |
| Network latency | Round-trip to IdleBench API, 3-sample average |
| CPU benchmark | SHA-256 hash workload (2048 iterations) + 128×128 matrix multiply |
Scoring
Final score = weighted average of five components:
| Component | Weight | Notes | |-----------|--------|-------| | GPU Capability | 30% | GPU model matched against a curated table. VRAM adds a bonus. | | Docker & CUDA | 20% | Docker +40, CUDA +25, GPU runtime +15. Starts at 20. | | Benchmark Performance | 20% | CPU workload timing and GPU container readiness. | | Network Latency | 15% | <20ms → 100, <100ms → 82, >600ms → 15. | | System Stability | 15% | Based on CPU cores and RAM. Starts at 75. |
Grades:
| Grade | Score | |-------|-------| | Elite | 95–100 | | Verified A | 85–94 | | Verified B | 70–84 | | Risky | 55–69 | | Not Recommended | Below 55 |
Report format
Reports are saved as idlebench-report-[timestamp].json in the current directory.
{
"reportVersion": "1.0.0",
"providerWallet": "7xKXtg2CW87...gAsU",
"resourceName": "RTX 4090 Training Node",
"resourceType": "GPU",
"system": { "os": "Ubuntu 22.04", "arch": "x64", "cpuModel": "...", "cpuCores": 24, "ramGb": 64 },
"gpu": { "name": "NVIDIA RTX 4090", "vramGb": 24, "cudaAvailable": true, "cudaVersion": "12.3" },
"runtime": { "dockerAvailable": true, "dockerVersion": "24.0.7", "dockerGpuRuntime": true },
"network": { "latencyMs": 42, "downloadMbps": 940 },
"scores": { "gpuScore": 97, "runtimeScore": 100, "networkScore": 95, "inferenceScore": 92, "stabilityScore": 90, "finalScore": 94, "grade": "Verified A" },
"metadata": { "createdAt": "...", "cliVersion": "1.0.2" },
"reportHash": "sha256:..."
}Security
- IdleBench never asks for private keys or seed phrases. A security notice is printed at every startup.
- All checks run locally. Only the structured report is uploaded.
- The report hash is SHA-256 of the report body. Buyers can verify it independently.
Development
git clone ...
cd idlebench-cli
npm install
npm run build # compiles TypeScript → dist/
npm link # makes `idlebench` available globally
idlebench doctor
idlebench runPublish
npm run build
npm publish --access publicLinks
- Web app: idlebench.dev
- npm: npmjs.com/package/idlebench
- IDLE Protocol: earnidle.com
