Repository navigation
Conversation
✅ Validation passedA reviewer will assess against the prize criteria. Automated check. See solution template and TERMS. |
|
Thanks for your quick proposal!
|
|
Thanks for the questions! 1. How Storage is used. It carries history snapshots. A node can save the whole forum as one file on Logos Storage and announce its CID, and a newcomer downloads it and merges it post by post, checking every signature, so a snapshot can't add or change anything. It's opt-in ( 2. Alice and Bob offline, Charlie comes online. Yes, he gets the full history. I tested exactly that this morning on testnet v0.3: Alice and Bob post in a forum created just for the test, then both go offline. Charlie is a completely fresh install that comes online with nobody else in the forum, and he gets every post in about 8 seconds. They come from the Logos Delivery store nodes, which keep history since v0.3, and Alice's log shows she answered no request. Each post is still checked against its signature before it's shown. Script and output: scripts/e2e-history-offline.sh, e2e-history-offline-0.3.2.out. When a peer is online it also sends what it holds over Delivery, which covers anything older than what the store nodes keep. |
|
Thanks for clarifying, I hadn't seen that in the video. |
|
Thanks a lot! I'll keep feeding the topics and getting people to use it, so it becomes a habit and they come back on their own. And good to know it can be in French too, that makes it easier to get the first real conversations going. |
|
Hi @jzaki, I opened a PR to add Logos Forum to the official Basecamp catalog: logos-co/logos-modules-release#98 Right now the main blocker for real usage is credibility. A forum only works if people feel safe having their conversations there, and installing it from an unknown package repository doesn't give that. Being in the official catalog would make it one click from the Package Manager and show it's an app the ecosystem stands behind, which is what I need to get real discussions going. |
…orted upstream (logos-co#165, logos-co#164); distribution through our own catalog
|
I ran a quick review through my agent (in case it is useful): https://data.vpavlin.xyz/reviews/logos-forum-review-security/ |
|
Thanks a lot @vpavlin, both reports were really useful. All three points are fixed, and the catalog now serves the code they were fixed in, along with everything listed below. 1. Unsigned history requests. You were right: the cooldown gated the answer but not the 2. QRegularExpression. The RLN funding-detail parser is now done by hand in the core ( 3. Test count. Corrected, and the README now gives the exact number: 134 core tests on A second pass of my own. Your reports made me go through the same classes of issue on the rest of the protocol and the app, and I fixed six more, each reproduced first and covered by a test that fails without the fix (all in the audit table):
I also went through every claim in the README, Spam on arrival. Posts are now budgeted when they arrive, on the node's own clock so back-dating can't reopen a window: per key, a shared budget for keys the node has never seen (that's the one that matters, since anonymous keys are free), a live total, and a separate budget for history so a legitimate backlog still pages through. What that does not do is stop a determined stranger on logos.dev, which has no RLN: they can still use up the shared new-key budget and crowd out honest anonymous posts for an hour. A real per-sender bound needs something every post carries (RLN or proof of work), a wire change I'd rather make with the logos.test port than break installed peers. Both are written up in docs/security.md. Also new since your review, each with what it protects and what it doesn't in docs/security.md:
All of it keeps the wire format a 0.3.6 peer verifies. On the package vs |
This adds my solution for LP-0026: Logos Forum, a forum that runs inside Logos Basecamp with no server anywhere.
Topics and replies go over Logos Messaging (Logos Delivery), history is kept on each device and shared through Logos Storage, and every post is signed and checked by the app itself when it arrives. You can post from one of your accounts, under an alias, or anonymously with a key made for that one post and then thrown away, and you can rotate an account's key at any time.
Demo (3:43, narrated, subtitled)
▶ YouTube: https://youtu.be/xNY5EzhCtuI
logos-forum-demo.mp4
How to install it (Basecamp 0.3.0, macOS Apple silicon or Linux x86_64)
delivery_moduleandstorage_modulefrom the official Logos catalog; nothing else is needed.Updates show up in the Package Manager like any other module. Building from source is described in the README, which also has a walkthrough with screenshots.
What I tested, on the real logos.test network
Five Basecamp nodes driven through the interface, 24 checks: accounts, alias, anonymous, a second account, rotation, a post written offline that goes out when the network is back, and a newcomer recovering the whole history from peers. 47 core tests, CI green on Linux and macOS. Everything is in the solution file with links.
Security review. vpavlin from the Logos team reviewed the whole codebase (edenbd1/lp-0026-forum#1). Every point is fixed in 0.2.0, now in the catalog, almost all with a test (two are checked by hand). The main change is that history now travels over Delivery relays by default, so nothing a stranger sends can make the forum connect to an address of their choosing. The details and the remaining limits are in
docs/security.md.Testnet v0.3. The
logos.testDelivery fleet went down with the v0.3 launch, so the forum (0.3.2 in the catalog) runs onlogos.dev, the fleet that is up, withdelivery_module0.3.0 andstorage_module3.0.0, and installs next to Chat 0.3.0. It passes the same five-node run there (24/24), and a fresh install from the catalog gets the history in seconds. The network is a setting, so following the official fleet is a one-line change. Since 0.3.2, opt-in Logos Storage snapshots are fetched over Mix, so even that path never connects to the provider.Making it an official Basecamp app
If this is merged, I'd love Logos Forum to become an official application, available directly in every Basecamp through the official catalog (
logos-modules-release), with no repository to add by hand. It is already built the way that catalog expects: logos-module-builder, one portable.lgxfor macOS and Linux, dependencies pinned to the catalog's owndelivery_moduleandstorage_module, reproducible builds. Tell me the form you prefer and I'll open the pull request there and keep it maintained.One criterion is still in progress: real conversations. The forum is live and I'm inviting builders to use it now.
Repo: https://github.com/edenbd1/lp-0026-forum