Replies: 5 comments 23 replies
-
@faragher I've been crazy busy with work and away from the Reticulum scene for a while and just happened to pop on to the discussions page today. Obviously this topic is somewhat near and dear to my heart. I wanted to call out again what you already called out as an important point:
The "Reticulum Ace" BBS was actually the motivating force behind The BBS, however, was little more than a novelty. It was fun to relive my sysop days for a bit and to play minesweeper over Reticulum, but the idea of a central messaging hub is a little antithetical to Reticulum. This part really needs some thought, I think. LXMF and NomadNet were @markqvist's best answer for messaging over Reticulum, but there were some needs this just didn't meet. There were some cool NomadNet-based approaches to solving the problem, too. Some people were working on LXMF group-chat reflector bot systems, other folks on message boards, and other folks yet on Reticulum directories that catalogued announce data. I'm not sure how the scene has changed in the past year, I haven't been able to keep up with Reticulum developments due to my workload at the moment. But at the time, NomadNet itself, with its broadcast capability, really seemed like the closest thing to a BBS that also accommodated the full distributed and privacy-first values of Reticulum. Group messaging was I think the big thing it was missing, and that's a hard problem to solve. Wonder if anything short of a completely novel approach to what a bulletin board system is would end up looking like a BBS over Reticulum rather than a Reticulum BBS. 🤔 |
Beta Was this translation helpful? Give feedback.
-
I've been out of the Reticulum loop for a little while now, but seeing this pop into my mailbox has piqued my interest. I kind of like the idea of a Reticulum BBS, since a BBS-over-Reticulum is simply just a tunnel. Not that a tunnel is a bad implementation, and it does provide access to those that don't use Reticulum, but I think the idea of a Reticulum native application more interesting 😁 Anyone already working on a Reticulum BBS? I'd be interested in giving it a go. |
Beta Was this translation helpful? Give feedback.
-
So, I'm going to shamelessly steal a list of features from Wikipedia (and since it can be shared, license fulfilled. ;) ) and discuss my thoughts on each, along with some things I think they took for granted: AuthenticationUsing Reticulum's authentication system removes the risks posed by passwords. Since no passwords are stored, they can't be stolen in a data breach. Similarly, it allows an automated authenticated user creation. This isn't to say the sysop can't change levels or require human authorization for new users, but the user/pass system simply has no advantages except multiple-access (which can be done simply by using the identity on multiple machines; so long as it doesn't announce, this isn't a problem) User ProfilesSo, this is a big question. One would assume a friendly user name, but are there public profile pages? Do you use flags, security levels, or both to allow specific access to resources. Are these local or federated? Who's an authority? One would assume a profile could be signed and passed along, but it's a big question. Menu systemsIt's a rather obvious in theory, but in implementation it's complicated. Micron is pretty nice for pages, but the typical BBS system is terminal mode, and is more efficient for small changes. So, the question is if the super-low bandwidth VT100 or ANSI based systems are worth the extra effort, or if passing a screen at a time is okay. Does it respond to keypresses, or is it transactional where you need to type a command (even a single character) and press return. This has certain asynchronous advantages, such as not storing state, but rather passing more complicated commands like HTTP requests. This is a lot more overhead and is more a web server, but can potentially scale better since the server isn't storing a state for each user. Important questions. One or more message basesI won't call the Reticulum message boards a solved science, but there are multiple implementations, each with their own styles and advantages. Now, Reticulum authentication is basically a given, but are these local? Are these federated? Who is and isn't allowed to see it? Who can invite people to a board? Etc. Uploading and downloading of message packetsThis is just Distribution Nodes with extra steps. E2EE messages across a BBS aren't much more useful than the current Reticulum systems. Public messages are better served on a board. Direct messaging to a user would be insecure and a risk to the sysop, but would allow messaging without exposing an LXMF address. Basically, the only thing the user would see is the friendly name of the user (plus any public profile). Not sure this is really useful. Maybe the board could facilitate some kind of key exchange that it's unable to access, but I'm not about to propose crypto systems. File areasReticulum resources. Easy peasy. BUT in my opinion these should never be federated. While links to other systems hosting files is usually fine and dandy, actually hosting files can be legally actionable, and the sysop is personally responsible for everything uploaded. Since Reticulum can easily connect to files some distance away, there are few benefits. However, there are benefits. usually for the reasons BBSes did this originally: caching files for local hosting helps keep node to node traffic down, especially over low-speed links. It might be worth the ability to federate certain files, but maybe this is best manually selected, or even manually downloaded. Live viewing of all caller activity by the system operatorFrom a security standpoint, this makes sense, but it may also be against the spirit of Reticulum. Uncertain. Statistics on message posters, top uploaders / downloadersThis seems counter to Reticulum's goals, but people seem to like it. See file area on my opinions on people uploading files. (which isn't to say they can't locally host them on their own instance or file repo; not my system, not my problem) Online gamesWe need Reticulum games. Like the old Cyberpunk or LoRD or something. A doorway to third-party online gamesNomadNet kind of does this with its ability to display output, but it doesn't really have interactivity. It's worth considering some kind of hook to allow real time two-way systems, but this is an incredibly complex setup which may not be any better than using rnsh to get a shell. Usage auditing capabilitiesAgain, this is important at least in aggregate. Multi-user chat (only possible on multi-line BBSes)Insecure, but not terribly difficult. Of course, without multicast this is a data hog, but the number of people actively in a chat is likely to be fairly low. Questions about if there's any server logging and for how long. This is useful for people who just entered the chat to scroll up and see what's going on, but can be a security risk. Internet email (more common in later Internet-connected BBSes)I mean, basically LXMF. Any non-E2EE messages on the server are a risk to server and user, so I say ignore it. Just (optionally?) expose a user's LXMF address and send messages directly. A "yell for SysOp" page caller side menu item that sounded an audible alarm to the system operator. If chosen, the system operator could then initiate a text-to-text chat with the caller.I mean, just expose an LXMF address, Primitive social networking features, such as leaving messages on a user's profileMy knees hurt just looking at this sentence, but the questions are the same as generating a profile. What should be shown? How granular are the options? Anyway, that's my general thought of the minimum required parts of a BBS. Should it be its own application? A NomadNet page? A protocol? I don't know, but I'd love to see it happen. |
Beta Was this translation helpful? Give feedback.
-
In regards to the Reticulum BBS idea (which I like more), you’re really just looking for something like nomadForum but with more things like message boards and games. |
Beta Was this translation helpful? Give feedback.
-
I've still been tinkering with this. Writing a BBS program is easy, the 'difficult' part is AAA and message federation, if desired. Also been trying to see if there's any sense in just adding in a Reticulum transport in on an existing system, or rehashing something everyone's familiar with for Reticulum use exclusively. Just my two cents for now, but I'll keep playing. |
Beta Was this translation helpful? Give feedback.
-
As someone who not just wants a BBS on Reticulum, but puts it as a primary interest, I'm happy to see more people become interested. So I figured I'd make a list of my thoughts.
The most fundamental question, and this is a major one, don't skip over it, is do you want a BBS over Reticulum, or a Reticulum BBS? For a BBS over Reticulum, you want to connect over SSH, tunneling through Reticulum. Acehoss already put one together, and it's a fantastic concept. #231
The thing this is missing is an ease of access, but that's a link, address book, or alias away. Not a real problem.
A Reticulum BBS doesn't just tunnel through Reticulum, it is integrated with the system, particularly the identities. A BBS that authenticates using Reticulum and uses LXMF instead of e-mail for its primary means of communication preserves everything that Reticulum does and doesn't simply act as another transport layer.
The big question here becomes, "what if I want to log in with a user/pass from multiple sources?" Then use SSH over Reticulum. Using multiple systems in addition to Reticulum eliminates most of the security benefits not present over SSH, and if you truly need multiple access, you can use your identity across multiple machines. This may mean timing or even forgoing announces, but that's something that needs a little more field testing.
Now, as far as how to actually implement a BBS, the first step is a client. It can be done in any language Reticulum supports, and is basically a Reticulum-based terminal emulator. RNSH and RNX are similar, but not the goal. This is a generally useful utility that needs to be made anyway.
The server should probably be a base implementation, but the authentication is the biggest hurdle. For something like LBBS you'd need a C implementation of the Reticulum cryptography, authentication, announce, and link systems. You wouldn't need to handle transport, so it wouldn't need to be a full implementation, but it still requires enough to physically interface with the network.
To go back to LBBS, the "nets" interfaces it uses would have to be able to interface with the stack in one way or another, which would require a C implementation, but it would also need substantial modification to the authorization mechanisms. I haven't dug into the mechanisms involved, but it would need to use the identity as a user name and use the Reticulum authentication to only allow identified users. It's straightforward on the Reticulum end but would be a non-trivial rewrite of the authentication system.
It's all straightforward work, but it once again hinges on language-specific implementations of at least the non-transport parts of the RNS.
Anyway, those were my thoughts, and I am out of time. I certainly hope this helps someone make a Reticulum BBS. It's a great idea that meshes so well.
Beta Was this translation helpful? Give feedback.
All reactions