Solana-native decentralized GPU compute network. Tenants post Docker-based job definitions (`nosana-job`) priced in NOS; nodes pick up matching jobs, run them, and post results back. Geared toward AI inference, batch ML, and CI workloads with deterministic pricing and a Solana smart contract for job escrow.
- 01Solana-native GPU jobs
- 02Dockerized AI inference
- 03batch ML pipelines
- 04NOS-paid compute marketplace
- 05low-overhead one-shot GPU tasks
- npm install -g @nosana/cli
- pnpm add @nosana/sdk
| Variable | Scope | Description |
|---|---|---|
| NOSANA_WALLET | Server | Path to a Solana keypair JSON used by the Nosana CLI/SDK to fund jobs and sign transactions. |
| NOSANA_NETWORK | Server | Cluster: `mainnet` or `devnet`. |
| NOSANA_MARKET | Server | Market address selecting which node tier (e.g. nvidia-3090, nvidia-3060) runs the job. |
Use Nosana to run a Dockerized GPU job by writing a `job-definition.json` (`{ version, type: 'container', meta, ops: [{ id, type: 'container/run', args: { image, cmd, gpu: true } }] }`) and posting it with `nosana job post --file job-definition.json --market $NOSANA_MARKET --wallet $NOSANA_WALLET`. From Node use `import { Client } from '@nosana/sdk'; const nosana = new Client('mainnet', wallet); const tx = await nosana.jobs.list(jobDef, market);` and poll `nosana.jobs.get(tx)` for `state` (`QUEUED` -> `RUNNING` -> `COMPLETED`) and the IPFS result CID. Keep job runtimes bounded — Nosana enforces a max timeout per market and overruns get slashed. For long-running endpoints, prefer io.net or Akash.
- ⚑Markets are tier-segmented by GPU SKU — picking the wrong market id silently delays or rejects the job; query `nosana market list` first.
- ⚑NOS price volatility means $-cost per job can vary substantially intra-day; quote consumers in USD and rebalance NOS on a schedule.
- ⚑Region availability is concentrated in EU/US; latency-sensitive jobs in APAC will see longer queue + transfer times.
- ⚑Each job has a hard maximum runtime per market — exceeding it slashes the operator and the job state goes to `STOPPED`; design idempotent retries.
- ⚑Result payloads are pinned to IPFS by the node — if the node prunes after settlement, fetch artifacts immediately via the result CID or your own pinning service.
- ⚑Network congestion on popular markets (3090s) pushes queue times into minutes; switch to a less crowded SKU for throughput-sensitive work.
- ⚑Image-generation containers (SD/Flux) are well supported; text LLM endpoints work but cold-start time per job makes per-token serving expensive vs. always-on inference networks.
- ⚑Slashing applies to nodes for failed jobs but tenants can lose escrow if the job is malformed — validate the manifest with `nosana job validate` before posting.