Live data from Hacker News

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

github.com

11–20 of 457 posts

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

#11
post #7

Looks pretty interesting. From what I can see, it's a native IOS/MacOS app (SwiftUI). I don't see an Android version. Also seems pretty spartan, but it looks like it could be embedded in "friendlier" apps.

No android but “can” be built? > protocol is designed to be platform-agnostic. An Android client can be built https://github.com/jackjackbits/bitchat?tab=readme-ov-file#a...

As long as it's Swift, I guess. The Protocols files seem "agnostic." I think the lower-level hardware files might need to be rewritten, though, so he's saying that an Android developer could write an app that incorporates the protocol.

If I were an Android developer, though, I'd just use the Swift files as a requirements spec, and write it native.

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

#12
Interesting try but Bluetooth LE is a non-starter when talking about building a truly decentralized mesh network at scale. The range isn’t there to build a network unless its very tight (in distance). You need sub MHz and eventually cubesats to build something robust, everything else is a toy.

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

#15

Whoa this is really neat. I’ve been trying to get into Meshtastic but it’s hard to convince others when you need special hardware. Would be super neat if Apple did something similar. Shouldn’t be too hard since the AirTags use the same idea? Would also be neat if there was a way to build a LoRA proxy to extend the range. I might give this a try with my meshtastic devices.

I'm working on a project that uses the same kind of idea as the Bluetooth tracking tags.

It's an Arduino library for mesh networking, that works over BLE and UDP, but it can also link to MQTT.

An MQTT node routes the packets it sees to the appropriate topics, and subscribes to topics for all the channels local nodes want, so you should be able to talk to anyone anywhere via the gateway.

The packet destination addresses are rolling codes, so you can't tell if someone's online just by watching their channel, at least not for more than an hour.

And there's a web app that talks directly to the public MQTT broker, and it can do chat and sensor data.

All payloads are Messagepack to make it easy to add new data types, and all packets are encrypted, authenticated, and timestamped to provide a bit of replay protection.

Everything is purely symmetric crypto, trust is left to a higher layer or something out of band, so you there's no handshakes or connection state management overhead, aside from one announce packet per hour to make the MQTT gateways work.

No LoRa, but the transports are modular and pluggable so you can easily add them. I just only have one LoRa Arduino node here so I haven't bothered writing a driver.

I'm also working on a Python port for easy pip-installable bots and home automation stuff.

https://github.com/EternityForest/LazyMesh#

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

#18

Looks pretty interesting. From what I can see, it's a native IOS/MacOS app (SwiftUI). I don't see an Android version. Also seems pretty spartan, but it looks like it could be embedded in "friendlier" apps.

>Universal App

For Apple only. In what way is this universal?

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

#19
this looks great for most use cases. most interception has been ruled out by the simple protocol for rooms, where the remaining attack appears to be just to clone the users keys, where it's more viable to attack the phones than the protocol, which is the point.

the spitball questions I would ask might be, a) how do you handle a theoretical timing attack where the time to respond to a room scan could yield whether a given device is a member of a known room, (the paralellism?) and b) does the GCM counter IV/nonce value cluster around rooms, so the counter for a given room will be in a shared range?

not dealbreakers or anything, this is simple and cool for its purpose, but design consideration wise, what's the thinking on those scenarios?

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

#20
post #14

FYI on X there is a TestFlight link to try it: https://x.com/jack/status/1941989435962212728 Surprised to see Jack pushing code himself. Love to see it.

Is there a link to the TestFlight itself?

https://testflight.apple.com/join/QwkyFq6z
Post reply on HN