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.
In the radio settings page of the Meshtastic docs they describe the maximum speed of transfer for different setting combinations that have been tested. The fastest setting is the Short Range / Turbo, which can achieve up to 21.88 kbps: https://meshtastic.org/docs/overview/radio-settings/
The more common “LongFast” setting achieves 1.07 kbps. I just saved a few simple text-only HTML sites and they weight about ~2 - 5 kb, so it would certainly be possible to transmit them in a few seconds. There is some additional overhead with every packet, and in the EU at least we have a 10% duty cycle rule a 868 MHz, so only 6 seconds of every minute should be used for transmitting. Navigating through the page would be a bit cumbersome.
Since the html page will exceed the character limit from the Meshtastic app chat, it would probably make sense to make use of a dedicated app to send these kind of packets using LoRa instead of Meshtastic itself.
There are other methods of sending IP/TCP packets over packet radio. I am just now learning about this, and found this video yesterday: https://youtu.be/V0FAzMIsxMg?t=1413
With this technique you can use a radio to transmit packets to a Linux PC that behave just like an ‘Ethernet’ TCP packet. The video covers a related open source implementation called ‘New Packet Radio’ with which you can transfer 50 kbps - 500 kbps using radio packets in the 430 MHz band. These protocols work with frequencies and powers generally reserved for those with a HAM radio license: https://hackaday.io/project/164092-npr-new-packet-radio
When I first got online in the late 80s, it was at 300bps and, simplex i think.
There will always be something magical about watching text appear more or less letter by letter, and stream on to the screen. It also served as a constant ‘progress bar’ in so much as you knew your connection was live as long as text kept appearing.
Anyway, the reason I mention it that is that HTML pages in browsers, might need to be fully received before they will render ? Meaning there’d potentially be a lot of nothing until it’s ready to display.
You would probably get better performance with gopher.
Or gemini
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.
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/
YES !! My man !
I could not find it again because any Gemini search term I used is polluted with google …But that’s exactly the one I was thinking of. 👍👍
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.
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.