Add Zapier interface simulator, tree-node Merkle lookups, and user docs
Some checks are pending
offline / test (push) Waiting to run
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.
This commit is contained in:
parent
3daa88866d
commit
f3dc0e6eee
56 changed files with 2341 additions and 8 deletions
|
|
@ -54,6 +54,7 @@ If later attach jobs exist for that hash, `receipts` is an array: seal first, th
|
|||
| `verae.archive.reply.<correlationId>` | archive on bloom hit | aggregator |
|
||||
|
||||
Query payload: `{ correlationId, sha256, tenantId, kinds[] }`.
|
||||
`kinds` may include `tree` for Merkle leaf proofs (hashes sealed only as a bulk summary root).
|
||||
Reply payload: `{ archiveId, sha256, records[] }`.
|
||||
|
||||
Bloom miss → no reply. Aggregator timeout → complete with whatever arrived.
|
||||
|
|
|
|||
|
|
@ -32,6 +32,9 @@ Zapier cloud **never** connects to NATS. Only middleware workers and archives do
|
|||
| request-splitter | `verae-request-splitter` | In middleware | HTTP body / multipart | chain hash; `verae.archive.put` |
|
||||
| archive-aggregator | `verae-archive-aggregator` | Worker / in wait | `includeAttached` on wait | `verae.archive.query`; reads `verae.archive.reply.<id>` |
|
||||
| archive-worm | `verae-archive-worm` | N copies | `verae.archive.query`, `verae.archive.put` | `verae.archive.reply.<id>` if bloom hits |
|
||||
| tree-node | `verae-tree-node` | N copies (WORM role) | `verae.archive.query`, `verae.archive.put` kind `tree` | `verae.archive.reply.<id>` if bloom hits |
|
||||
| zapier-simulator | `verae-zapier-simulator` | Local HTTP :3847 | operator browser | in-process replay of all addresses |
|
||||
| zapier-user-docs | `zapier-user-docs` | Static | — | catalog `/user-docs/` |
|
||||
| verae-chain-client | `verae-chain-client` | Library | — | HTTPS `api.veraetime.net` or MOCK |
|
||||
| docs-master | `zapier-docs-master` | Static | — | published on zapier.georgelambert.org |
|
||||
|
||||
|
|
|
|||
44
docs/02-architecture/tree-nodes.md
Normal file
44
docs/02-architecture/tree-nodes.md
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
# 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue