A live online application and implementation of a Verifiable Computation Protocol (VCP) for running and verifying distributed compute tasks across many machines.
✅ All 274 tests passing | ✅ Zero compiler warnings | ✅ Load tests included | ✅ Groth16-based ZK proof implementation
Yes — this app is already deployed and running online. You can use it as-is, and if you self-host it, you should still tune infra/security settings for your own environment.
The Ambient AI + VCP System is an open-source platform for distributed, verifiable AI computing. It connects devices that have spare compute capacity — laptops, servers, edge boxes — into a self-organizing mesh where work can be submitted, scheduled, and cryptographically verified. A built-in control plane handles node registration, health scoring, task routing, and result validation, so you don't have to build any of that yourself.
What makes the system distinctive is its combination of a Verifiable Computation Protocol (VCP) with a practical mesh runtime. Every task can be backed by a Zero-Knowledge proof (Groth16/BN254) that proves the computation happened correctly without revealing private inputs, and every node carries its own trust score derived from real telemetry. Beyond pure compute, the AILEE trust layer adds multi-model consensus, an energy-weighted efficiency metric (∆v), and offline-first operation — nodes can authenticate sessions, cache egress policies, and sync with peers over a direct P2P channel even when the central API is unreachable. The result is an end-to-end platform for building trustworthy, resilient AI workflows across heterogeneous hardware.
Think of this app as a service for compute power:
- Some people have spare machines (laptops, servers, edge devices) and register them as nodes; each node's metadata is visible to authenticated users.
- Other people submit tasks they want computed, they are private to the user.
- The system finds appropriate nodes, runs the work, and tracks results.
- It can also verify that work was executed correctly using cryptographic proofs.
In plain terms: this application is a control center for distributed AI computing. Through a single dashboard, you can send tasks to multiple machines, run them in parallel, and watch the entire cluster update in real time.
What’s especially powerful is that the system is model-agnostic — it doesn’t care whether a task runs on a GPU node, a CPU worker, a proof generator, or even multiple AI models working together. If a workflow requires several components or agents, the platform can orchestrate them across the cluster automatically.
It’s designed to make complex compute workflows feel effortless — from launching jobs to monitoring performance and managing results — all through one unified interface.
https://ambient-ai-vcp-system.onrender.com
| Endpoint | URL |
|---|---|
| Dashboard | https://ambient-ai-vcp-system.onrender.com |
| Swagger UI | https://ambient-ai-vcp-system.onrender.com/swagger-ui |
| OpenAPI JSON | https://ambient-ai-vcp-system.onrender.com/api-docs/openapi.json |
Tip: To quickly verify the public demo is reachable, run:
curl https://ambient-ai-vcp-system.onrender.com/api/v1/health
New to the system? Here's what you need to know:
The System is a Two-Sided Service:
- Node Operators (Supply) = People who provide computing power (you register your device)
- Task Submitters (Demand) = People who need computing power (developers, researchers, businesses)
- The System = Matches tasks to nodes, orchestrates execution, returns results
Nodes = Devices that join the network to contribute computing power (your laptop, server, etc.)
- 5 Node Types: Compute (run tasks), Gateway (route traffic), Storage (store data), Validator (verify proofs), Resonator (FEEN physics)
- 👉 Learn more about node types →
Tasks = Work submitted to the network for execution (train a model, run a computation, etc.)
- 6 Task Types: Federated Learning, ZK Proof, WASM Execution, General Computation, Connect-Only, FEEN Connectivity
- Who creates tasks? App developers, data scientists, researchers, businesses - anyone who needs computation
- 👉 Learn more about task types →
- 👉 Who creates tasks and why? →
The Dashboard (https://ambient-ai-vcp-system.onrender.com) lets you:
- ✅ Register your device as a node
- ✅ View all registered nodes and their health
- ✅ Monitor submitted tasks and their status
- ✅ See real-time cluster statistics
- ✅ View observability data for your own nodes (owner-only)
📖 For complete guides:
- Understanding Nodes & Tasks - What are nodes and tasks?
- Who Creates Tasks? - The demand side explained
- 🌐 Ambient Node Mesh: Self-organizing network of heterogeneous edge devices
- 🧠 Intelligent Orchestration: Health-based task assignment with reputation scoring
- 🤖 AILEE Trust Layer: External generative intelligence with multi-model consensus and trust scoring
- 📐 AILEE ∆v Metric: Energy-weighted optimization gain functional for continuous efficiency monitoring (see AILEE paper)
- 🔌 Offline-First / API-Disconnected Operation: Nodes remain fully operational without a central API endpoint — local session management, policy caching, and internet egress continue via the
LocalSessionManager - 🔗 Peer-to-Peer Policy Sync: Nodes in
OfflineControlPlaneorNoUpstreamstate can exchange cryptographically-verified policy snapshots with peer nodes, letting the mesh distribute fresh session policies without ever touching the control plane - 🔒 WASM Execution Engine: Secure sandboxed computation with strict resource limits
- 🔐 Zero-Knowledge Proofs: Cryptographic verification with Groth16 implementation
- 🤝 Federated Learning: Privacy-preserving multi-node model training with FedAvg and differential privacy
- ✓ Verifiable Computation: Proof-of-Execution for trustless distributed computing
- ⚡ Energy Telemetry: Verifiable sustainability metrics
- ✅ Comprehensive Input Validation: All API endpoints validate input data
- ✅ Zero Compiler Warnings: Clean, maintainable codebase
- ✅ Integration Tests: 13 new integration tests for API validation
- ✅ Error Handling: Proper error propagation and user-friendly messages
- ✅ Type Safety: Full Rust type system guarantees
- 🔍 Local Node Observability: Privacy-preserving, operator-only inspection interface (localhost-only, read-only, no sensitive data exposure)
- 🛣️ Internet Path Routing:
PeerRouterresolves direct or one-hop relay paths throughUniversal/Opennodes;MeshCoordinatorexposessync_connectivity()andfind_peer_route()for runtime reachability updates - 🔌 Gateway Session Lifecycle:
DataPlaneGateway::add_session()/revoke_session()— sessions provisioned and revoked at runtime so nodes stop relaying traffic the instant a connect session ends - ⚡ Non-Blocking Password Hashing:
hash_password_async()offloads bcrypt to a blocking thread pool; configurable cost viaBCRYPT_COSTenv var (default 12, range 4–31) - 🔔 Heartbeat-Triggered Task Sync:
update_node_heartbeatnow callsassign_pending_tasks_for_nodeon every ping, so live nodes receive eligible pending tasks continuously — not only at registration - 🎨 Offline-First Dashboard Fonts: Syne and JetBrains Mono fonts are self-hosted from bundled woff2 files; no Google Fonts CDN dependency, dashboard renders fully in air-gapped environments
- 🛡️ Safe-Default Backhaul Routing:
monitor_only = trueis the new default — the backhaul manager observes interfaces and scores them without touching kernel routing tables until explicitly opted in;ip ruleentries are scoped tofrom <src-ip>to avoid affecting unrelated host traffic; health probes bind to the interface's own address for accurate per-interface metrics - 🌐 NCSI Spoof Server:
NcsiSpoofServerprevents falseERR_INTERNET_DISCONNECTEDerrors when the node acts as internet gateway for connected clients. When a client's direct internet is gone and the VCP node is the upstream provider, the client OS connectivity checks (Windows NCSIGET /connecttest.txt, Linux NetworkManagerGET /check_network_status.txt, and generic captive-portal probes) are answered locally by a lightweight HTTP listener configured withNcsiSpoofConfig, stopping the OS from blocking traffic with a false disconnection signal. - 🌍 HTTP CONNECT Proxy:
HttpConnectProxylets a browser on an offline node route all HTTPS traffic through a connected relay node, permanently bypassingERR_INTERNET_DISCONNECTED. Point the browser's proxy settings at<relay-ip>:3128; it issuesCONNECT host:443 HTTP/1.1with aProxy-Authorization: Bearer <token>header, the proxy validates the token and opens a bidirectional TCP tunnel to the real destination. Non-CONNECT requests are rejected (405), bad or missing tokens return 407, and upstream failures surface as 502/504. Configured viaHttpConnectProxyConfig(listen address, bearer token, connect/idle timeouts, enabled flag). - 📶 Relay Session QoS:
RelayQosManagerinstalls WAN-sidetcHTB + FQ-CoDel rules on the active backhaul interface when aconnect_onlysession is active on anopen_internetoranynode — guaranteeing minimum bandwidth and low latency for relayed traffic while preventing node-internal traffic from crowding out the relay stream. CallBackhaulManager::activate_relay_qos()when a session starts anddeactivate_relay_qos()when it ends. - 💓 Hardware Keepalive:
BackhaulManagernow emits periodic hardware-level keepalive probes viahardware_keepalive_tick(now_secs); the interval and enabled flag are controlled byHardwareKeepaliveConfiginsideBackhaulConfig— keepingconnect_onlyrelay links alive through NAT devices and stateful firewalls that would otherwise expire idle sessions. - 🏓 Node Heartbeat Tracking (
NodeRegistry):record_heartbeat(id, now_secs)stores the last-seen timestamp for each registered node;is_node_alive(id, now_secs, timeout_secs)returnstruewhile the node is within its liveness window — enabling the mesh coordinator to detect stale nodes without a round-trip to the API server. - 🌐
internet_required()onLocalSessionManager: reports whether any active local session requires outbound internet connectivity, allowingBackhaulManagerto prioritise interface selection for relay tasks.
- 🏥 Heartbeat Modal Response:
PUT /nodes/{id}/heartbeatnow returnshealth_score,node_status,active_tasks,assigned_task_ids, and a richassigned_tasksarray — each entry carriestask_id,task_type, andexecution_statusso node processes can react immediately (e.g. activate gateway mode forconnect_onlytasks). - 📋 Execution Status Lifecycle:
task_assignmentsnow tracksexecution_status(assigned→in_progress→completed/failed),execution_started_at, andexecution_completed_atacross all paths: node result submission, synthetic fallback, connect_only session end, and forced disconnection (delete / reject / offline sweep). - 🔄 Activity Registration: The first heartbeat a node sends after being assigned to a task advances
execution_statusfromassigned→in_progress, recording the exact moment the node confirmed it is actively working. - 📤 Task Result Submission (
POST /api/v1/tasks/{id}/result): Nodes can now submit real execution outputs to the API instead of relying solely on synthetic fallback. Whenrequire_proof = true, a ZK proof must accompany the result and is verified before the task is marked completed. - ⏱️ Honest Fallback Timeout: For non-
connect_onlytasks the synthetic fallback now waits the fullmax_execution_time_secbefore firing — giving nodes time to submit real results. Previously it fired immediately, preempting any real output. - 🛡️ Completed Task Protection:
update_task_status_from_assignmentsnow carries anAND status NOT IN ('completed','failed')guard, preventing a node going offline from silently reverting an already-completed task topending. - 🌐 Gateway Session Polling (
GET /api/v1/nodes/{id}/gateway-sessions):open_internet/ relay nodes can poll this endpoint each heartbeat cycle to receive the current set of activeconnect_onlysessions they should relay, including the cleartextsession_tokentheDataPlaneGatewayneeds to validate incoming relay connections. The session token is stored server-side on session creation and returned only to the authenticated node owner. - 💤 Node Offline Sweep: A background task runs every
NODE_OFFLINE_SWEEP_INTERVAL_SECONDS(default 60 s). Any node whoselast_heartbeatis older thanNODE_HEARTBEAT_TIMEOUT_MINUTES(default 5 min) is markedoffline, its active assignments are disconnected (in-progress ones markedfailed), and affected tasks are immediately reassigned to other eligible nodes. - 🏆 Health-Score Node Selection: Task assignment now orders candidates by
health_score DESC(thenregistered_at ASCas tiebreaker) so healthiest nodes are always preferred; the redundantregistered_atandhealth_scorecolumns were also removed from theGROUP BYclause since they are functionally dependent on thenode_idprimary key.
- 🔐 JWT Middleware Authentication: Global JWT enforcement at middleware layer (not handler extractors)
- 🛡️ Rate Limiting: Per-endpoint tier-based rate limiting (Auth: 10rpm, Nodes: 20rpm, Tasks: 30rpm, Proofs: 15rpm)
- 🔄 Refresh Tokens: JWT token rotation with 30-day refresh tokens and automatic revocation
- 🔒 CORS Hardening: Configurable origin-based CORS (no wildcards in production)
- 📊 Prometheus Metrics:
/metricsendpoint with per-route latency and error tracking - 📝 Audit Logging: Comprehensive audit trail for security events
- 🔍 ZK Proof Verification: Cryptographic verification (Groth16/BN254) with strict payload validation
- 🔑 P2P Message Integrity: Ed25519 signature verification for offline peer policy sync messages; signer public key validated against the local trusted key set
- 🛡️ Middleware Hardening: Explicit state injection for reliable authentication flow
- 🌐 Security Headers: HSTS, X-Content-Type-Options, X-Frame-Options, Referrer-Policy
- 📊 Request Tracing: Structured logging with request IDs for all API calls
- 💾 Enhanced Persistence: Migrations for task_runs, proof_artifacts, api_keys, audit_log, node_heartbeat_history
- Capability whitelist (registration):
bandwidth_mbps:10..=100_000cpu_cores:1..=256memory_gb:1..=2_048
- Task-type registry (submission):
- Canonical task types:
federated_learning,zk_proof,wasm_execution,computation - Per-type policies: max execution time, max payload size, and WASM allow/deny
- Canonical task types:
- Node registry enforcement (admission control):
- Task creation checks for enough eligible online nodes that meet the task policy before insert.
📖 See docs/NODE_SECURITY.md for the full security model, threat boundaries, and operator guidance.
┌─────────────────────────────────────────────────────────────┐
│ REST API Server │
│ (Axum + OpenAPI/Swagger UI) │
└──────────────┬──────────────────────────────────┬───────────┘
│ │
┌───────▼────────┐ ┌──────▼───────┐
│ Mesh Coordinator│ │ Node Registry│
│ (Orchestration)│ │ (Health Mgmt)│
└───────┬─────────┘ └──────┬───────┘
│ │
┌──────────▼──────────────────────────────────▼─────────┐
│ Ambient Node Network (P2P Mesh) │
└──┬────────┬────────┬────────┬────────┬────────┬───────┘
│ │ │ │ │ │
┌──▼──┐ ┌─▼──┐ ┌─▼──┐ ┌─▼──┐ ┌─▼──┐ ┌─▼──┐
│Node │ │Node│ │Node│ │Node│ │Node│ │Node│
│(GPU)│ │(CPU)│ │(Edge) │(IoT)│ │(Cloud) │(Mobile)
└─────┘ └────┘ └────┘ └────┘ └────┘ └────┘
│ │ │ │ │ │
┌──▼────────▼────────▼────────▼────────▼────────▼───────┐
│ WASM Execution Engine + ZK Proof System │
│ (Sandboxed, Resource-Limited, Traceable) │
└───────────────────────────────────────────────────────┘
Purpose: Individual compute nodes in the distributed network
- ⚡ Real-time telemetry collection (energy, compute, privacy budgets)
- 📊 Multi-factor health scoring (bandwidth 40%, latency 30%, compute 20%, reputation 10%)
- 🛡️ Safety circuit breakers (temperature > 85°C, latency > 100ms, error count > 25)
- 🏆 Reputation tracking with success rate calculation
- 🔄 Dynamic health score updates
Purpose: Secure, sandboxed code execution
- 🔒 WasmEdge runtime integration for secure execution
- 📏 Resource limits: Memory (512MB), Timeout (30s), Gas metering
- 📝 Execution trace recording for ZK proof generation
- 🔁 Determinism verification for reproducibility
⚠️ Comprehensive error handling and validation
Purpose: Cryptographic verification of computations
- 🔐 Production Groth16 implementation on BN254 curve
- ✓ Universal verifier for WASM program execution
- 🎯 Real cryptographic proofs with sub-second verification
- 📦 Compact proof size (~128-256 bytes)
- 🚀 Fast proof generation (<10s) and verification (<1s)
Purpose: Task orchestration and node management
- 📋 Centralized node registry with real-time health tracking
- 🎯 Multiple task assignment strategies:
- Weighted: Health score-based selection
- Round-robin: Fair distribution
- Least-loaded: Load balancing
- Latency-aware: Geographic optimization
- 🛣️
PeerRouter: Classifies each node's internet reachability (Online/Offline/Unknown) and resolves forwarding paths — direct for online nodes, one-hop relay viaUniversalorOpennodes otherwise - ✅ Proof verification pipeline
- 💰 Reward distribution (future)
Purpose: Privacy-preserving distributed ML
- 📊 FedAvg Algorithm: Weighted model aggregation
- 🔒 Differential Privacy: Configurable ε (epsilon) and δ (delta)
- ✂️ Gradient Clipping: Bounded sensitivity for DP
- 🧮 Noise Injection: Gaussian and Laplacian mechanisms
- 🔄 Multi-round Training: Iterative model improvement
Purpose: Public-facing HTTP API with comprehensive validation and security
Security Features:
- ✅ Node Ownership: Nodes linked to user accounts with ownership verification
- ✅ JWT Authentication: Protected endpoints require authentication
- ✅ Authorization: Users can only manage their own nodes
- ✅ Heartbeat Mechanism: Track node availability and detect offline nodes
- ✅ Soft Delete: Maintain audit trail when nodes are deregistered
- ✅ Capability Whitelist Enforcement: Node capability claims are validated at registration (
bandwidth_mbps,cpu_cores,memory_gb) - ✅ Task-Type Registry Enforcement: Task intake checks canonical task types, runtime limits, WASM policy, and minimum capability requirements
- ✅ Node Eligibility Gate: Task submission is rejected when the online registry cannot satisfy
min_nodesfor the task policy - ℹ️ Current Visibility Model: Node/task list endpoints are authenticated (JWT required) and visible to authenticated users; node ownership controls mutation (delete/heartbeat)
Endpoints:
GET /api/v1/health- Health check ✅POST /api/v1/auth/register- Register user account ✅POST /api/v1/auth/login- Login and get JWT token ✅POST /api/v1/nodes- Register node (requires auth) ✅GET /api/v1/nodes- List all nodes ✅GET /api/v1/nodes/{id}- Get specific node ✅DELETE /api/v1/nodes/{id}- Delete node (requires ownership) ✅PUT /api/v1/nodes/{id}/heartbeat- Update heartbeat; returnshealth_score,node_status,assigned_taskswithtask_type+execution_status✅GET /api/v1/nodes/{id}/heartbeat/activity- Task connect/disconnect events for a node ✅GET /api/v1/nodes/{id}/gateway-sessions- Active relay sessions for gateway nodes (cleartext token included) ✅ NEWPOST /api/v1/tasks- Submit task (requires auth) ✅GET /api/v1/tasks- List all tasks ✅GET /api/v1/tasks/{id}- Get specific task ✅POST /api/v1/tasks/{id}/result- Submit node execution result with optional ZK proof ✅ NEWPOST /api/v1/proofs/verify- Verify ZK proof (requires auth) ✅GET /api/v1/cluster/stats- Cluster statistics ✅
Validation Rules:
- Node IDs: 1-64 chars, alphanumeric + hyphens/underscores
- Node types:
compute,gateway,storage,validator,open_internet,any - Bandwidth: 10-100,000 Mbps
- CPU cores: 1-256
- Memory: 1-2,048 GB
- Task types:
federated_learning,zk_proof,wasm_execution,computation,connect_only - Min nodes: 1-1000
- Execution time: 1-3600 seconds
Purpose: Command-line interface for system management
# Start a compute node
ambient-vcp node --id node-001 --region us-west --node-type compute
# Start connect_only data-plane gateway on an open_internet node
ambient-vcp gateway --listen 0.0.0.0:7000 --sessions-file ./gateway-sessions.json
# Start a coordinator
ambient-vcp coordinator --cluster-id cluster-001 --strategy weighted
# Check node health
ambient-vcp healthGateway sessions file format (gateway-sessions.json):
[
{
"session_id": "sess_123",
"session_token": "cs_your_ephemeral_token",
"egress_profile": "allowlist_domains",
"destination_policy_id": "policy_web_basic_v1",
"allowed_destinations": ["*.example.com", "1.1.1.1"],
"expires_at_epoch_seconds": 1735689600
}
]Purpose: Privacy-preserving, operator-only node inspection
🔒 Privacy & Security Design:
- ✅ Local-only access: Binds strictly to
127.0.0.1(no external network access) - ✅ Operator-only: Only the node owner can access this interface
- ✅ Read-only: No mutation or control of execution state
- ✅ Privacy-preserving: Does NOT expose private payloads, secrets, or sensitive data
- ✅ No telemetry: Does NOT send data to centralized systems or enable cross-node visibility
- ✅ Optional: Disabled by default, must be explicitly enabled
Usage:
# Start a node with local observability enabled
ambient-vcp node --id node-001 --region us-west --node-type compute \
--observability --observability-port 9090
# The node will print a curl command on startup:
# curl http://127.0.0.1:9090/node/status | jq
# Inspect your node (example output):
curl http://127.0.0.1:9090/node/status | jqExample Response:
{
"node_region": "us-west",
"node_type": "compute",
"uptime_seconds": 3600,
"current_workload": "generation",
"resources": {
"cpu_percent": 45.2,
"memory_percent": 62.8,
"temperature_c": 68.0
},
"trust_summary": {
"trust_threshold": 0.7,
"last_trust_score": 0.85,
"lineage_hash": "abc123...",
"models_used": 2
},
"health_score": 0.78,
"safe_mode": false,
"timestamp": 1771453109
}Architecture:
- Strict separation: observability MAY read execution state, but execution MUST NEVER depend on observability
- No blocking operations that could affect node performance
- Exposes only high-level, non-sensitive metrics (uptime, resource usage, trust scores)
- Trust decision metadata (scores, thresholds, hashes) - no payloads or model inputs
Purpose: Time-integrated efficiency monitoring based on the AILEE paper
The AILEE framework introduces an energy-weighted optimization gain functional ∆v that accumulates performance gain over time while penalising inertia and off-resonant operation:
∆v = Isp · η · e^(−α·v₀²) · ∫ P_input(t) · e^(−α·w(t)²) · e^(2α·v₀·v(t)) / M(t) dt
- 📐
AileeMetric: Accumulates successive telemetry samples viaintegrate()and exposesdelta_v()at any point in time - 📋
AileeSample: Per-interval telemetry snapshot — compute/power inputP_input, workloadw, adaptation velocityv, and model inertiaM - 🎛️
AileeParams: Configurable resonance sensitivityα, efficiency coefficientη, specific factorIsp, and reference statev₀ - 🔒 Overflow-safe: both exponential resonance gates are clamped to prevent
f64overflow for large telemetry values
Usage:
use ailee_trust_layer::metric::{AileeMetric, AileeSample};
let mut metric = AileeMetric::default();
metric.integrate(&AileeSample::new(100.0, 0.5, 1.2, 10.0, 1.0)); // P, w, v, M, dt
let gain = metric.delta_v(); // dimensionless efficiency gainPurpose: Keep nodes operational and internet-capable even when disconnected from the API endpoint
Answer to "Can we connect nodes and power internet while disconnected from the API?"
Yes. TheLocalSessionManagerruns inOfflineControlPlanemode when the WAN is up but the API is unreachable. Nodes can now share verified policy snapshots directly with each other — no central server needed.
- 🔗
PeerPolicySyncMessage: A serialisable, SHA3-256-integrity-protected snapshot of a node's egress policies and verification keys — covers full policy content (IDs and destinations) so tampering with allowed destinations also invalidates the hash - 📤
LocalSessionManager::export_peer_sync(): Snapshot the current policy cache for distribution to peers - 📥
LocalSessionManager::import_peer_sync(): Non-destructively merge policies from a peer — existing local entries are never overwritten, preventing a compromised peer from downgrading local policies - 📋 Every import is appended to the local audit queue with event type
peer_sync_applied - ✅ Works in
OfflineControlPlane,NoUpstream, andOnlineControlPlanestates
Node states:
| State | API reachable | WAN up | Internet egress | Peer sync |
|---|---|---|---|---|
OnlineControlPlane |
✅ | ✅ | ✅ | ✅ |
OfflineControlPlane |
❌ | ✅ | ✅ (cached policies) | ✅ |
NoUpstream |
❌ | ❌ | ❌ | ✅ (receive only) |
Usage:
// Node A (has fresh policies) → exports a snapshot
let msg = node_a_mgr.export_peer_sync("node-A");
// Node B (API offline, stale cache) → imports non-destructively
let added = node_b_mgr.import_peer_sync(&msg)?;
// node-B can now activate sessions and route traffic using the synced policiesPurpose: Real-time monitoring interface
- 📊 Real-time cluster metrics visualization
- 🖥️ Interactive node registration
- 📈 Health score monitoring
- 🔄 Auto-refresh every 5 seconds
- 🎨 Modern gradient UI design
- 👁️ Owner-only node observability (v2.1.0): "View" button for local node status inspection
Purpose: Local wave-native physics simulation powering the feen_resonator node type and feen_connectivity task type
FEEN repository: https://github.com/dfeen87/FEEN
FEEN is a Duffing-resonator physics engine — VCP acts as the orchestrator while FEEN remains a self-contained, local physics backend. The integration exposes three minimal REST endpoints (/api/v1/simulate, /api/v1/coupling, /api/v1/delta_v) and keeps FEEN internals fully hidden behind a clean Rust trait boundary.
New VCP primitives introduced:
| Primitive | Kind | Description |
|---|---|---|
feen_resonator |
Node type | Wraps a FEEN resonator's physical state (x, v), coupling config, and accumulated ∆v |
feen_connectivity |
Task type | Uses FEEN to compute resonance, interference, stability, and ∆v across a set of nodes |
Core Rust types (crates/ambient-node/src/feen.rs):
- 🔧
ResonatorConfig— resonator parameters:frequency_hz,q_factor(damping),beta(nonlinearity) - 📍
ResonatorState— physical state snapshot: displacementx, velocityv,energy,phase - 🔗
CouplingConfig— directed coupling between two resonators:source_id,target_id,strength,phase_shift - ⚡
Excitation— drive signal:amplitude,frequency_hz,phase - 🧩
FeenEnginetrait — async interface (simulate_resonator,update_coupling) that allows both the live HTTP client and test mocks to be used interchangeably - 🌐
FeenClient— HTTP client that posts to the FEEN REST API (/api/v1/simulate,/api/v1/coupling) - 🏗️
FeenNode— stateful VCP node that wraps aFeenClient, owns the currentResonatorState, and accumulates the AILEE ∆v metric across ticks
FEEN-side REST API (feen-changes/):
| Endpoint | Method | Description |
|---|---|---|
/api/v1/simulate |
POST | Stateless single-step simulation of a resonator |
/api/v1/coupling |
POST | Apply a coupling update between two resonators |
/api/v1/delta_v |
POST | Compute the AILEE ∆v metric for a sequence of telemetry samples |
Usage:
use ambient_node::feen::{FeenClient, FeenNode, ResonatorConfig, Excitation};
// Connect to a locally-running FEEN instance
let client = FeenClient::new("http://localhost:8080".to_string());
let config = ResonatorConfig { frequency_hz: 440.0, q_factor: 10.0, beta: 0.0 };
let mut node = FeenNode::new(client, config);
// Drive the resonator one time step (dt = 1 ms)
let excitation = Excitation { amplitude: 1.0, frequency_hz: 440.0, phase: 0.0 };
node.tick(&excitation, 0.001).await?;
// Read the accumulated efficiency gain
println!("∆v = {}", node.delta_v());Architectural invariants:
- 🔒 Each
/api/v1/simulatecall is stateless — state is owned by VCP, never by FEEN - 🔒 No persistent identity, session, or user semantics are introduced in FEEN
- 🔒
FeenNodeuses theFeenEnginetrait, keeping the HTTP transport swappable for tests - 🔒 ∆v is computed locally by VCP's
AileeMetric, not delegated to FEEN
✅ Performance: Near-native execution speed
✅ Memory Safety: Zero-cost abstractions with compile-time guarantees
✅ WASM Support: First-class support via WasmEdge
✅ Concurrency: Tokio async runtime for high-throughput systems
✅ Production-Ready: Strong type system prevents bugs
- Runtime: Tokio (async/await)
- Web Framework: Axum 0.7
- Serialization: Serde + JSON
- Cryptography: SHA3, Ring
- WASM: WasmEdge SDK
- API Docs: OpenAPI/Swagger (utoipa)
- Testing: Tokio Test + Integration Tests
Get a production-ready distributed AI platform in 5 minutes!
When you clone this repo, you immediately get:
- ✅ REST API Server with OpenAPI/Swagger docs
- ✅ Federated Learning with differential privacy
- ✅ Zero-Knowledge Proofs (Groth16, sub-second verification)
- ✅ WASM Execution Engine with sandboxing
- ✅ Web Dashboard for real-time monitoring
- ✅ AILEE ∆v Metric for continuous efficiency monitoring (new)
- ✅ Offline-First + Peer Policy Sync — nodes keep working and routing internet traffic even without the API endpoint (new)
- ✅ HTTP CONNECT Proxy — browsers on offline nodes tunnel HTTPS through a connected relay node, bypassing
ERR_INTERNET_DISCONNECTED(new) - ✅ 274 Passing Tests + Zero compiler warnings
- ✅ Complete Documentation (15+ guides)
- ✅ Non-Commercial License - Free for research, personal, and non-profit use
👉 See Full Benefits Guide - Learn who benefits and how to use it
- Rust: 1.75 or later
- WasmEdge: (Optional, for WASM execution features)
- Tools: curl, jq (for demo script)
# Clone the repository
git clone https://github.com/dfeen87/Ambient-AI-VCP-System.git
cd Ambient-AI-VCP-System
# Build the project (zero warnings!)
cargo build --release
# Run all tests (274 tests)
cargo test# Start the REST API server
cargo run --bin api-server
# Server starts on http://localhost:3000
# Swagger UI: http://localhost:3000/swagger-ui# Run the complete multi-node demo
./demo/run-demo.sh
# This will:
# 1. Start the API server (if not running)
# 2. Register 3 nodes across different regions
# 3. Submit federated learning task
# 4. Submit ZK proof task
# 5. Verify proofs
# 6. Display cluster statisticsThe dashboard is served by the API server itself:
# Start API server first
cargo run --bin api-server
# Open dashboard
open http://localhost:3000/| Component | Unit Tests | Integration Tests | Load Tests | Total |
|---|---|---|---|---|
| ambient-node | 91 | 17 | - | 108 |
| ailee-trust-layer | 38 | - | - | 38 |
| api-server | 36 | 24 | 2 | 62 |
| federated-learning | 8 | - | - | 8 |
| mesh-coordinator | 21 | - | - | 21 |
| wasm-engine | 6 | - | - | 6 |
| zk-prover | 8 | - | - | 8 |
| TOTAL | 208 | 41 | 2 | 254 |
# Run all tests
cargo test
# Run specific crate tests
cargo test -p api-server
cargo test -p ambient-node
# Run with logging
RUST_LOG=info cargo test
# Run integration tests only
cargo test --test integration_testInput Validation Tests:
# Test invalid node_id (empty string) - FAILS ✅
# Test invalid node_type (not in allowed list) - FAILS ✅
# Test invalid bandwidth (negative value) - FAILS ✅
# Test valid node registration - PASSES ✅Node Ownership & Lifecycle:
- ✅ JWT Authentication: All node operations require valid JWT tokens
- ✅ User Registration: Secure account creation with bcrypt password hashing
- ✅ Node Ownership: Nodes linked to user accounts via foreign key constraint
- ✅ Authorization: Users can only manage their own nodes
- ✅ Soft Delete: Nodes can be deregistered with audit trail (deleted_at timestamp)
- ✅ Heartbeat Tracking: Detect stale/offline nodes via last_heartbeat timestamp
- ℹ️ Read Visibility Emphasis:
GET /nodesandGET /tasksare authenticated endpoints and currently return shared authenticated views; ownership checks apply to node management actions
Security Best Practices:
- ✅ Parameterized SQL queries prevent injection attacks
- ✅ Error messages sanitized to prevent information leakage
- ✅ 404 responses for both missing and unauthorized resources
- ✅ Foreign key constraints ensure referential integrity
- ✅ Production mode enforces strong JWT secrets (min 32 characters)
Protected Endpoints:
POST /api/v1/nodes - Register node (requires JWT)
POST /api/v1/nodes/{id}/reject - Reject node (requires ownership)
DELETE /api/v1/nodes/{id} - Delete node (requires ownership)
PUT /api/v1/nodes/{id}/heartbeat - Update heartbeat (requires ownership)
GET /api/v1/nodes/{id}/heartbeat/activity - Task activity events (requires ownership)
GET /api/v1/nodes/{id}/gateway-sessions - Active relay sessions (requires ownership)
POST /api/v1/tasks - Submit task (requires JWT)
POST /api/v1/tasks/{id}/result - Submit node result + optional ZK proof (requires node ownership)
DELETE /api/v1/tasks/{id} - Delete task (requires owner/admin)
POST /api/v1/proofs/verify - Verify proof (requires JWT)
GET /metrics - Prometheus metrics (admin JWT required)
GET /api/v1/admin/users - Admin users endpoint (admin JWT required)
POST /api/v1/admin/throttle-overrides - Admin throttle override endpoint
GET /api/v1/admin/audit-log - Admin audit endpoint (admin JWT required)
GET /api/v1/auth/api-key/validate - API-key validation endpoint (API key required)
Public Endpoints:
GET /api/v1/health - Health check
POST /api/v1/auth/register - Register account
POST /api/v1/auth/login - Login and get JWT
POST /api/v1/auth/refresh - Rotate refresh token / issue new access token
Authenticated JWT Endpoints (non-admin):
GET /api/v1/nodes - List nodes
GET /api/v1/nodes/{id} - Get node details
GET /api/v1/tasks - List tasks
GET /api/v1/tasks/{id} - Get task details
GET /api/v1/cluster/stats - Cluster statistics
All API endpoints validate input data before processing:
Node Registration:
- ✅ Node ID length and character validation
- ✅ Region name validation
- ✅ Node type whitelist enforcement
- ✅ Capability range validation
- ✅ User authentication required
Task Submission:
- ✅ Task type whitelist enforcement
- ✅ WASM module size limits (10MB)
- ✅ Min/max node count validation
- ✅ Execution time limits
- ✅ User authentication required
User Registration:
- ✅ Username: 3-32 characters, alphanumeric + underscores
- ✅ Password: Minimum 8 characters
- ✅ Unique username enforcement
- ✅ Password strength requirements
Error Responses:
{
"error": "bad_request",
"message": "node_id cannot exceed 64 characters"
}WASM execution is restricted by:
- 🔒 Memory: 512MB default (configurable)
- ⏱️ Timeout: 30 seconds
- 🔢 Max instructions: 10 billion
- 🚫 No filesystem access
- 🚫 No network access
- ✅ Cryptographic operations allowed
Nodes enter safe mode when:
- 🌡️ Temperature > 85°C
- ⏱️ Latency > 100ms
⚠️ Error count > 25 consecutive failures
Score = (bandwidth × 0.4) + (latency × 0.3) + (compute × 0.2) + (reputation × 0.1)
Components:
- Bandwidth (40%): Max 1000 Mbps
- Latency (30%): Lower is better, max 100ms
- Compute (20%): CPU + Memory availability
- Reputation (10%): Task success rate
# Quick start with Docker Compose
docker-compose up -d
# Access the API
curl http://localhost:3000/api/v1/health# Deploy to Render.com
render blueprint apply
# Your API will be at:
# https://ambient-ai-vcp-system.onrender.com# Build and push image
docker build -t registry/ambient-vcp:latest .
docker push registry/ambient-vcp:latest
# Deploy to Kubernetes
kubectl apply -f k8s/deployment.yaml
kubectl apply -f k8s/service.yamlBefore deploying to production:
- Set
ENVIRONMENT=productionenvironment variable - Generate secure
JWT_SECRET(min 32 chars):openssl rand -base64 32 - Configure
DATABASE_URLwith PostgreSQL connection string - Use managed PostgreSQL with SSL/TLS enabled
- Enable HTTPS (automatic with Render.com, configure for self-hosted)
- Configure proper CORS origins (not
*in production) - Set appropriate rate limits for your traffic
- Configure database backups
- Monitor logs for security events
- Never commit
.envor secrets to git - Review and run database migrations
- Test authentication flow in production environment
Environment Variables Required:
# Authentication (REQUIRED)
JWT_SECRET=<generate-with-openssl-rand-base64-32>
JWT_EXPIRATION_HOURS=24
# Database (REQUIRED)
DATABASE_URL=postgres://user:password@host:5432/dbname
DB_MAX_CONNECTIONS=10
DB_MIN_CONNECTIONS=2
# Environment
ENVIRONMENT=production
# Optional
PORT=3000
HOST=0.0.0.0First-Time Setup:
# 1. Run database migrations
cargo run --bin api-server
# 2. Create admin user
curl -X POST https://your-api.com/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"secure-password"}'
# 3. Test authentication
curl -X POST https://your-api.com/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"secure-password"}'
# 4. Access dashboard
# Visit https://your-api.com and login| Metric | Target | Actual Performance | Status |
|---|---|---|---|
| Task Assignment Latency | < 100ms | < 0.003ms (2.75µs avg) | ✅ Exceeds by 33,333x |
| WASM Execution | < 2x native slowdown | ~1.5x slowdown | ✅ Achieved |
| Proof Generation | < 10s | ~1-2s | ✅ 5-10x faster |
| Proof Verification | < 1s | < 100ms | ✅ 10x faster |
| Concurrent Tasks | 1000+ | 171,204 tasks/sec | ✅ 171x capacity |
| Node Capacity | 10,000+ | 343,573 nodes/sec, 10,000+ stored | ✅ Validated at scale |
Load Test Results:
- ✅ Successfully handled 1,000 concurrent task submissions in 6ms
- ✅ Successfully registered 10,000 nodes in 29ms
- ✅ Stress tested with 1,000 nodes + 1,000 tasks simultaneously
- ✅ Average task assignment latency: 2.75 microseconds
The test files included in this repository are not just unit tests — they serve as a living, runnable specification of the Ambient AI VCP System.
Each test encodes the exact return contract for:
- AILEE Trust Layer (
GenerationResult) - AmbientNode health, safety, and reputation
- MeshCoordinator routing, selection, and reward flow
- FederatedAggregator FedAvg rounds and versioning
These tests ensure that:
- the system’s behavior is deterministic
- return structures remain stable across versions
- contributors can understand the architecture by running it
- regressions are caught immediately
- the repo doubles as documentation and verification
If you are extending or modifying the system, update the tests to reflect the new contract.
If you are integrating the system, use these tests as the authoritative reference for expected behavior.
- ✅ Ambient node implementation
- ✅ WASM execution engine
- ✅ Mesh coordinator
- ✅ ZK proof placeholder
- ✅ CLI tool
- ✅ Basic documentation
- ✅ Federated learning (FedAvg + Differential Privacy)
- ✅ Multi-node demo application
- ✅ Web dashboard (Real-time monitoring)
- ✅ REST API server (Axum + OpenAPI/Swagger)
- ✅ Render.com deployment configuration
- ✅ Production ZK proofs (Groth16 on BN254)
- ✅ Zero compiler warnings
- ✅ Comprehensive input validation
- ✅ Integration test suite (13 tests)
- ✅ Improved error handling
- ✅ Enhanced documentation
- ✅ Production ZK proofs with Groth16
- ✅ JWT Authentication - Secure token-based auth with configurable expiration
- ✅ User Registration & Login - Account creation with bcrypt password hashing
- ✅ Node Ownership - Foreign key linking nodes to user accounts
- ✅ Authorization - Users can only manage their own nodes
- ✅ Node Lifecycle Management - Delete nodes with ownership verification
- ✅ Heartbeat Mechanism - Track node availability and detect offline nodes
- ✅ Dashboard Authentication - Integrated login/logout with JWT storage
- ✅ Security Documentation - Comprehensive guides and best practices
- ✅ Data Persistence - PostgreSQL with migrations
- ✅ AILEE ∆v Metric — energy-weighted optimization gain functional from the AILEE paper; accumulates telemetry samples and produces a dimensionless efficiency score for comparative diagnostics
- ✅ Overflow-safe resonance gates — exponential terms in ∆v are clamped to
[-700, 700]before evaluation to preventf64overflow under extreme telemetry values - ✅ Peer-to-Peer Policy Sync — nodes share cryptographically-verified policy snapshots directly without the control plane, keeping the mesh operational and internet-capable in
OfflineControlPlaneandNoUpstreamstates - ✅ Full-content integrity hashing —
PeerPolicySyncMessagehashes policy IDs and allowed destinations and full verification-key bytes, ensuring that modifications to any component (policy IDs, destinations, or keys) invalidate the hash - ✅ Persistent chained audit log — every
import_peer_synccall appends apeer_sync_appliedrecord to a SHA3 hash-chained audit queue, providing a tamper-evident history of all policy imports - ✅ Ed25519 session lease signing —
SessionLeasepayloads are signed with Ed25519 and verified fully offline, enabling a node to authenticate new sessions without ever contacting the control plane - ✅ Three-state node model —
LocalSessionManagertracksOnlineControlPlane,OfflineControlPlane, andNoUpstreamstates, enforcing appropriate policy restrictions at each tier - ✅ Mesh connectivity analysis & peer routing —
PeerRouterclassifies each node's reachability and resolves forwarding paths; Universal nodes are preferred over Open nodes to minimise relay depth - ✅ Real-time session revocation —
DataPlaneGateway::revoke_session()removes a session from the live store instantly, stopping traffic relay the moment a connect session ends - ✅ 70 new tests across
ailee-trust-layerandambient-nodecrates
- ✅ Internet Path Routing —
PeerRouteradded tomesh-coordinator; classifies node reachability and resolves direct or relay forwarding paths throughUniversal/Opennodes - ✅ Gateway Session Lifecycle —
DataPlaneGatewaygainsadd_session()andrevoke_session()for runtime session management; relaying stops the moment a session is revoked - ✅ Non-Blocking Password Hashing —
hash_password_async()offloads bcrypt tospawn_blocking; cost configurable viaBCRYPT_COSTenv var (default 12) - ✅ Pepper Config Polish — all pepper env vars pre-configured in
docker-compose.ymland.env.example; missing-pepper warnings downgraded todebugin development - ✅ Heartbeat-Triggered Task Assignment —
update_node_heartbeatnow callsassign_pending_tasks_for_node, closing the gap where live nodes only received tasks at registration time - ✅ Self-Hosted Dashboard Fonts — Syne and JetBrains Mono bundled as woff2 assets; no CDN dependency, dashboard works fully offline and in air-gapped deployments
- ✅ Safe-Default Backhaul Routing —
monitor_only = truedefault prevents unintended kernel routing changes;ip ruleentries scoped to source IP; health probes bound to the interface under test for accurate per-interface metrics
- ✅ WAN-side Relay QoS —
RelayQosManagerinstalls LinuxtcHTB + FQ-CoDel rules on the active WAN backhaul interface when aconnect_onlysession starts on anopen_internetoranynode; relay traffic receives a guaranteed minimum bandwidth and a burst ceiling while node-internal traffic is protected by a separate reserved floor — eliminating congestion between relay streams and node control traffic - ✅ DSCP/TOS Classification — egress packets already marked with DSCP EF (value 46) are steered into the high-priority relay HTB class via a
u32filter; the HTB default class is also set to the relay class so unmarked relay TCP connections benefit without requiring end-to-end DSCP support - ✅ Bufferbloat Reduction — an FQ-CoDel qdisc is attached to the relay class by default, providing active queue management and per-flow fairness that keeps relay session latency low even under sustained throughput
- ✅
BackhaulManagerintegration — newactivate_relay_qos()anddeactivate_relay_qos()methods apply or remove the WAN QoS rules against the currently active interface;RelayQosConfigis part ofBackhaulConfigwith safe production defaults (10 Mbps guaranteed, 1 Gbps ceiling, 1 Mbps node floor) - ✅ 10 new tests across
relay_qosunit tests andBackhaulManagerintegration tests
- ✅ Hardware Keepalive —
BackhaulManager::hardware_keepalive_tick(now_secs)emits periodic low-level keepalive probes at a configurable interval (HardwareKeepaliveConfig), preventing NAT and stateful-firewall session expiry on idleconnect_onlyrelay links - ✅ Node Heartbeat Tracking —
NodeRegistry::record_heartbeat(id, now_secs)andis_node_alive(id, now_secs, timeout_secs)give the mesh coordinator a lightweight, no-network-round-trip liveness signal for each registered node - ✅
internet_required()onLocalSessionManager— returnstruewhen any active local session needs outbound internet, enablingBackhaulManagerto prioritise WAN interface selection for relay tasks
- ✅
feen_resonatornode type — new VCP node wrapping a FEEN Duffing resonator; owns physical state(x, v), coupling configuration, and anAileeMetricaccumulator that tracks ∆v across ticks - ✅
feen_connectivitytask type — new VCP task that uses FEEN to compute resonance, interference, stability, and ∆v across a group of resonator nodes - ✅
FeenClientRust HTTP client — posts to the local FEEN REST API (/api/v1/simulate,/api/v1/coupling) usingreqwest; error handling propagates FEEN API status codes as typedResulterrors - ✅
FeenEnginetrait boundary — clean async trait separates VCP logic from the FEEN transport, keeping the HTTP client swappable with in-process mocks for unit tests - ✅ Stateless simulation contract — resonator state lives entirely in VCP; each
/api/v1/simulatecall is a pure function(config, state, input, dt) → state′with no server-side persistence - ✅ FEEN-side minimal REST surface — three endpoints added under
feen-changes/:/simulate,/coupling,/delta_v; no FEEN internals exposed beyond what VCP needs - ✅ 12 new unit tests covering construction, physics mock, error propagation, coupling updates, and JSON serialisation round-trips for all FEEN VCP types
- 🔗 FEEN repository: https://github.com/dfeen87/FEEN
- Authentication & authorization (JWT/API keys) ✅ COMPLETED
- Data persistence (PostgreSQL) ✅ COMPLETED
- Rate limiting (tiered endpoint limits) ✅ COMPLETED
- Metrics & monitoring (Prometheus)
- Byzantine fault tolerance
- P2P networking layer (libp2p)
- Production security audit
- Token refresh mechanism ✅ COMPLETED
- Multi-factor authentication
- Mobile node support
- Advanced orchestration algorithms
- Cross-chain integration
- Decentralized governance
ambient-vcp/
├── Cargo.toml # Workspace configuration
├── Cargo.lock # Dependency lock file
├── README.md # This file
├── CITATION.cff # Citation metadata for research
├── LICENSE
├── Dockerfile # Docker container configuration
├── docker-compose.yml # Multi-container orchestration
├── render.yaml # Render.com deployment config
├── .env.example # Environment variables template
│
├── crates/ # Rust workspace crates
│ ├── ambient-node/ # Node implementation + 110 tests
│ │ ├── src/offline.rs # LocalSessionManager + PeerPolicySyncMessage
│ │ └── src/connectivity/ # Multi-backhaul, hotspot, tether subsystems
│ ├── ailee-trust-layer/ # AILEE Trust Layer + 38 tests
│ │ └── src/metric.rs # AileeMetric (∆v), AileeSample, AileeParams
│ ├── wasm-engine/ # WASM execution runtime + 6 tests
│ ├── zk-prover/ # ZK proof generation (Groth16) + 8 tests
│ ├── mesh-coordinator/ # Task orchestration + peer routing + 21 tests
│ ├── federated-learning/ # FL protocol + 8 tests
│ ├── api-server/ # REST API server + 62 tests (36 unit + 24 integration + 2 load/smoke)
│ └── cli/ # Command-line interface
│
├── docs/ # Documentation
│ ├── API_REFERENCE.md # API endpoint documentation
│ ├── ARCHITECTURE.md # System architecture details
│ ├── CONTRIBUTING.md # Contribution guidelines
│ ├── DEPLOYMENT.md # Deployment instructions
│ ├── GLOBAL_NODE_DEPLOYMENT.md # Global node setup guide
│ ├── LANGUAGE_DECISION.md # Technology stack rationale
│ ├── IMPLEMENTATION_SUMMARY.md # Implementation overview
│ ├── PHASE1_SUMMARY.md # Phase 1 development summary
│ ├── PHASE2_SUMMARY.md # Phase 2 development summary
│ ├── PHASE2.md # Phase 2 planning document
│ ├── TESTING_SUMMARY.md # Testing strategy and results
│ └── whitepapers/ # Research whitepapers
│ ├── AMBIENT_AI.md # Ambient AI whitepaper
│ └── VCP.md # VCP protocol whitepaper
│
├── .github/ # GitHub configurations
│ └── workflows/ # CI/CD pipelines
│ └── ci.yml # Main CI workflow (tests, lint, build)
│
├── demo/ # Demonstration scripts
│ ├── README.md # Demo documentation
│ └── run-demo.sh # Multi-node demo script
│
├── scripts/ # Utility scripts
│ └── deploy-global-node.sh # Global node deployment automation
│
├── examples/ # Example implementations
│ └── hello-compute/ # Simple WASM compute example
│
├── wasm-modules/ # WASM module storage
│ └── README.md # WASM modules documentation
│
├── v0.3-reference/ # Legacy reference implementation
│ ├── README.md # v0.3 documentation
│ ├── package.json # Node.js dependencies (legacy)
│ └── *.js # JavaScript implementation files
│
└── archive/ # Archived files
└── README_OLD.md # Previous README version
Key Directories:
crates/- Core Rust implementation with 246 passing testsdocs/- Comprehensive documentation and whitepapers.github/workflows/- Automated CI/CD with tests, linting, and buildscrates/api-server/assets/- Embedded dashboard + custom Swagger UI assetsscripts/- Deployment and utility scripts
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests (
cargo test) - Ensure zero warnings (
cargo build --release) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is available for non‑commercial use only under the terms of the included LICENSE file. Commercial use requires a separate paid license.
- WasmEdge for WASM runtime
- arkworks for production ZK proof libraries (Groth16)
- Axum for the web framework
- The decentralized computing community for verifiable computation research
This project was developed with a combination of original ideas, hands‑on coding, and support from advanced AI systems. I would like to acknowledge Microsoft Copilot, Anthropic Claude, Google Jules, and OpenAI ChatGPT for their meaningful assistance in refining concepts, improving clarity, and strengthening the overall quality of this work.
- 📖 Documentation: See
/docsdirectory - 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions