Live data from Hacker News

Bitchat – A decentralized messaging app that works over Bluetooth mesh networks

github.com

401–410 of 457 posts

Re: Bitchat – A decentralized messaging app that works over Bluetooth mesh networks

#401

Earlier quoted context omitted.

To make this work you need to be able to connect to the public blockchain, which of course requires internet access.

Absolutely, to deposit and withdraw. But relay can be done without the Internet.

The central smart contract is on the blockchain and can only be used if the internet is up. That's why you haven't solved anything here.

Your proposal is that since Alice and Bob can't communicate in real-time, either directly or indirectly, Alice does an interaction with a smart contract to lock some value and then Bob does an interaction with the same smart contract to unlock some value.

We can view the smart contract as some shared algorithm between Alice and Bob (if they are running their own nodes) or we can view it as something outside of them both (perhaps they are RPC customers of Infura). If Alice and Bob are running their own nodes, however those nodes manage to communicate with each other is a way they could just send the message to each other and not need a blockchain. And if they're both able to communicate with Infura, they could also swap Infura for Gmail and send each other a message the normal way (or if they can really only reach Infura for some reason, they can put their messages on the blockchain). But we are talking about designing systems that can work in scenarios where direct communication like this is impossible, and messages have to be forwarded hop-by-hop over a span of hours. You can't design a system for slow networking, that assumes the existence of a separate fast network just to run the payment system.

All nodes running a blockchain have to be in low-latency contact with each other. If you try to run Bitcoin in a network with multi-hour latency, you'll never reach consensus on which blocks are in the chain. You'll be hard-forking all over the place. You'd have to slow it down to, like, one block per week, but then it's far too slow to be useful for payments.

If a blockchain exists in such an environment, it exists on a tightly-coupled cluster of nearby nodes. And that cluster is pretty much the same as a single central node, from the perspective of the network. You don't gain anything by making it a cluster (except for redundancy, as usual).

Re: Bitchat – A decentralized messaging app that works over Bluetooth mesh networks

#402
post #258

Earlier quoted context omitted.

Flooding does work for sending individual messages from user A to user B at a small enough scale, but it gets progressively less efficient as the network grows, and at some level it will collapse.

Flooding works if there is not too much hops between the sender and the recipient. For indoor IoT, it is very rare to have more than 3 hops and the data rates are extremely low and messages are just few bytes (on/off light, temperature). It would only take 4 people at 5 hops apart trying to exchange photos of less than a megabyte to completely saturate a network of hundred devices.

It depends on how often they're exchanging those photos, but it doesn't depend on the number of hops, or even the number of nodes, just the total number of publishers and the bandwidth desired by each publisher. In flooding every message gets transmitted (eventually) by every device, so the bandwidth available for the average publisher is the bandwidth of the slowest device divided by the number of publishers, regardless of how many hops or nodes there are.

Re: Bitchat – A decentralized messaging app that works over Bluetooth mesh networks

#403

I’ve been toying with a concept inspired by Apple’s Find My network: Imagine a decentralized, delay-tolerant messaging system where messages hop device-to-device (e.g., via Bluetooth, UWB, Wi-Fi Direct), similar to how “Find My” relays location via nearby iPhones. Now add a twist: • Senders pay a small fee to send a message. • Relaying devices earn a micro-payment (could be tokens, sats, etc.) for carrying the messag…

Why does anyone need a cash incentive to pass a message silently? There is literally zero marginal cost to them to do this. Why does everything have to cost/make money?

I see it as an anti-spam measure. If sending a message costs nothing I could just flood you with messages as fast as you can forward them. That's probably not okay with you. But if you get paid then it probably is okay with you.

Re: Bitchat – A decentralized messaging app that works over Bluetooth mesh networks

#405
post #9

Very nice! Could this be published in the App Store, or does it use any APIs Apple considers off-limits? I'm regularly frustrated by modern phone's complete inabilities to allow any communication when outside of mobile network or Wi-Fi coverage, not even within the two large walled gardens. It would be so easy for Apple to extend iMessage to work peer-to-peer, at least between people that have already messaged each o…

Legit curious what the use case would be, that would justify Apple adding it in. Like, when do you need to text someone who's within Bluetooth range but somehow has no WiFi or cell reception?

This happens at festivals - despite being largely offline events, you still want to text your friends "hey I'm over at ", but the one rural cell that's usually empty for 362 days out of the year is getting DDoSed by 50000 people suddenly arriving one weekend.

Re: Bitchat – A decentralized messaging app that works over Bluetooth mesh networks

#407
post #256

Earlier quoted context omitted.

You need to track individual subscribers at that point, which uses lots of ram and could use lots of airtime, heuristics like resending until you get 1 reply like Meshtastic don't work well. If there's receive window timing issues you can't assume two nodes right next two each other will get the same subset of packets most of the time. My solution is just to resend every message four times, and not bother with protoc…

There are scalable reliable multicast protocol designs that don't require publishers to track subscriber lists, but you're right that the approach I suggested above would require that.

[deleted]

Re: Bitchat – A decentralized messaging app that works over Bluetooth mesh networks

#409
post #93

Earlier quoted context omitted.

That’s only because there is only one alternative that is more or less equally shitty (Android) and no room for any competition whatsoever. It’s not like people really have options to choose when it comes to choosing a smartphone. It’s easy to have a growing share price when you are a duopoly. You don’t have to serve your users.

Android may be shitty but it allows you to install an APK you downloaded from god knows where, and that's enough of a deal-making feature for me. I also own a Linux phone, but I don't use it. Maybe one day someone will create one that's actually usable...

That was not the point of the discussion.

I could answer "iOS may be shitty but it doesn't phone home every touch and your health data stays local". I really don't want to argue abour iOs vs Android. I used both. They are both shit made to lock their users in an ecosystem that solely benefits Google or Apple. I really couldnt care more about arguing which is worse, I would just want the market to allow something better than both for me, the user.

Re: Bitchat – A decentralized messaging app that works over Bluetooth mesh networks

#410

A bit different, as it's mainly for voice - but I made an app 'Murmur : Bluetooth Group Calls' - that lets you hold group voice calls and message via a mesh of Bluetooth LE connections. It's available on Android and iOS. https://apps.apple.com/gb/app/murmur-bluetooth-group-calls/i... Doesn't really get any downloads, so not sure there's much demand for this - but I use it with some shokz bone conducting headphones fo…

This looks really cool. I'd see it being useful as a headset to talk to camera people and others during a live stream. We already have hardware for this, but if we didn't it would be great.

For my use, I'd like to be able to join and monitor multiple groups at once (cameras, presenters, certain others individually), and select which I talk to (including being able to talk to several or all groups at once).

Another feature idea, if you are out of range, it would be good if there was an option to save the message until you come back and replay it.

Post reply on HN