Every benchmark for the Hanzo stack, in one repository, with the records they produced. Clone it, run a lane, compare against the committed run.
Lanes — one directory per claim, at the root. What a thing costs, measured,
with a control beside it. fleet/ goroutine/ sandbox/ cipher/ egress/
self/ transport/ pricing/. The tables and
what each one found are in MEASURED.md; what competitors
publish, and where it was read from, is in naive.md.
Load and scale — cloud/ Go property benchmarks, k3s/ an integration
harness that stands the real StatefulSet up, plus bench-agents/
bench-inference/ bench-serialize/ bench-blockchain/. Written up in
LOAD.md and METHODOLOGY.md.
make check # or: bash check.sh
CLOUD_SRC=/path/to/cloud make check # including the four that build the binaryTen lanes, in the order that needs the least, so the first failure names the smallest missing piece. A lane whose data nobody has fetched is skipped and says which command fetches it — a green over four silent skips is the same green a broken suite prints, so it counts them separately.
node fleet/fleet.mjs /tmp/fleet # 1M dormant agents: bytes, write rate, resume
cd goroutine && go build -o /tmp/g . && /tmp/g
node sandbox/sandbox.mjs # V8 context, isolate, hanzo-vm
node pricing/pricing.mjs # what a call costs and what it could charge
bash transport/run.sh # what an agent pays per call, per transport
bash self/run.sh # build it, boot it, ask each transport
bash cipher/run.sh # write a value, look for it on the disk
bash egress/run.sh # what leaves the machineBENCH_JSON=out.json on any lane writes its rows to a file as well as the
terminal.
Node 20+ and Go for everything.
Four lanes build the cloud binary — self, egress, cipher, transport
— because they measure a binary rather than a library. They look for the source
next to this repo, then at ~/work/hanzo/cloud:
git clone https://github.com/hanzoai/cloud ../cloud
CLOUD_SRC=/path/to/cloud bash self/run.sh # or name it outrightThey do not clone it for you. A benchmark that fetches its own subject decides which revision you measured.
Lanes that measure time print their host, because they have to — the same lane reads about twice as fast on an M4 Max as on an M1 Max. Frozen configurations carry a digest of the engine files that decide their rows, so an edit to the engine is visible against the record rather than silent. Commit hashes were tried first and did not survive a rebase.