From 21bc936b89d9579fdd256073427fffe9c5e20c89 Mon Sep 17 00:00:00 2001 From: lichenblankie Date: Fri, 5 Jun 2026 02:16:46 +0000 Subject: [PATCH] update README: manual sync by default, not configurable, pruning detail --- README.md | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 75a3493..40b519c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # tinyweb-forum -A decentralized link-sharing forum for [TinyWeb](https://git.derickphan.com/lichenblankie/tinyweb). Share URLs and discuss them with other TinyWeb instances over the Reticulum mesh. +A decentralized link-sharing forum for [TinyWeb](https://git.derickphan.com/lichenblankie/tinyweb). Share URLs and discuss them with other TinyWeb instances over the Reticulum mesh. No accounts, no sign-up, no central server. ## Install @@ -20,7 +20,9 @@ pip install -e . ## How it works - Each TinyWeb instance stores forum threads and posts in its own `forum.db` -- Instances sync content with each other over RNS every 5 minutes +- Instances auto-discover each other on the mesh via RNS announces — no manual setup +- You click "sync now" to exchange content; auto-sync every 5 minutes is optional (toggle on moderation page) +- At scale, sync uses epidemic gossip: each cycle picks 20 random peers instead of all peers, converging within ~O(log N) cycles - Authors are identified by a short pseudonymous hash (no names, no accounts) - No global server, no algorithms, no tracking @@ -31,29 +33,32 @@ pip install -e . - **Upvotes** — toggle upvote/downvote, scores propagate via sync - **Edit** — edit your own threads (new version syncs to peers) - **Retract** — retract your own threads and posts (retraction signal gossips to peers) +- **Peer discovery** — instances share known peers during sync, growing the network organically ## Moderation All moderation is local — you control your view: - **Block author** — `[block]` link on posts and thread meta hides all content from that identity across your instance -- **Auto-block** — when 3+ of your peers have blocked the same identity, it's auto-blocked for you too (configurable threshold) +- **Auto-block** — when 3+ of your peers have blocked the same identity, it's auto-blocked for you too (threshold is 3) - **Mute thread** — hide a thread from the listing - **Keyword filters** — hide threads matching keywords - **Instance sync** — choose which peers to sync with; unsync at any time ## Sync -- Forum instances auto-discover each other via RNS announces -- Content is exchanged as JSON over RNS links every 5 minutes -- Peer discovery propagates through gossip — each instance shares its known peers -- At scale (>20 peers), sync uses random gossip: each cycle picks 20 random peers instead of all peers -- This ensures content converges epidemically regardless of network size (content reaches all nodes within ~O(log N) cycles) +- Instances auto-discover each other via RNS announces — just run the forum and any other forum on the mesh finds you +- Content is exchanged as JSON over RNS links +- **Manual by default** — click "sync now" on the forum listing or moderation page +- Auto-sync every 5 minutes can be enabled on the moderation page +- Auto-discovery can also be disabled on the moderation page (manual instance add only) +- Peer discovery propagates through gossip — each instance shares its known peers during sync - Block lists and retractions are gossiped alongside content - Only new/updated content is transferred (timestamp-based) -- Auto-discovery can be disabled in the moderation page +- When >20 peers, each cycle syncs with a random 20 — content converges epidemically ## Storage -- Threads are pruned after 30 days by default (configurable in moderation page) +- Threads older than 30 days are auto-pruned (configurable on the moderation page) - Set retention to 0 to keep everything indefinitely +- Forum DB is stored at `~/.tinyweb/forum.db`