Files
openyield/docs/shared/watchers-mirror.md
T
cloudinit-bot 82ae6cf5a2 docs(milestone): complete OpenYield v0.3 (Bearers & Documentation)
Milestone v0.3 complete. Feature type, tags v0.2.x. Two work-streams
shipped under one feature milestone:

(A) Bearers skeleton + tests (D-020 pattern, 7 x/* packages, zero ext deps):
- x/bridge (NEW): BridgeStatus enum (4), BridgeRoute by-ID-string refs
- x/exit (NEW): ExitStatus enum (5), ExitRoute, DEXSwap (opaque venue)
- x/bearers (EXT): OYSATLink surveillance-resistant LOCKED, OYQRCode idempotent
- x/partner (EXT): AnchorCredential (custody-provider-id empty in skeleton)
- x/hub (NEW): HubService enum (3), LendingCouponCapBps=800 LOCAL const (A-304)
- x/services (NEW): ServiceKind enum (4), window-id by-ID-string ref (A-307)
- x/bond (EXT): GrowthBond, ClampGrowth G-012 underflow guard, secondary market
All packages >=93.3% coverage. Both lexicon firewalls green. G-003 intact.

(B) Documentation deliverable (REQ-027 complete, 26-page MkDocs Material site):
- README.md + mkdocs.yml + docs/index.md
- docs/shared/ (7 pages): Six Principles, Bread Scale, Storage Pools, Watchers/Mirror, Lexicon, Vision
- docs/nomads/ (8 pages): Reach, Stash, Bearers, Maps-Pay, Pacts, Standing, Window
- docs/freeholders/ (8 pages): Signals, Standing, Stands-Guilds, Councils-Voice, Bonds, Partner Spectrum, Anchor Preview
- docs/reference/ (2 pages): Architecture, Components
- REQ-028: lexicon firewall extended to docs/ + README.md (lexicon_meta_docs_test.go, 5 tests incl G-013 walk-coverage + G-014 shared self-test)

Phases: P0 -> v0.2.0, P1 -> v0.2.1, P2 -> v0.2.2, P3 -> v0.2.3, P4 -> v0.2.4, P5 -> v0.2.5, P6 -> v0.2.6 (milestone release).

Requirements covered: REQ-010, REQ-022, REQ-023, REQ-024, REQ-025, REQ-026 (skeleton), REQ-027, REQ-028 (complete).
IDEATE-01..08 ratified and delivered.

---ci---
project: oy
phase: 6
milestone: v0.3
status: complete
tag_base: v0.2.x
phase_role: final
milestone_complete: true
requirements:
  covered: [REQ-010, REQ-022, REQ-023, REQ-024, REQ-025, REQ-026, REQ-027, REQ-028]
  partial: []
---/ci---
2026-08-17 22:35:36 +00:00

1.9 KiB

Watchers & Mirror

OpenYield is attested by 9 Watchers with a 6-of-9 quorum (REQ-004). The Watchers make daily attestations to the canonical state, and each posts a 100,000 Bread bond. The Mirror mirrors the canonical state to the bearers so a Holder can verify the mesh's state without trusting a single Watcher.

The 9 Watchers

The Watchers are the attestation layer of the mesh. There are exactly 9, and the quorum is 6-of-9: any 6 Watchers can attest to a state transition, but no 5 can. Each Watcher posts a 100,000 Bread bond, which is at risk if the Watcher attests to a false state. The 9/6 split is a mission-locked parameter — no Council can lower the quorum or the bond.

Daily attestations

The Watchers attest to the state of the three Storage Pools daily: the Stash totals, the Vault totals, and the Root-Pool. The attestation is a signed statement that the canonical state recorded by OY Chain matches the state the Watcher observed. A Holder who wants to verify the mesh's real return can read the attestations and check that the Watchers agree.

The Mirror

The Mirror mirrors the canonical state to the bearers (OY-LR, OY-BLE, OY-WiFi-Direct, OY-SAT, OY-QR). A Holder on a surveillance-resistant bearer can read the mirrored state without an internet connection to OY Chain; the Mirror is the read-side of the bearer layer. The Mirror is read-only: it mirrors state, it does not author it. Authoritative state lives on OY Chain and is attested by the Watchers.

Why 6-of-9

The 9/6 split is a balance: 9 is large enough that no single adversary can easily capture a quorum, and 6 is large enough that no small cabal can attest to a false state. The 100,000 Bread bond per Watcher makes capturing a quorum expensive. The split is locked by Mission Lock — no Council can change it. See Six Principles for the mission-lock covenant.