Some checks are pending
offline / test (push) Waiting to run
In-process trace console validates hops, faults, recoveries, and suggested changes before zapier-platform push. User guide covers signup through central-chain and bulk-summary tree-node hash lookup.
44 lines
1.8 KiB
Markdown
44 lines
1.8 KiB
Markdown
# Tree nodes: bulk Merkle summaries vs itemized chain seals
|
||
|
||
The main Verae chain stores **hash + time + block + certificate**. A Zap that timestamps one document writes that document’s SHA-256 as its own seal.
|
||
|
||
A **batch** of many documents is different: middleware builds a Merkle tree of the item hashes, seals **only the Merkle root** on the chain, and writes each **leaf proof** to external tree-node NATS archives. A later lookup of a member hash will **miss** on the central chain unless the Zap also queries tree nodes.
|
||
|
||
```text
|
||
Zapier HTTPS zappier-edge HTTPS middleware
|
||
|
|
||
Merkle root | verae.archive.put kind=tree
|
||
(chain seal) | (leaf proof, sharded)
|
||
v
|
||
tree-node-east/west/central
|
||
bloom miss = silence
|
||
^
|
||
hash lookup includeTree | verae.archive.query
|
||
| kinds=["tree"]
|
||
aggregator merges proof + root seal
|
||
```
|
||
|
||
## When to use which Zapier search
|
||
|
||
| Search | Hits |
|
||
|--------|------|
|
||
| Find Timestamp by SHA256 | Hash was registered as its own chain seal |
|
||
| Find Hash (tree nodes + central chain) | Chain first, then `includeTree=true` broadcast |
|
||
|
||
## Receipt shape for a bulk leaf
|
||
|
||
```json
|
||
{
|
||
"sha256": "<leaf>",
|
||
"exists": true,
|
||
"itemizedOnMainChain": false,
|
||
"merkleRoot": "<root sealed on chain>",
|
||
"proofOk": true,
|
||
"receipts": [
|
||
{ "kind": "seal", "of": "merkleRoot", "sha256": "<root>", "certificate": "…" },
|
||
{ "kind": "tree-leaf", "archiveId": "tree-node-east", "proof": […], "leafIndex": 1 }
|
||
]
|
||
}
|
||
```
|
||
|
||
Validate this path in the simulator (`packages/verae-zapier-simulator`) before pushing the Zapier app.
|