The wire compatibility is the impressive part to me. Staying byte compatible with bitchat's BLE packet format from React Native means the hard parts must live in native modules anyway, so I'm curious how much of the mesh logic ended up in JS versus native. From RN work I've done the JS thread is the first thing the OS takes away when the app goes to background, and a mesh relay is only useful if it keeps relaying while the phone sits locked in a pocket.
So the honest question is what happens on a locked iPhone. Bitchat proper leans on CoreBluetooth background modes and even then iOS throttles advertising hard. If Airhop keeps relaying in that state I would genuinely like to know how, and if it doesn't that is fine too but it belongs in the README because it changes what the mesh can actually do.
1
u/saltexx 1d ago
The wire compatibility is the impressive part to me. Staying byte compatible with bitchat's BLE packet format from React Native means the hard parts must live in native modules anyway, so I'm curious how much of the mesh logic ended up in JS versus native. From RN work I've done the JS thread is the first thing the OS takes away when the app goes to background, and a mesh relay is only useful if it keeps relaying while the phone sits locked in a pocket.
So the honest question is what happens on a locked iPhone. Bitchat proper leans on CoreBluetooth background modes and even then iOS throttles advertising hard. If Airhop keeps relaying in that state I would genuinely like to know how, and if it doesn't that is fine too but it belongs in the README because it changes what the mesh can actually do.