feat(nip77): negentropy reconciliation core for the PostgreSQL backend
Maintainer thường phản hồi trong vòng 1 ngày
@Priyanshubhartistm đang làm issue này rồi.
Từ ngày 8/10/2026.
- #809 của @Priyanshubhartistm — đang mở
Đánh giá
Issue này chưa được đánh giá.
Mô tả
Is your feature request related to a problem? Please describe.
Clients and relay-to-relay syncers catching up with nostream currently send wide REQ filters, so the relay streams every matching event even when the other side already has most of them. NIP-77 (Negentropy) solves this with set reconciliation: both sides exchange range fingerprints and only transfer the events that actually differ. nostream has no NIP-77 support.
The strfry backend being added separately already implements negentropy itself, so this work targets the PostgreSQL backend only and must stay cleanly separable from it.
Describe the solution you'd like
This issue covers only the first, protocol-independent piece of NIP-77, so it can be reviewed on its own before any wire-level work:
- A negentropy reconciliation core: encode/decode of negentropy messages and fingerprint computation over a sorted set of
(created_at, id)items, with no networking or WebSocket code. - A new
EventRepositorymethod returning just(created_at, event id)for events matching a filter, sorted as negentropy requires. It reuses the shared filter conditions (so NIP-56 hidden reports are never advertised) and also excludes deleted and expired events, so they are never advertised either. - Unit tests for the codec/fingerprint (including interop vectors from the reference implementation) and for the new query.
Follow-ups, tracked separately and not part of this issue: the NEG-OPEN/NEG-MSG/NEG-CLOSE/NEG-ERR wire protocol with per-connection sessions and limits, then settings, NIP-11 advertisement and backend gating.
Additional context
- Spec: https://github.com/nostr-protocol/nips/blob/master/77.md
- Reference implementation: https://github.com/hoytech/negentropy
- Ngôn ngữ chính
- TypeScript
- Star
- 829
- Fork
- 234
- Merge trung bình
- 4 ngày 5 giờ
- Pull request đã merge (30 ngày)
- 22
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của cameri/nostream
-
validateSettings() doesn't validate rateLimits[].period — zero period silently degrades to a 1ms backoff hintCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
cameri/nostream#811 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
feat(admin): bounded NIP-66 probe history and Network Health timelineCó thể đã có người làm @Ferryx349 đã nhận 3 ngày trước. Đang mởAdmin Console enhancement
cameri/nostream#800 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Store relay settings overrides in PostgreSQL (SETTINGS_BACKEND=db)Có thể đã có người làm @Ferryx349 đã nhận 36 ngày trước. Đang mởenhancement
cameri/nostream#757 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
feat(nip85): Web-of-Trust spam mitigation engineCó thể làm lại được @Ferryx349 đã nhận 67 ngày trước và không có pull request nào đang mở. Đang mởenhancement
cameri/nostream#720 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của cameri/nostream
Issue tương tự
-
bug cli service
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
create-element: same editorAlias silent-fallback bug as #201, not covered by that fixCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởgenerated-by-ai
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
umbraco/Umbraco-CMS-MCP-Editor#208 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Table: Space fires onActivate in single-selection mode — the reference doc and the JSDoc disagreeĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
sidorares/react-x11-components#764 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
backnotprop/plannotator#1840 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
JoviDeCroock/pracht#432 ·
Maintainer thường phản hồi trong vòng 1 ngày