lbry-sdk icon indicating copy to clipboard operation
lbry-sdk copied to clipboard

Get daemon/content exchange protocol working within local network

Open hackrush01 opened this issue 6 years ago • 3 comments

Till now A LOT of colleges(in India at least) use a local network data/content sharing client called DC++. For using DC++ 1 person needs to create a server(e.g. ptokaX), give that server address to everyone and run the client(e.g. DC++) as well, whereas all the others have to download the client(which didn't work across OSes mostly). But this problem can be solved with a the lbry daemon as it has both a server and a client, and we have our own peer finding protocol, with which people won't have to go around sharing their IP addresses and give out an updated one(when DHCP recycles the IPs) and people can still access shared content. People needed to use DC++ because of data usage restrictions(like 2 GB/day). The functionality of which can be replaced by the lbry protocol.

Note: This was a quick draft of the issue based on the discussion during the planning meeting. This will be actively updated to be more well defined

hackrush01 avatar Jan 22 '19 15:01 hackrush01

TIL DC++ is still in use at colleges (I used it a bunch ~13-15 years ago).

I think this is a great idea!

kauffj avatar Jan 22 '19 16:01 kauffj

Draft V1

A DC++ like daemon would likely have the following features:

  • Exclusively local peer discovery/communication(a toggle-able setting maybe)
  • Ability to seamlessly switch network from local to internet and vice-versa

A couple of ultra-cool stretch goals that can also be done are:

  • Content discovery over only local network. In this, the user would select certain files/folders to "publish". Those files would be locally indexed, and then through our DHT we could ping for the list of stuff that everyone online has, and vice versa. Then we could proceed with the download as usual.
  • Implementing the above also means that the daemon(maybe the app too) can now function completely offline in intranets.. But this would mean losing some core functionality such as publishing to blockchain, payable content etc. But this could then also be used in intranets other than colleges such as offices which would be kinda cool use case¯_ (ツ)_/¯

hackrush01 avatar Feb 08 '19 19:02 hackrush01

I was surprised there is no local peer discovery - this would save a lot of useless data transfer if you have multiple clients on the same LAN (say, lbrynet running on a home server you use to support channels you like and the desktop app running on another machine); maybe using libtorrent's implementation as an example could be a way to do it? https://github.com/arvidn/libtorrent/blob/RC_2_0/src/lsd.cpp

m0n5t3r avatar Feb 11 '22 19:02 m0n5t3r