// Chapter 03 · Protocol
ParalleliX AI Lifecycle
The path every ParalleliX AI inference request walks.
Pipeline overview
// 3.0 · 9 steps · coord plane + exec plane
The numbering is canonical and the shape is fixed. A ParalleliX AI inference request, the live path, runs the pipeline whole on one node and skips Segment and Aggregate. The general parallelizable-workload path uses every step. Only the payload and the parties change between tasks.
// 01
Receive request
// 02
Segment
// 03
Schedule
// 04
Dispatch
// 05
Execute
// 06
Proof-of-Execution
// 07
Validate
// 08
Aggregate
// 09
Settle / stream rewards
Three stages
// 3.0 · grouped by plane
The nine steps cluster into three stages. Ingestion runs on the coordination plane before any hardware is touched. Execution moves to the operator plane and produces the only irreducible cryptographic primitive at launch: the Proof-of-Execution commitment. Settlement returns to the coordination plane for validation, aggregation, and payment.
// STAGE 1
01 · 02 · 03
INGESTION
Receive, segment (general path), schedule. Coordination plane.
// STAGE 2
04 · 05 · 06
EXECUTION
Dispatch, execute, produce PoE. Execution plane.
// STAGE 3
07 · 08 · 09
SETTLEMENT
Validate, aggregate (general path), settle. Coordination plane.
Ingestion
// 3.1 · receive · segment · schedule
Three steps run before the payload leaves the coordinator. They check credits, segment the general-path workload into independent atoms (an AI inference request stays whole), and match the unit of work to a node.
// Coordination plane · 01 → 033 steps
- // 01
Receive request
A request enters the coordinator. The live demand source is ParalleliX AI: a single inference request carrying a prompt, a model reference, and $PRLX credits deposited once on-chain and metered off-chain. The intake API checks the credit balance, allocates a unique request_id, and enqueues the request for scheduling. An inference request is the unit of work: it is autoregressive and is served whole by one node, never split. The general parallelizable-workload path (rendering, scientific sweeps) reuses the same pipeline with the optional Segment and Aggregate steps described below.
- ParalleliX AI inference: prompt, model reference, off-chain-metered $PRLX credits. The live path.
- Parameters: workload_class, hardware_tier, priority (Standard / Expedited / Urgent), deadline_seconds.
- Credits checked before request_id allocation. Deposits sit in an on-chain vault (withdraw any time); spending is metered off-chain.
- Failure: insufficient credit balance, malformed request, unknown workload class.
Illustrative inference request (pseudocode, not a stable API)
{ "workload_class": "ai.inference", "model": "oss-chat-v1", "hardware_tier": 3, "priority": "standard", "credit_account": "0xe3..." } - // 02
Segment
General-path only. An inference request skips this step: autoregressive generation cannot be split across nodes, so it is dispatched whole. For genuinely parallelizable workloads (rendering, scientific sweeps, big-data map-reduce), the segmenter splits the task into independent sub-tasks bounded by its dependency graph: sub-tasks with no data dependency run in parallel, dependent sub-tasks are sequenced. The third-party submitter path that feeds this step is a future compute marketplace, not the live ParalleliX AI flow.
- AI inference: no segmentation. One request is served whole by one node.
- Parallelizable workloads: sub-task fan-out is bounded by the dependency graph, not by available capacity.
- Each sub-task is assigned a unique 32-byte sub_task_id allocated by the segmenter.
- A general third-party submitter marketplace is a future direction, not the live demand source.
coordinator // segment (general path)
> task_id: prlx_7f3a91c8e2 (render sweep)> dependency graph analysis: 142 independent frames> fan-out: 142 sub-tasks allocated> ai.inference requests skip this step - // 03
Schedule
The unit of work, a whole inference request or a single sub-task on the general path, is matched to a node using four signals applied in a fixed priority order: capability first, capacity second, best-fit third, reputation fourth. The full scheduler logic is covered in Part IV. At launch reputation is a constant 1.0x; the signal activates later. For AI inference, parallelism is request-level: many requests route across the pool concurrently and throughput scales with the number of online nodes.
- Capability match: hardware tier, workload class, declared features. Binary filter first.
- Capacity-aware queue: work enters a priority queue ordered by complexity, not arrival order.
- Best-fit allocation: smallest qualifying node that clears the deadline. Minimises capacity fragmentation.
- Reputation weighting: a planned signal; constant 1.0 at launch.
scheduler // match
> req_a3f1: class ai-inference → nd_4f7c (tier 3, H100×4)> req_a3f2: class ai-inference → nd_9b2a (tier 3, A100×4)> matched 142 requests across 38 nodes> dispatching...
Execution
// 3.2 · dispatch · execute · proof-of-execution
Steps 04 through 06 run on the execution plane. This is where the payload leaves the coordinator's control and where the only irreducible accountability primitive at launch, the PoE hash commitment, is produced.
// Execution plane · 04 → 063 steps
- // 04
Dispatch
The whole inference request, or a single sub-task on the general path, is encrypted to the assigned node's RSA public key before transmission. Only that node can decrypt the payload it was given. In-transit confidentiality is a default, not an option, and dispatch is point-to-point, not broadcast.
- Asymmetric envelope per node: coordinator encrypts to node.pub, never holds plaintext mid-transit.
- Dispatch is point-to-point; no node sees another node's payload.
coordinator // dispatch
> encrypt req_a3f1 → nd_4f7c (RSA to node.pub)> encrypt req_a3f2 → nd_9b2a (RSA to node.pub)> 142 / 142 encrypted and dispatched - // 05
Execute
The node decrypts the payload and runs it on local hardware. An inference request runs whole: the node generates the full autoregressive output. Execution time is bounded by the node's declared capacity and the deadline. If the node does not return within the deadline, the work is re-dispatched to a fresh node and the original return is discarded. The deadline timer starts at decrypt, not at dispatch.
- Deadline timer starts at decrypt, not at dispatch.
- Timeout on execute triggers re-dispatch to a fresh node; original result is discarded.
- The execute step is the only slow step. All other hot-path stages are bounded by RSA verification cost.
node // execute
> decrypt req_a3f1 · class ai-inference> exec cuda · autoregressive decode · model oss-chat-v1> done · t=41ms> returning result + PoE commitment - // 06
Proof-of-Execution
The node computes a SHA-256 commitment over the result and signs it. This binds a specific node to a specific result for a specific task. It is not a zero-knowledge proof. Honesty is enforced by sampled re-dispatch (step 07), not by the hash alone. Real zero-knowledge proofs are a research direction, not a current capability.
- PoE = SHA-256(task_id || result || node_id), RSA-signed by the node.
- poe.v1 is the launch commitment scheme. Future schemes ship as poe.v2.
- Proves a specific node returned a specific result. Does not prove the computation was correct.
node // poe · illustrative pseudocode
def proof_of_execution(task_id, result, node_id): return sha256(task_id + result + node_id).digest()# poe: e7b25a91ff2c9a3f41ce6f027a2cb194# signed: rsa_sign(node.key, result || poe)
The live demand at execute: open-source models running on network compute. Each whole inference request streams on its own node across the pool; a single autoregressive request is never split across nodes.
Note·What PoE proves and does not prove
PoE = SHA-256(task_id || result || node_id)
This is a hash commitment, not a zero-knowledge proof. It proves that a specific node produced a specific result for a specific task. It does not, on its own, prove the computation was performed honestly. Honesty is enforced by the redundancy mechanism in Validation and by economic incentives via the staking contract. Real zero-knowledge proofs are a research direction, not yet built.
Settlement
// 3.3 · validate · aggregate · settle
Validation checks PoE commitments and re-dispatches a sampled fraction of completed work for redundancy. Aggregation merges general-path sub-task results into the task-level deliverable; an AI inference request has a single result and skips it. The result returns to the requester. Operators are not paid per request: served work keeps verified uptime high, and uptime drives the daily reward pool.
// Coordination plane · 07 → 093 steps
- // 07
Validate
The coordination layer runs two checks before settlement. First: reconstruct SHA-256(request_id, result, node_id) and compare it to what the node submitted. Mismatches reject outright. Second: a configurable fraction of completed units, whole inference requests or general-path sub-tasks, is re-dispatched to a second, independently selected node, and the two results are compared. Disagreement triggers a third dispatch and a majority decision.
- Hash-commitment check: reconstruct SHA-256(request_id, result, node_id), compare. Mismatch = reject.
- Sampled redundant re-dispatch: a second node re-runs the same unit; results compared.
- Disagreement triggers a third dispatch and majority decision. Persistent disagreement flags all parties.
- Rejected results are dropped and the node flagged; repeated rejection removes the node from the pool.
coordinator // validate
> hash check: ok (SHA-256 reconstructed, matched)> redundant sample: 14 / 142 re-dispatched> all samples agree> 142 / 142 validated · settling - // 08
Aggregate
General-path only. A whole inference request has a single result and skips this step: its output returns directly to ParalleliX AI through the same encrypted channel. For parallelizable workloads, validated sub-task results are aggregated by the coordinator into the task's final output, honouring the original dependency graph (ordering, joins, reductions). The return channel is encrypted to the requester's public key.
- AI inference: single result, no aggregation. The output returns whole to ParalleliX AI.
- Parallelizable workloads: aggregation honours the original dependency graph: order, joins, reductions.
- Return channel is end-to-end encrypted to the requester's pubkey.
- Settlement record is anchored to the chain after the result is finalised.
coordinator // aggregate (general path)
> stitching 142 / 142 sub-task results> dependency graph resolved> result ready · encrypting for requester - // 09
Settle / stream rewards
Operators are paid for staying online, not per request. Serving work keeps a node online, and an online node accrues from the live per-second reward stream weighted by stake × tier. During the bootstrap period, the stream sources from the 25% Operator Rewards bucket, fed via Sablier. In steady state, it sources from a share of ParalleliX AI usage payments, split 85% operators / 10% treasury / 5% infra, settled in $PRLX.
- Bootstrap period: rewards funded from the 25% Operator Rewards allocation (~34,200 $PRLX/day over ~24 months).
- Steady state: a share of ParalleliX AI usage payments, split 85% operators / 10% treasury / 5% infra.
- The 4% transfer tax does NOT fund operator rewards at any point.
- Execution record anchors on-chain in batches: at launch, one commitment per ~10 minutes.
coordinator // settle
> streaming to 38 online nodes> source: bootstrap subsidy (25% bucket)> earned · nd_4f7c: 39.79 $PRLX (streaming)> execution record anchored · batch committed
Caveat·Enforcement at launch
The money path
Where $PRLX moves at each settlement step.
// 01
ParalleliX AI
users deposit $PRLX credits
- $PRLX
// 02
Coordinator
metering + settlement
- bootstrap rewards · 25% bucket
// 03
Operators
paid for verified uptime
// Settlement mechanics
- Bootstrap source
25% Operator Rewards bucket, unlocking linearly (~34,200 $PRLX/day, streamed via Sablier over ~24 months).
Operator rewards come from this allocation. They are pay-for-uptime, not a per-request fee.
- Steady-state source
A share of ParalleliX AI usage payments, split 85% operators / 10% treasury / 5% infra.
Settled in $PRLX. Operators earn the token directly, no separate credit currency.
- Trigger
After validation completes and the PoE commitment is anchored.
Rewards are credited against verified uptime, pooled and settled daily.
- ParalleliX AI credits
Deposited once on-chain, metered off-chain at the coordinator.
The 4% transfer tax routes per documentation.md §8.3. It does not fund operators.
For the full token mechanics, see Token Mechanics.
Failure semantics
// 3.4 · per-stage · recovery model
Every step can fail. The pipeline does not silently drop work: failures cascade to the previous step's retry handler or surface in the task's final state. At launch, failure events surface through coordinator logs; richer Console event surfacing is planned.
// Stage · failure mode · recovery
- Receive request
Insufficient credits, malformed request, unknown workload class.
Final rejection. No request_id allocated, no work scheduled.
- Schedule / dispatch
No node satisfies the capability and deadline constraints.
Work held in priority queue until a candidate appears or the deadline elapses.
- Execute
Node misses the deadline; returns node.deadline_exceeded.
Re-dispatched once to a fresh node. Original return is discarded. The re-dispatch event is surfaced in coordinator logs.
- Proof-of-Execution
Missing or malformed PoE commitment from the node.
Work re-dispatched to a different node. The original attempt earns no uptime credit.
- Validate
Hash mismatch or disagreement on redundant re-dispatch.
Third dispatch triggered; majority decides. Persistent disagreement flags every party for review.
- Settle / credit uptime
A bad PoE result is dropped and the node flagged; repeated bad results remove the node from the active pool.
No slashing, ever. The work is re-dispatched to another node; staked principal is returned in full on unstake.
// Where to go next · reading path