Consensus Flow
The node follows this deterministic loop for each request.
Snapshot (EIP‑712)
The provider signs a typed Snapshot with fields:
apiId: bytes32
seqNo: uint256
providerTs: uint64 // unix ms when the provider produced this snapshot
ttl: uint64 // permissible lifetime in ms (0 = no TTL)
contentHash: bytes32 // keccak256 of canonical off‑chain contentThe node verifies:
- Signature recovers to the provider signer for the
apiId. providerTsis withinmaxSkewMsof the block time.- If
ttl > 0,providerTs + ttlhas not passed yet, and also respects anymaxTtlMscap. - (If enabled by a given API)
seqNomonotonicity is enforced byAPIConsensuson finalization.
Pointer & IPFS
Nodes may pin a compact pointer JSON (e.g., including requestId, contentHash, and providerTs) to IPFS.
- If
PINATA_JWTis set, Pinata is used; otherwise the node tries the native IPFS HTTP API (IPFS_API_URL). - The returned
ipfs://…URI is submitted aspointerURIfor auditability.
Backoff, jitter, and confirmations
- Exponential backoff with jitter protects providers during spikes.
- Configurable
CONFIRMATIONShelps avoid reorg hazards on reads. - If
WS_RPC_URLis absent, the node polls fromPOLL_FROM_BLOCK.
Last updated on