Tools For Learning about P2P Networking

You must be logged in to create new topics.

Tools For Learning about P2P Networking

  • Michael Marsh

    Hi Everyone!

    As a programmer who’s both extremely interested in liberty and always trying to improve my own skills, I’ve been frustrated at the apparent lack of information on how to build peer to peer networks from formal MOOC sources like Coursera and Udacity.

    Does anyone have experience with any good resources and/or tutorials that really make a point of doing their best to help you learn everything there is to know about building P2P networks? Any courses I may have overlooked?

    You must be logged in to reply to this topic.

  • Luke Parker

    A real course on just how to do P2P networking specifically is non-existent, as far as I know.

    There are two levels of networking code though, which did you mean? The actual networking protocols and routing code, or the P2P software networking that comes baked into all real P2P suites?

    If the former, I’d start looking for answers at the Mesh Networking page on Wikipedia. If the latter, then I’d say just learn python. Python is the backbone of bitcoin, bittorrent, and bitmessage. I believe that getting a firm grasp of python and then heading over to github to download and understand that code is going to be your best bet to learning P2P networks.

     

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Michael Marsh

    Thanks Luke! I actually have a fair amount of experience in writing production python, but not for the kinds of desktop clients I assume you’re referring to.

    That being said, I’m less interested in higher level ways of interfacing with various p2p desktop daemons’ api’s and more in the core concepts involved in implementing such a system. How does one set up an individual “peer”? What kinds of methods are there for finding others on the network?

    I’ll continue my (admittedly passive, at the moment) search for such resources, and post back here if I find anything.

    You must be logged in to reply to this topic.

    • You must be logged in to reply to this topic.

      Chris Pacia

      Take a look a the bitcoin protocol. It’s as open as you can get… one example¬†https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery

      Also look at Tor for another, sort of quasi centralized, model.

      You must be logged in to reply to this topic.

      • You must be logged in to reply to this topic.

    Liam

    P2P is complicated. Assuming that you have a basic understanding of networking, essentially, you can just open a TCP connection between two computers to pass data between them. The problem is that not everyone will have their ports open so you have to essentially find the ones who will allow incoming connection and connect to those only. Then, those nodes can act as an intermediaries for other nodes that cannot connect to each other. There are several techniques involved and I am not really familiar with any of them.

    You might want to check out a p2p library in your language of choice, but then again, most p2p libraries suck.

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

You must be logged in to reply to this topic.