This is a local demonstrator of a real proving job, not a hosted proof API. It lets an operator start
the existing Groth16 proving pipeline for the withdrawal fixture, follow its output, and then runs the
existing read-only on-chain checks. It does not send an attest transaction and it cannot interact with a
ZonePortal.
In one terminal, start the local worker:
scripts/start-zone-operator.shIn another, serve the site locally:
cd site
npm run devOpen the local site and use Start local proof job in the Zone Operations Console. The worker listens
only on 127.0.0.1:4317; a deployed GitHub Pages page cannot start a job.
The only accepted job is deposit_and_withdrawal_blocks5-6, Tempo Zones' integration-test fixture on
development chain 1337. It contains one withdrawal and two user transactions. The worker runs:
scripts/zone-prove.shagainst the deployed withdrawal-batch verifier;scripts/zone-attest.shwithout--send, which checks the new proof witheth_call, checks a mutation fails, and prints—but does not broadcast—theattestcalldata.
The job usually takes about 15 minutes and requires roughly 20 GB RAM. Output is written under
out/operator-zone-jobs/, which is intentionally untracked.
The worker rejects requests from other websites (non-loopback Host, cross-site Origin) and requires an
X-Sworn-Operator header to start a job. That is a cross-site boundary, not authorization: any process
already running on the same machine as the same user could start a job (or run scripts/zone-prove.sh
directly). It still accepts no input and never sends a transaction.
A real Zone operator must provide its own private witness, genesis artifact, and version-compatible guest. This local controller deliberately does not accept arbitrary files or select arbitrary Zones: that would need authenticated operator access, input isolation, resource quotas, a job queue, and a Zone-specific deployment. Settlement through a portal was demonstrated separately, on our own Zone on Moderato (spec 003, "Results (own Zone live run on Moderato)"); for Tempo's own Zones it remains a Tempo-side change described in spec 004.