P2P Foundation

Researching, documenting and promoting peer to peer practices


    Admin

    P2P Foundation Sites/Publications

    Worth Reading

    Introductory Essay
    Extensive Essay

    Sponsors

    Interviews

    Video

    - New P2P Video at Pixelace, Helsinki, March 2009

    Podcasts

    - Interview at Open Views by Sundar Raman, 9th March 2007
    - Interview with Richard Poynder

    Resources

    Delicious P2P tags
    P2P Blog Aggregator
    P2P Encyclopedia
    P2P Foundation Wiki
    P2P Meme Map
    P2P Movements
    P2P Podcasts
    P2P Tools
    P2P Topical Index
    P2P Webcasts
    givegetnation

    Visit our archive

  • Books


    Free Software, Free Society

    Community

    Join the P2P Community on Frappr frappr link to our community

    Want to advertise? Click here.

  • Subscribe



  • Donate

    If you value the insight and content of this site, gift us with a contribution.

  • Communities and Networks Connection
  • Recent Comments:

    • rachel: well its true that kens work is great, and some of these critics are downright...
    • Michel Bauwens: This contribution from Jeff Vail, sent by email, is not directly...
    • Michel Bauwens: Commentary by Eric Hunting, via email: Apple has, ironically, always...
    • Michel Bauwens: Feel free to post it as a comment, and we can upgrade it to an article,...
    • laws and liberty: Lol, I wouldn’t have said that personally, but this is a very...

  • Authors

  • Building Torrent Family Trees (Beta)

    photo of tomas

    tomas
    11th November 2009


    (This research was presented to eComm 2009 in Amsterdam and also posted on the Catblog.)

    We are used to seeing family trees in biology.  For example this is the human family tree:

    Biology family tree

    Biology family tree

    But how about for software?  I think it is possible for us to look at family tree of digital media too:  So here is what the family tree for BitTorrent software looks like:

    Bittorrent family tree

    Bittorrent family tree

    So what does this image mean?  The first key point to note here is that this is not a family tree of the idea of torrents (we’ll call that a ‘meme‘) but of the actual source-code relationships between BitTorrent and subsequent software clients based on it.

    In biology, relationships between species can be determined using phylogenetic analysis – where the evolutionary relatedness among various groups of organisms are determined via molecular sequencing data and morphological data matrices.  These linkages can then be plotted onto a phylogenetic tree.  The branching structure is used because evolution is a branching process, whereby alteration over time can result in speciation and thus branching of populations. As species hybridize or terminate (extinction), the results can be visualized in a phylogenetic tree.  This is a strong similarity to the methodological approach being used here; by plotting the generations of a species of p2p software along with where the off-shoot branched from the common ancestor (the code-basis).

    The key reason that this is akin to the  phylogenetic method is because the linkages are based on relationships of the source code (read: DNA) and not upon the meme-layer (read:idea). A similar exercise but around the meme-layer would produce very different results.

    So how was the image generated?  I am interested in the change over time of software systems.  To get more of an overview of the world of p2p software I thought it would be interesting to see the changes over time as a whole.  So with this in mind I looked to the releases of versions of each and every p2p torrent client.  This has been done using the following methodology;

    • Create an entry for each type of torrent client software.  For this experiment, only separate software systems designed to be installed on a operating system were used. This research did not include non-installed software such as browser clients like BitLet.org or mobile phone versions of software.
    • For that client, search for the changelog, if not possible then look for the date of the source code releases and if this cannot be found, then the executable releases or news and/or email list announcements.  If multiple dates were given for the same release version, then the date of the source code (.tar) files were used as the primary source.
    • On a per-month basis, record the most current version released in that month. The record is in the form of the version number given by the developers, abbreviated to one decimal place (rounded down always).  am aware that this is a self-reported piece of data, and it should not be considered that either within that project or in comparison to other project, there is enough consistency to consider this number an empirical item of data, however it does provide a numerical record of generational change.  See detailed notes at the end of this post*.
    • Where is is noted in the documents read for research, record what other source code was used in the construction of the project – this gives us a sense of the linkages between projects (sub-species) and allows us to construct a family tree.  This is generally recorded by the developer in their notes.  The beta data-set, including reference links t where the data came from, is available as a spreadsheet here.
    • Enter this data into a graph plotting version number over time.  This gives us a broad view of p2p software releases over time.
    • Then plot the main linkages between the different releases by their basis source code, e.g. Tomato Torrent is based on v4.2 of BitTorrent – this is recorded as a family linkage.  Over the graph, draw lines to connect the ‘off-shoot’ software to their ‘code-basis’.

    This method produces the following results (the graph is pretty big, so if you want to see it in more detail, look at the PDF)

    Graph of p2p client versions over time

    Graph of p2p client versions over time

    So when the family linkages of the main progenitor software (which the data showed to be Azureus, BitTorrent and LibTorrent) are plotted onto this graph we can see:

    Graph of p2p client versions with linkages over time

    Graph of p2p client versions with linkages over time

    Which can then be separated out from the graph to show each family tree in isolation…taking us back to the Bittorrent family tree we started with.

    More info can be found on the CatBot Blog.

    Leave a Reply

    XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>