feat: NIF-77 negentropy sync
This commit is contained in:
12
docs/SYNC.md
12
docs/SYNC.md
@@ -131,14 +131,16 @@ This is enough for Tribes and keeps the first version simple.
|
||||
|
||||
### NIP-77
|
||||
|
||||
NIP-77 is **not required** for the first sync implementation.
|
||||
Parrhesia now has a real reusable relay-side NIP-77 engine:
|
||||
|
||||
Reason:
|
||||
- proper `NEG-OPEN` / `NEG-MSG` / `NEG-CLOSE` / `NEG-ERR` framing,
|
||||
- a reusable negentropy codec and reconciliation engine,
|
||||
- bounded local `(created_at, id)` snapshot enumeration for matching filters,
|
||||
- connection/session integration with policy checks and resource limits.
|
||||
|
||||
- Parrhesia currently only has `NEG-*` session tracking, not real negentropy reconciliation.
|
||||
- The current Tribes sync profile already assumes catch-up plus live replay, not negentropy.
|
||||
That means NIP-77 can be used for bandwidth-efficient catch-up between trusted nodes.
|
||||
|
||||
NIP-77 should be treated as a later optimization for bandwidth-efficient reconciliation once Parrhesia has a real reusable implementation.
|
||||
The first sync worker implementation may still default to ordinary NIP-01 catch-up plus live replay, because that path is operationally simpler and already matches the current Tribes sync profile. `:negentropy` can now be introduced as an optimization mode rather than a future prerequisite.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -359,8 +359,8 @@ Initial mode should be `:req_stream`:
|
||||
|
||||
Future optimization:
|
||||
|
||||
- `:negentropy` may be added when real NIP-77 reconciliation exists.
|
||||
- It is not required for the first implementation.
|
||||
- `:negentropy` may be added as an optimization mode on top of the simpler `:req_stream` baseline.
|
||||
- Parrhesia now has a reusable NIP-77 engine, but a sync worker does not need to depend on it for the first implementation.
|
||||
|
||||
---
|
||||
|
||||
@@ -372,7 +372,7 @@ Future optimization:
|
||||
- `REQ` -> `Parrhesia.API.Stream.subscribe/4`
|
||||
- `COUNT` -> `Parrhesia.API.Events.count/2`
|
||||
- `AUTH` stays connection-specific, but validation helpers may move to `API.Auth`
|
||||
- `NEG-*` remains transport-specific until Parrhesia has a real reusable NIP-77 engine
|
||||
- `NEG-*` maps to the reusable NIP-77 engine and remains exposed through the websocket transport boundary
|
||||
|
||||
### HTTP management
|
||||
|
||||
|
||||
Reference in New Issue
Block a user