So I just saw a video where somebody made a bulletin board system over the mesh like it’s fucking 1999 or something and it got me thinking Would it be possible to send web pages over the mesh as long as they were small?
I went to the DuckDuckGo homepage and copied its HTML source code into a text editor and found out it was something like 46,000 characters and with a 288 character limit it would take 145 messages to send that across. Each message would be something like 0.69% of that page.
It doesn’t seem impossible, but you would have to make your pages very lightweight like they were in the 1990s in order to do it efficiently.
And how much JS does that HTML load in?
Radio spectrum, especially license-free or amateur licensed, is really very limited compared to any kind of wired broadband or the 10s-100s of MHZ of dedicated spectrum controlled by cellular carriers. When you add low-power half-duplex nodes and multihop routing, yeah you are going to be limited to single digit Kbps.
Probably better would be to semi-reinvent the WWW, using markdown and some kind of special link syntax, and then have that run over the mesh with some kind of shared cache of already-transferred objects.
I think HTML is going to invite some unavoidable bloat at this stage in its evolution and the traditions that have grown around it, but you can do “the web”, conceptually, without HTML, and it sounds like a really good idea to me.
There is a project for this and I can’t remember the name dammit
You might be thinking of https://geminiprotocol.net/
How would you get the objects from one place to another?
I’m not terribly up to speed on the protocol, I just glanced over it. But I know there are pretty good protocols for storing and finding and communicating information within a mesh without necessarily needing it to be well-organized from the top.
For a random first thought at it, you could use a BGP-like structure, where every node has a cache of how many hops away it is from every other node it knows about. Then, if you want to find a page from Bob’s site, you ask all your neighbors how close they are to Bob. If someone knows, pick the closest neighbor to Bob and ask them to find him, and relay the request and get the markdown back. If no one knows, send a flood message which is looking for Bob, and if you get a flood message back from Bob, have everyone store the TTL and timestamp when they heard the answer, and now you can use the BGP-lite protocol to talk to Bob, because everyone knows how close they are.
That’s not rigorous, it’s just a sketch, and there would be multiple issues making it harder in reality. But the point is it’s been done before and this stuff has been worked out pretty well I think, I would just try to copy someone who’s solved it pretty well.
You would probably get better performance with gopher.
protocols from the 80s definitely have a place here, NNTP is a great fit for peer-to-peer flood-fill forum traffic - they had that figured out over low bandwidth links 40 years ago
I wonder if some optimizations could be made. For example, I saw a video about something called mesh core that somebody was working on that holds routes in memory so that instead of flooding the mesh, it would directly send the data to the node that it’s meant for, which might increase the speed.
A pure HTML page tends to be quite small, I would think that is possible.
I had a pure HTML chapter of a book and it was 16 kilobytes and it looks like it would take two minutes and 16 seconds to get across on long fast and about 13 seconds to get across on short fast or short turbo.
13 seconds on shortfast seems pretty acceptable in my opinion. That sounds pretty typical for the era of BBS, and I feel like meshtastic as a whole is about sacrificing the latest and fastest tech, for something more rudimentary and a bit retro.