When a node fails (crashes/restarts) during an active compute job, the job's end timestamp (algoStopTimestamp) is set to the moment the node restarts rather than the moment the algorithm actually stopped running. Since payment is calculated as algoStopTimestamp - algoStartTimestamp, the consumer is billed for the full window including the node's downtime time during which no compute was actually happening.
This is distinct from algorithm failure, where billing is intentional (compute resources were allocated and used). In a node failure scenario, the node operator is incorrectly compensated for time they were offline.
Billing should only cover the time the algorithm was verifiably running. The duration between node crash and node restart (T2 → T3) should not be billed.
When a node fails (crashes/restarts) during an active compute job, the job's end timestamp (algoStopTimestamp) is set to the moment the node restarts rather than the moment the algorithm actually stopped running. Since payment is calculated as algoStopTimestamp - algoStartTimestamp, the consumer is billed for the full window including the node's downtime time during which no compute was actually happening.
This is distinct from algorithm failure, where billing is intentional (compute resources were allocated and used). In a node failure scenario, the node operator is incorrectly compensated for time they were offline.
Billing should only cover the time the algorithm was verifiably running. The duration between node crash and node restart (T2 → T3) should not be billed.