Demo (E2E) Guide
A scripted, end-to-end walkthrough that demonstrates dispatch → execution → validation → aggregation → quarantine.
Scenario
- Operators:
matmul→ewise_add→unary_relu→reduce_sum - Sizes: 64×64 · 64×16 for fast laptop runs
- Topology: 1 orchestrator, 2 agents (1 trusted, 1 untrusted)
Topology & Startup
- Start orchestrator (docker-compose or binary)
- Start a trusted agent (registered credentials)
- Start an untrusted agent (default permissionless)
See also: Getting Started · Cloud Deployment
Job Submission
Submit a demo job with embedded inputs (or references) using CLI/curl. Capture job ID.
Expected orchestrator logs:
- Task graph creation → dispatch events → validation receipts → final result
Validation & Quarantine Flow
matmuldispatched to untrusted agent → 2 rounds of Freivalds → accept on matchewise_addon trusted agent → sampled index checks (still applied at low rate)unary_reluon untrusted agent → sampled invariantsreduce_sumon trusted agent → partial recompute on slices
Failure injection:
- Toggle fault in the untrusted agent for
matmul→ Freivalds mismatch → quarantine → reschedule to trusted agent → success
Expected Outputs
- Final scalar result and checksum
- Validation receipts per task (store/print JSON)
See also: Operator Test Vectors · Observability
Troubleshooting
- Agent not visible: check capability advertisement and network settings
- Validation fails intermittently: verify numeric tolerances and deterministic kernels
- Quarantine loop: clear agent state or restart without fault injection
Next Steps
- Automate this flow with a sample
docker-compose.yml - Add dashboards (Prometheus/Grafana) from Observability
Variant: Using Implicit Data
Run the same scenario but pass inputs as references (URIs/handles) instead of embedding data:
- Register datasets in the Data Service or supply
file:///pre‑signedhttps:///s3://links - Observe reduced payload sizes and that validation fetches only sampled slices