# Compute9 Evidence v0.1.0 An offline evidence-chain tool for GPU9D's free public-benefit research project. This release is **simulation only**: it does not discover hardware, benchmark a GPU, install an agent, upload telemetry, or connect to a provider. ## Download and run - Script: https://gpu9d.com/downloads/compute9-evidence.cjs - SHA-256 manifest: https://gpu9d.com/downloads/manifest.json - Bundle schema: https://gpu9d.com/schemas/compute9-evidence-v0.1.schema.json - Requires Node.js 22 or later; uses only Node's built-in modules. Save and inspect the script before running it. Compare the downloaded file's SHA-256 to the HTTPS manifest. The digest detects a changed download relative to that manifest; the manifest is not a provider identity certificate. ```sh node compute9-evidence.cjs --help node compute9-evidence.cjs demo > demo.json node compute9-evidence.cjs verify --file demo.json ``` `demo` emits four explicitly simulated lifecycle records: started, interrupted, resumed and completed. Durations and operation counts are synthetic zeros, not performance measurements. It generates an ephemeral Ed25519 key pair in memory, includes the public key, and discards the private key. It makes no network request and does not inspect workload files or hardware. ## Verification and trust Each record includes a run identifier, sequence number, UTC time, previous record hash, allowed lifecycle kind, simulation mode and two numeric metrics. SHA-256 hashes use a domain-separated, restricted canonical JSON representation. A signed checkpoint binds the schema, mode, run identifier, event count and head hash. Object keys are sorted and numbers must be safe integers; this is Compute9 canonical-json-v1, not general RFC 8785/JCS. ```sh node compute9-evidence.cjs verify --file evidence.json --trusted-key-file provider-public.pem node compute9-evidence.cjs verify --file evidence.json --trusted-key-file provider-public.pem --expected-head --expected-count ``` Public keys must be Ed25519 SPKI PEM. Obtain a trusted key and any expected checkpoint through a separate trustworthy channel. Copying them from the same untrusted bundle does not establish trust. A pin only verifies a key match; identifying its owner remains a separate task. - Without a supplied key pin, valid signatures are reported as `untrusted_embedded_key`. - Without a separately supplied checkpoint, a signer can truncate and re-sign a prefix. Reordering and deletion against an unchanged checkpoint are detected, but full history and truthful timestamps are not established. - A known exact head/count can detect a changed bundle relative to that checkpoint. It does not establish later history, trusted time, hardware ownership, truthful measurements or successful delivery. - Successful verification returns exit code 0 with explicit `gpu_test_performed: false`, `performance_verified: false` and `provider_identity_verified: false`. Invalid input returns a nonzero code. Exit code 0 is not GPU certification. - This tool does not issue evidence grades or a claim of real GPU testing. The monitoring plugin, active GPU runner, supplier registry and matching remain unavailable. ## Privacy and limits Unknown fields are rejected at bundle, checkpoint, event, record and metric levels. The format has no prompt, dataset, weight, output, command, account, IP or serial-number field. Do not add workload contents to the file. Verification reads only the explicitly named local bundle/public key files, with size limits of 2 MiB per bundle, 512 bytes per public key, and at most 1024 events. Provider authorization is required before any future installation, resource access, telemetry publication or active GPU test. Free platform services do not promise free GPU resources.