diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-09-28 21:49:14 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-09-28 21:49:14 +0200 |
| commit | 07480eb3f8ad0bb4369ac8c41df7c4140b108d0e (patch) | |
| tree | 2f692c0dccb184890fd82339590a4e9ce168c6e4 /docs/MESHBAY_NODE_PROTOCOL.md | |
| parent | 91505face56f7ee6817408e52bad7902add75f09 (diff) | |
| download | meshbay-07480eb3f8ad0bb4369ac8c41df7c4140b108d0e.tar.gz | |
feat: nodes apply the content blocklist in their public groups
A node hosting a public group syncs the hub's blocklist on every
connection (paged, node token only) and applies pushed changes. A
blocked file leaves the index and is refused (content_blocked); private
groups are untouched. The unused per-hash check route is gone.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'docs/MESHBAY_NODE_PROTOCOL.md')
| -rw-r--r-- | docs/MESHBAY_NODE_PROTOCOL.md | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/docs/MESHBAY_NODE_PROTOCOL.md b/docs/MESHBAY_NODE_PROTOCOL.md index 5bf367b..0886a7e 100644 --- a/docs/MESHBAY_NODE_PROTOCOL.md +++ b/docs/MESHBAY_NODE_PROTOCOL.md @@ -159,6 +159,7 @@ Codes in use: | Chat | `chat_too_large`, `chat_rate_limited` (§11.7) | | Operator controls | `not_operator`, `too_many_pending`, `too_large` (§10.4) | | Metadata | `transcode_not_applicable`, `tmdb_search_rate_limited` (§11.9) | +| Moderation | `content_blocked` — a file the hub's content blocklist names, in a public group (§11.3) | Everything else refuses with `detail` alone. A code is added when a client has a different thing to *do* about the refusal — retry, re-authenticate, offer an update — @@ -1565,6 +1566,11 @@ ct = AES-256-GCM(chunk_key).encrypt(nonce, plaintext) no AAD * **A chunk that is not this shape aborts the download**, with an error. There is no fallback that decodes it some other way: a client that guesses at a chunk it does not recognise writes its guess into the file the person is saving. +* **In a public group, a file the hub's content blocklist names is not served.** It is + left out of `index_sync` and `index_delta`, and `file_req` for it or for its + thumbnail, `stream_req`, `subtitle_req` and `audio_transcode_req` are refused with + `content_blocked`. The node syncs the list from the hub and applies pushed changes + (`MESHBAY_DESIGN.md` §7.5); private groups are never affected. ### 11.4 Upload |