Built from the bottom up
OmniNode is a single Rust workspace on edition 2024. Networking and storage sit at the base; a zero-copy bridge and pipeline coordinator sit above; the proof, chain, and operator surfaces sit at the top. Default builds pull zero chain and zero proof dependencies — capabilities are opt-in cargo features.
Eleven crates, one dependency spine
Each crate has one job and depends only on the layers beneath it.
Protocol & operator surface
omni-zkmlProof-artifact substrate, verifier attestation envelope, and the chain-client abstraction.
omni-sumchainSUM Chain JSON-RPC adapter — attestation submit + settlement read / claim / dispute.
omni-contributorOff-chain contributor inference node — jobs, sessions, integrity-evidence chains.
omni-nodeThe operator CLI binary — listen, shard, fetch, verify-proof, settlement.
omni-proofs-halo2-reference4→8→4 int16 Halo2 reference proof (halo2-mlp-v1).
omni-proofs-halo2-production-mlp16→32→16→8 int16 Halo2 production proof (production-fixedpoint-mlp-v1).
Bridge & coordination
omni-bridgePyO3 native extension — zero-copy shard access exposed to NumPy / MLX.
omni-pipelinePipeline-parallel coordination — GPipe scheduling, hidden-state tensor transport.
Networking & storage
omni-netP2P mesh on libp2p 0.55 — QUIC, mDNS discovery, Gossipsub, shard & tensor request-response.
omni-storeZero-copy GGUF parsing, layer-wise chunking, BLAKE3 → CIDv1 addressing, SNIP V2 store.
Shared foundation
omni-typesShared types, errors, config, and the Phase-5 attestation / commitment types.
A mesh on libp2p 0.55
Peers move two kinds of bytes: content-addressed model weights, and the hidden-state tensors that flow between pipeline stages.
- QUIC and TCP transports, Noise encryption, Yamux multiplexing.
- Peers discover each other over mDNS; Gossipsub carries pub/sub with strict validation.
- Two request-response codecs: /omni/shard-xfer for weights, /omni/tensor-xfer for tensors.
LAN is the proven path
omni-net.spec
- transports
- QUIC · TCP
- security
- Noise
- multiplexing
- Yamux
- discovery
- mDNS (LAN)
- pub/sub
- Gossipsub
- shard_window
- 64 MiB
A weight is never copied
On unified-memory hardware, a shard travels from disk to the GPU without a single copy. The mmap the operating system makes is the same memory Metal computes on.
- Rust mmap — GGUF shardFile mapped into unified memory; CPU and GPU share the same physical RAM.
- PyO3 __getbuffer__The raw pointer is exposed to Python over the buffer protocol — no copy.
- NumPy frombuffer()Wraps the pointer as an ndarray in place.
- MLX mx.arrayMetal reads tensors directly from the same physical memory.
- GPU inferenceZero memory copies from disk to compute.