| Term | Meaning |
|---|---|
| Coordinator | Rust service running inside a Nitro Enclave (the Nautilus pattern). Brokers inference jobs: runs the auction, issues dispatch tokens, signs routing receipts. Never runs inference itself. |
| Node | Rust binary run by independent GPU providers. Joins the libp2p mesh, bids on inference requests, runs the model, signs a ProofOfInference per completed job. |
| chat-relayer | A second Nitro Enclave service backing chat.pinaivu.ai, following the same Nautilus pattern as the coordinator. Adds cross-session memory via embeddings + Walrus. See Memory layers. |
| Gateway | Stateless OpenAI-compatible service backing api.pinaivu.com. Per-key auth, no memory layer, plain HTTP — not an enclave. |
| Enclave | An AWS Nitro Enclave — an isolated VM with no external storage and only a VSOCK channel to its parent. Used here to make the coordinator’s (and chat-relayer’s) signing key tamper-resistant. |
| Nautilus | The architectural pattern of running a service inside a Nitro Enclave, attesting it with NSM, and registering the attested key on-chain so its outputs are independently verifiable. Both the coordinator and chat-relayer follow it. |
| NSM | Nitro Security Module — a virtual TPM-like device that produces COSE_Sign1 attestation documents binding an Ed25519 pubkey to the running PCRs. |
| PCR | Platform Configuration Register — a SHA-384 digest measuring code identity. PCR0 = enclave image, PCR1 = kernel, PCR2 = application. |
| EIF | Enclave Image Format — the bootable artifact nitro-cli runs. Built from a kernel + initramfs by eif_build. |
| Sidecar | Long-lived TypeScript Express server colocated with the coordinator inside the enclave. Holds the Sui operator private key and signs PTBs on the coordinator’s behalf. |
| Operator key | Sui Ed25519 keypair that pays gas and holds Cap<ENCLAVE>. Lives in the sidecar’s memory only. Not what authorises payouts — that’s the enclave key. |
| Enclave key | The Ed25519 keypair the coordinator generates fresh at every boot. Bound into the NSM attestation document. Registered on-chain as the canonical signer for Pinaivu receipts. |
Enclave<ENCLAVE> | On-chain shared object storing the enclave’s registered pubkey. Created by pinaivu::enclave::register_enclave. |
Cap<ENCLAVE> | On-chain owned object proving admin rights over EnclaveConfig<ENCLAVE>. Held by the operator address. |
| Vault | On-chain shared object holding the Pinaivu treasury per coin type. settle() is the only path that moves funds out, gated by a coordinator-signed receipt. |
RoutingReceipt | Signed audit artefact for one completed inference job. Holders of (receipt, coordinator_pubkey) can verify offline; the on-chain vault checks the same signature when disbursing. |
CompletionAck | What a node sends back to the coordinator after finishing a job. Carries Vec<ProofOfInference> — one per contributing node. |
ProofOfInference | A node-signed attestation: “I (with this Ed25519 pubkey) processed input with this hash, produced output with this hash, in N ms.” |
DispatchToken | What the coordinator returns to a client after the auction. The client hands it to the node to authorise the work; the node verifies it was issued by the registered enclave. |
| Apalis | Rust async job-queue library, Postgres-backed. Used for the deadline watcher and settlement worker. |
| VSOCK | Linux virtio socket used between the EC2 host and an enclave. The enclave has no other network path. |
| NanoX | Payment unit — 1 X = 10⁹ NanoX. All bid prices and payout amounts are in NanoX. |
| IntentMessage | BCS-encoded envelope { intent: u8, timestamp_ms: u64, payload } used for coordinator/chat-relayer signatures. The intent byte scopes the signature so one artefact type’s signature can’t be replayed as another. |
.env.runtime.dynamic | Host-side file holding post-boot discovered values (e.g. PINAIVU_ENCLAVE_OBJECT_ID). Concatenated with ~/.env.runtime and pushed into the enclave via VSOCK:7000 at startup. Survives deploys; .env.runtime itself is overwritten on every deploy. |
| Admin endpoint | POST /v1/admin/set-enclave-id and GET /v1/admin/settlements/{request_id}. Authenticated with X-Sidecar-Secret. |
| log_forwarder | Native Rust thread in init that polls /tmp/coordinator.log and streams new bytes to VSOCK:5000 via libc::send(MSG_NOSIGNAL). Replaces an earlier socat EXEC:tail -f chain that block-buffered after the first burst. |
| Walrus | Content-addressed decentralized storage network — genuinely decentralized, alongside the GPU node mesh. Used for the routing-receipt archive and for chat session/memory blobs. See Decentralization & verifiability model. |
| libp2p mesh | The open gossipsub + request-response network nodes join to receive inference requests, bid, and ack completions. No permission from Pinaivu required to join. |
| Intra-session memory | Node-side conversation continuity within a single chat session, backed by an encrypted Walrus blob chain. See Memory layers. |
| Cross-session memory | chat-relayer-side long-term user facts, recalled via pgvector similarity search over encrypted Walrus blobs. See Memory layers. |
| zkLogin | Sui primitive that derives a self-custodied address from an OAuth (OIDC) identity via a zero-knowledge proof — no seed phrase. Used by the developer console for seedless sign-in. See zkLogin Authentication. |
| Ephemeral key | Throwaway Ed25519 keypair the browser generates per zkLogin session. It signs transactions; the ZK proof binds it to the user’s address until maxEpoch. Distinct from the coordinator’s enclave key. |
| Salt (zkLogin) | Per-user secret mixed with the JWT sub/aud to compute the addressSeed, hiding the OAuth↔Sui-address link. In production it should be held by a persistent salt service (e.g. Enoki). |
| addressSeed | The value (genAddressSeed(salt, "sub", sub, aud)) that, with the OIDC issuer, deterministically yields the zkLogin Sui address and is embedded in the zkLogin signature. |
| maxEpoch | The Sui epoch after which a zkLogin proof and its ephemeral key expire — the effective session lifetime. Set via additionalEpochs when requesting the nonce. |
| Enoki | Mysten Labs’ hosted zkLogin service. Pinaivu uses it for the salt-backed nonce and for generating the ZK proof from the OAuth JWT. |
Reference
Glossary
Every term used across the Pinaivu docs, in one place