pull down to refresh
Small correction: in the signature part, it should be Priv[0], Priv[1], ..., Priv[31] instead of Priv[0] repeated 🙏
As you mentioned “99.99% of people aren’t going to buy a dedicated device just for this”
I'm curious, what kind of range does Reticulum offer? (BitChat already claims a 300m range in its current state)
Do relays have to be running a bitchat app in the background to act as relays?
IIRC relays must have the app running. The code below explains how relalys forward messages through the mesh network:
// From the message handling code:
// Relay broadcast messages
var relayPacket = packet
relayPacket.ttl -= 1
if relayPacket.ttl > 0 {
// Probabilistic flooding with smart relay decisions
let relayProb = self.adaptiveRelayProbability
// Always relay if TTL is high (fresh messages need to spread)
// or if we have few peers (ensure coverage in sparse networks)
let shouldRelay = relayPacket.ttl >= 4 ||
self.activePeers.count <= 3 ||
Double.random(in: 0...1) < relayProb
if shouldRelay {
// Add random delay to prevent collision storms
let delay = Double.random(in: minMessageDelay...maxMessageDelay)
DispatchQueue.main.asyncAfter(deadline: .now() + delay) { [weak self] in
self?.broadcastPacket(relayPacket)
}
}
}
If so, this relies upon network effect of people joining the network to help it expand
Yes, but I think it's a different kind of network effect. Traditional messaging apps need millions of users everywhere. BitChat just needs the people around you to have it when you actually need it (protests, disasters, events, conferences, ...)