I opened a PR for the Android app with some cheap routing optimizations: permissionlesstech/bitchat-android#57
I'll reiterate what's there:
- Don't relay a packet to the peripheral/central matching the
senderID or the relayer (based on Bluetooth address) of this packet, as they already generated or received the packet.
- Send a packet with specific destination only to the peripheral/central matching the
recipientID, if we’re directly connected, again using the Bluetooth address.
- Do not relay an ACK or read receipt coming from ourselves (same was already done for messages).
I believe it would be good to also implement them for iOS, but I’m not able to test this.
Also, based on Meshtastic experience another possible optimization I thought of was to not relay a private message (or cancel it if it was already queued) when you received the delivery ACK already. This is apart from stopping retries, as packets may be received out of order due to random delays and different routes.
Other routing improvements likely need (flooded) control packets to discover the network beyond the 1-hop neighborhood. When you assume moving devices, these need to be sent frequently, making it hard to balance overhead and routing efficiency.
I opened a PR for the Android app with some cheap routing optimizations: permissionlesstech/bitchat-android#57
I'll reiterate what's there:
senderIDor the relayer (based on Bluetooth address) of this packet, as they already generated or received the packet.recipientID, if we’re directly connected, again using the Bluetooth address.I believe it would be good to also implement them for iOS, but I’m not able to test this.
Also, based on Meshtastic experience another possible optimization I thought of was to not relay a private message (or cancel it if it was already queued) when you received the delivery ACK already. This is apart from stopping retries, as packets may be received out of order due to random delays and different routes.
Other routing improvements likely need (flooded) control packets to discover the network beyond the 1-hop neighborhood. When you assume moving devices, these need to be sent frequently, making it hard to balance overhead and routing efficiency.