PCP - Command line peer-to-peer data transfer tool based on libp2p

Hi there,

I started building a command line peer-to-peer data transfer tool based on libp2p.

You can find it here: GitHub - dennis-tra/pcp: Command line peer-to-peer data distribution tool. Peer CoPy

The tool is in a very early stage and I’m aware of security, performance and usability issues. For now it works in the limited scope of transfering files in your local network. Don’t use it for anything serious. There is already a very good Go implementation named croc .

My motivation to build a new tool is to levarage the peer-to-peer networking stack that is provided by libp2p. In the future pcp should also enable two peers in different networks to exchange files via a relay. I’m not sure how croc chooses relay servers but I guess there is just a limited set which puts the power to a limited number of service providers and is therefore a centralization concern (if my assumption is correct). By using libp2ps experimental autorelay feature I think pcp takes another step into a more decentralized world.

Let me know what you think

Pretty neat. Why did you choose IPFS over Kad-DHT for peer discovery?
The app might experience big performance gains if you refactored. Use Blake3 for extra brownie points (and performance increase).

Hey @J0Nilsson, I’m afraid I can’t follow :thinking: I’m using the IPFS Kademlia DHT so I didn’t choose IPFS over Kad-DHT. I’m using both?

Where in the architecture would you think Blake3 will bring significant performance gains?