[HN Gopher] Show HN: Peer-to-Peer data transfer tool based on li...
       ___________________________________________________________________
        
       Show HN: Peer-to-Peer data transfer tool based on libp2p
        
       Author : dennis-tra
       Score  : 71 points
       Date   : 2021-02-13 15:47 UTC (7 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | mapgrep wrote:
       | Looks cool. Is it safe to assume it's just a typo/accident that
       | the codes don't seem to match here?:                 The sending
       | peer runs:              $ pcp send my_file       Code is:
       | bubble-enemy-result-increase       On the other machine run:
       | pcp receive bubble-enemy-result-increase              The
       | receiving peer runs:              $ pcp receive december-iron-
       | old-increase       Looking for peer december-iron-old-increase...
        
         | lifty wrote:
         | Indeed it was a typo. The README has been updated.
        
         | dennis-tra wrote:
         | Thanks @mapgrep, I fixed the typo based on your comment, but
         | couldn't reply timely due to the noprocrast setting of HN.
        
       | rgbrgb wrote:
       | Nice README and tech! I like these projects in theory and I get
       | the technical motivation, especially in reference to similar p2p
       | tools that rely on a centralized peering server. But I'm having
       | trouble understanding what people use these tools for in
       | practice. I'm betting there are good use-cases, but I haven't
       | seen any yet that wouldn't be better served by s3, airdrop, or
       | BitTorrent.
       | 
       | Anyone here using pcp, croc, magic-wormhole, etc.?
       | 
       | What are you using it for?
        
       | _prometheus wrote:
       | awesome! :)
        
       | mintplant wrote:
       | > When the peer is found, its public key is checked against the
       | three remaining words (as the words were derived from that key),
       | and a password authenticated key exchange happens to authenticate
       | each other.
       | 
       | What's the PAKE used for, if the public key is already verified?
       | What's the "password" here?
        
       | wngr wrote:
       | Awesome project, and a great README! How does it handle NATs?
       | And, if I understand correctly, the receiver needs to enter `pcp
       | receive` within 5 mins from the sender initiating the send? Seems
       | a bit unergonomic. Anyway, why do you think that kind of
       | "sharding" is necessary?
        
         | dennis-tra wrote:
         | Thanks @wngr!
         | 
         | I really appreciate that this project gets a little attention.
         | 
         | Libp2p provides ways to establish a connection through NATs.
         | For more information I recommend looking up the Identify [0]
         | and Circuit Relay [1] protocols, as well as the NAT Traversal
         | docs [2].
         | 
         | I implemented time based sharding because the DHT entries will
         | remain there for up to 24h. So there is a significant chance
         | for a channel ID collision that would result in connection
         | attempts to peers that are long gone.
         | 
         | This is indeed a bit unergonomic and I haven't covered edge
         | cases that come with that approach. Open for suggestions :)
         | 
         | Best
         | 
         | [0] https://docs.libp2p.io/concepts/protocols/#identify [1]
         | https://docs.libp2p.io/concepts/protocols/#circuit-relay [2]
         | https://docs.libp2p.io/concepts/nat/
        
       | woleium wrote:
       | so.. like magic wormhole then?
        
       | Ericson2314 wrote:
       | Always excited to see libp2p used by more things. Historically I
       | feel like the efforts for p2p things were pretty balkanized.
       | Experimentation is good, but not at the cost of network effects
       | and the eventual need to pressure network operators.
       | 
       | The more different things use libp2p, the more flexible it will
       | become. We can get meaningful experimentation and
       | interoperability (different concepts won't interoperate of
       | course, but the same concept will). This is nice!
        
       | marcodiego wrote:
       | I miss the days when it was easy to find content on Napster and
       | later Kazaa. Today, Solseek seems to be the only p2p network that
       | still preserves that feeling while gnutella fells more like a
       | graveyard and torrent needs external trackers.
       | 
       | Is there any decentralized p2p network where it is easy to find
       | content nowadays?
        
         | capableweb wrote:
         | Agree with you. I fondly remember the days of browsing and
         | trying to get invited to DC++ hubs and trying to add more local
         | data in order to see more. Gone are those days.
         | 
         | We're so close as well! P2P is stronger than ever, especially
         | torrents who have very mature implementations now. We're just
         | missing being able to distribute the metadata in order to get
         | the torrents (or magnet links) to be P2P as well, something
         | like TPB on a P2P network would make things unstoppable.
        
           | marcodiego wrote:
           | Why can't simply .torrent files be distributed using
           | gnutella2? Both services could then be integrated and we
           | would automatically get decentralized distributed search and
           | sharing.
        
             | yjftsjthsd-h wrote:
             | Don't you need a tracker still?
        
               | heavyset_go wrote:
               | Not with DHT.
        
           | rakoo wrote:
           | Having a distributed search engine is far from easy (there's
           | the main issue of trust in the index). It's possible to do it
           | the other way around, thanks to DHT scraping being allowed:
           | everyone can scrape the peers and build an index at home,
           | with tools like magnetico
           | (https://github.com/boramalper/magnetico) for example
        
       ___________________________________________________________________
       (page generated 2021-02-13 23:01 UTC)