rust-libp2p icon indicating copy to clipboard operation
rust-libp2p copied to clipboard

Additional transports

Open eira-fransham opened this issue 6 years ago • 3 comments

  • [ ] IPC
  • [ ] Bluetooth
  • [ ] NFC

These are all interesting because they have their own discovery mechanisms that don't require Kademlia and in fact discovered addresses should not be propagated over "globally addressable" transports like IP since they would be almost entirely false positives. We could propagate bluetooth addresses to other bluetooth devices (to prevent an identify call) but I don't think that's necessary since we already narrow down the number of devices that we need to connect to by having the concept of "pairing", where the user selects which devices to trust.

I think that a good API would be for these to each have a Controller struct that has a fn scan taking a Fn(impl Stream<Item = Client>) -> impl Stream<Item = Client>, where Client is a struct containing information on a discovered client and the output is a list of clients to attempt connection to. For a chat app, this function could hand off control to a UI dialog and then return the clients that the user has chosen.

eira-fransham avatar Apr 12 '18 12:04 eira-fransham

Bluetooth: https://people.csail.mit.edu/rudolph/Teaching/Articles/BTBook-march.pdf chapter 3.2

tomaka avatar Feb 21 '19 19:02 tomaka

NFC would be pretty cool!

Combined with libp2p compiled to WASM, I guess you could then somehow pair two mobile phones via NFC and use bluetooth as the transport?

thomaseizinger avatar Mar 03 '19 23:03 thomaseizinger

I think ipc is a good idea.

YoshieraHuang avatar Feb 23 '22 14:02 YoshieraHuang

LoRA is becoming a lot more useful IoT, it is able to achieve very large ranges on free bands, and LoRAWAN is designed for an entire city.

TheRook avatar Nov 14 '22 18:11 TheRook

Closing to tidy up the issue board. More transports are still welcome.

thomaseizinger avatar Mar 29 '23 11:03 thomaseizinger