| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Standalone producer of BitcoinPIR production databases and build evidence. It is not the serving runtime, not the browser verifier, and not a multi-builder quorum service.
The locked production commit is the one BitcoinPIR pins in PRODUCTION_ORAM_DB_PROOF_V2_PINS and scripts/build_uki_attested_builder_tier3.sh. Do not copy that hash into this file. Operator steps that boot this code on VPSBG live in BitcoinPIR: Flow H in docs/PRODUCTION_OPERATIONS.md and docs/ATTESTED_BUILDER_TIER3_UKI.md.
PLAN.md is a frozen 2026-06 design note (k-of-n Ed25519 bundles, Nitro, client strict mode). It is not the current contract.
A production generation is one native full-build V2 pipeline:
| Mode | Script | Input |
|---|---|---|
| Snapshot | scripts/build-snapshot-database.sh | one Core dumptxoutset v2 file + gettxoutsetinfo muhash |
| Delta | scripts/build-delta-database.sh | two snapshot files + both MuHashes; set-diff is inside this process |
The measured UKI only accepts:
Native V2 forces ROOTS_ONLY=0, STAGE_SERVER_DB=1, RUN_ONION_FFI=1, BUILD_EVIDENCE_VERSION=2. latest/ is published only after the runner sees V2, evidence_mode=full_build, and no predecessor hashes.
From those inputs the same run emits every serving backend's bytes:
| Backend | Artifacts | Bound in evidence |
|---|---|---|
| DPF-PIR | batch_pir_cuckoo.bin, chunk_pir_cuckoo.bin, bucket Merkle | bucket_super_root |
| HarmonyPIR queries | same INDEX/CHUNK + bucket Merkle as DPF | same bucket_super_root |
| OnionPIR | packed entries, cuckoo, Merkle, FFI onion_shared_ntt.bin / onion_index_all.bin / sibling rows | onion_super_root + typed Onion v2 layout |
| Direct ORAM | oram-direct-inputs/utxo_chunks_{index,}_nodust.bin and [direct_oram] in server-db/MANIFEST.toml | server-db manifest hash |
Plus the trust sidecars the BitcoinPIR runtime serves verbatim:
There is no separate “DPF builder” or “Onion builder”. A collection assembled after the fact is not a production candidate.
These are out of scope here, not unfinished backends:
| Concern | Where it actually lives |
|---|---|
| Harmony hint blobs | pir1 runtime hint pool; fingerprint-checked in the browser, not a DB-proof family |
| BHTM / trust-chain (fromMuhash, block hash) | Bitcoin-PIR/bhtm producer; BitcoinPIR web/public/proofs/trust-chain/ |
| Serving pir1 binary pin | BitcoinPIR PIR1_PIN |
| Serving pir2 UKI measurement | BitcoinPIR PIR2_TIER3_PIN (runtime UKI, not this image) |
| Formal / EasyCrypt wire-shape | BitcoinPIR verification/locks/formal-proofs.json |
| Client k-of-n builder-key quorum | PLAN.md Phase 2; not shipped. Production clients pin evidence + builder binary/commit |
| Nitro / TDX guests | not implemented; SEV-SNP /dev/sev-guest is the only quote provider |
| Multi-builder diversity | not implemented |
| Development databases | BitcoinPIR scripts/build_full.sh / tools/db-builder — must not produce a production rotation |
BUILD_EVIDENCE_VERSION=1 and ROOTS_ONLY=1 still exist as host/legacy paths. They are not the production UKI contract. reattest-existing-v2 can re-bind already-built serving images and must report direct_oram_eligible=no.
The live BitcoinPIR 940611 -> 948454 lineage is a mixed-provenance exception retained on that side. Do not rebuild it here to make the history look uniform.
BitcoinPIR does not treat this repo as the live pin catalog.
| Evidence | BitcoinPIR pin / lock | Who verifies |
|---|---|---|
| V2 Onion layout + roots | PRODUCTION_ONION_DB_PROOF_V2_PINS | browser / WASM; local db-proof verify |
| V2 ORAM + producer identity | PRODUCTION_ORAM_DB_PROOF_V2_PINS + verification/locks/generated-proofs.json | same local v2 path; not verify-live |
| Builder SNP report | web/public/proofs/oram-source/ | pir-attested-builder verify-build-evidence |
| DPF / Harmony roots | same V2 bucket_super_root | bound in this run's evidence; BitcoinPIR still transports them on the v1 opcode |
proof_dir vs proof_v2_dir is a BitcoinPIR packaging split, not a second producer. The production UKI emits one V2 sidecar set. It does not emit a parallel BUILD_EVIDENCE_VERSION=1 directory. Live DPF and Harmony clients still fetch REQ_GET_DB_PROOF and pin PRODUCTION_DB_PROOF_PINS (no proofVersion); that table currently names the retained mixed-provenance v1 sidecars. A new height therefore has attested DPF/Harmony bytes in the V2 evidence, but no UKI-produced v1 sidecar for that opcode. Do not invent a second producer to close that packaging gap, and do not pair a server-db from one run with evidence from another.
| Path | Role |
|---|---|
| coremuhash/ | Bitcoin Core MuHash3072 |
| utxosnapshot/ | Core v2 dumptxoutset parser + MuHash gate |
| dbpipeline/ | Deterministic INDEX/CHUNK/Onion/Merkle stages |
| onionffi/ | Optional C++ OnionPIR preprocess (--features ffi) |
| rootbundle/ | Canonical payload + optional Ed25519 wrapper |
| builder/ | pir-attested-builder CLI |
| scripts/build-snapshot-database.sh | Snapshot orchestration |
| scripts/build-delta-database.sh | Delta orchestration |
| scripts/local-regtest-e2e.sh | Committed-fixture smoke |
| scripts/local-mainnet-build.sh | Owner-host wrapper; not a production authorization |
| fixtures/ | Golden parser/MuHash vectors |
cargo test --workspace
scripts/local-regtest-e2e.shInspect or verify a finished output:
pir-attested-builder inspect-build-evidence OUT/build-evidence.bin
pir-attested-builder verify-build-evidence OUT/build-evidence.bin \
--snapshot SNAPSHOT --builder-bin BIN \
--payload OUT/root-bundle-payload.bin \
--database-manifest OUT/database.manifest.sha256 \
--all-artifacts-manifest OUT/all-artifacts.manifest.sha256 \
--server-db-manifest OUT/server-db/MANIFEST.toml \
--expected-muhash MUHASH \
--expected-anchor-height HEIGHT \
--sev-snp-report OUT/build-evidence.sev-snp-report.bin--expect-* values come from the independently accepted generation record, never from a live PIR server.
Wire-format changes to rootbundle follow rootbundle/COMPATIBILITY.md.
| Back | FazBrowse Home | New Git URL |