Slashdot Mirror


Gnutella2 Specifications

An anonymous reader writes "After lots of heated debate regarding Gnutella2, (first story and more recent story), the specifications have finally been released. There is a mirror here. Let the debates begin."

13 of 254 comments (clear)

  1. what happened to giFT by Anonymous Coward · · Score: 1, Informative

    i'm surprised nobody mentions giFT anymore. the later cvs's work pretty well now, with less corruption.

  2. The "About" information by Berylium · · Score: 5, Informative

    For those of you who don't want to pop over to the site. Or if it get's slashdotted (which would be odd).

    What is Gnutella2?
    Gnutella2 is a modern and efficient peer-to-peer network standard and architecture designed to provide a solid foundation for distributed global services such as person to person communication, data location and transfer and other future services.

    Why is it needed?
    Peer to peer technologies have become mainstream over recent years, and there are already a significant number of P2P networks in various stages of development and operation.

    How does yet another network help?
    Gnutella2 is unique amongst the currently operating peer to peer networks in several important ways:
    * Many of the most successful networks are "closed", owned by a single entity with restrictions or fees constituting a barrier to participation. This is not a viable model for an open, general purpose network. Gnutella2 is an open architecture where anyone is welcome to participate and contribute. The network has been designed to allow such diversity without the need for messy hacks or compromises in integrity.
    * The majority of networks are devoted to a single purpose, often the sharing of files. This is certainly a popular application for peer to peer technology, but it is by no means the only application. Gnutella2 is designed as a general purpose network which can be used as a solid foundation for any number of different peer to peer applications - vanilla file sharing, communications tools or other ideas which are yet to be conceived.
    * Some peer to peer networks have been developed with similar general purpose goals, however they have been unable to compete in the most popular application of the day, which is file sharing. For a general purpose network to succeed, it must be able to compete with purpose-specific networks in the most popular purpose. Gnutella2 is not only able to compete with the current popular file sharing specific networks, it outperforms them.

    What About "Old Gnutella"?
    The original "Gnutella" was created several years ago as a very simple, single vendor file-sharing specific network. Its simplicity made it a popular platform for file sharing application developers; however this simplicity also critically limited its effectiveness. As a result, competing file-sharing specific networks slowly but surely took over as the tools of choice as Gnutella users became frustrated with poor performance and turned elsewhere.
    The original Gnutella[1] network was designed for a very limited purpose and, despite many changes over the years, remains limited today. Efforts to make it a better file sharing network continue with mixed success.
    Gnutella2 shares the "Gnutella" name, striving to create the network that Gnutella should have been from the beginning. It shares the adopted ideals of openness and cooperation, but offers a fresh start that was sorely needed. The crippling limitations of the old network have been left behind and replaced with an entirely new network architecture ready to grow and develop through the creative efforts of many.

    What is the Scope of Gnutella2?
    The single name "Gnutella2" really refers to two separate components: Gnutella2 the Standard and Gnutella2 the Network.
    The Gnutella2 Network is perhaps the most easily recognised component. It is a new high-performance peer to peer network architecture upon which a variety of distributed applications can be built, such as file sharing applications, communication tools, etc.
    The Gnutella2 Standard is a set of requirements for building applications which operate on the Gnutella2 network in different capacities. It specifies the minimum compliance level required to be recognised as a Gnutella2-compatible application. Compliance with a Gnutella2 Standard ensures participating applications provide a minimum acceptable level of service to other network participants.

    1. Re:The "About" information by Adam+Fisk · · Score: 5, Informative
      Gnutella2, or "Mike's Protocol," has some interesting properties. It has nothing whatsoever to do with Gnutella, however. It's a separate protocol that is bootstrapping off of the Gnutella name to do things like get on Slashdot, and everyone here is falling for it.

      Characterizations of Gnutella as a simple, old protocol reflect a woeful ignorance of the many innovations that have emerged from Gnutella. In fact, much of Mike's Protocol calls "Gnutella 2" are innovations developed on Gnutella itself. These aren't simply close copies -- the protocols he cites are, in fact, Gnutella protocols. There are many more innovations happening on Gnutella as we speak, and the highjacking of the Gnutella name by Mike has weakened the fabric of an otherwise strong and open development community.

      We should all support open networks by supporting Gnutella. Gnutella2 offers interesting alternatives, but is no better than the work currently occurring on Gnutella. What's more, few if any Gnutella developers will ever support Gnutella2 because of the divisive way that it was introduced, permanently fracturing the Gnutella community, with almost all of the Gnutella community still working on Gnutella because they were never told of the so-called Gnutella2 until it was slashdotted, much as we're seeing today.

      If you support open protocols, support the original Gnutella. Gnutella2 does not solve any problems not currently solved by the original Gnutella clients. It simply creates division.

      --

      Adam Fisk

    2. Re:The "About" information by Anenga · · Score: 2, Informative
      An interesting parody. The big difference? Linux represented a huge leap forward because it was open source. Gnutella 2 is not a leap forward. It does things like arbitrarily create a new, completely unstandardized messaging system. As any Gnutella developer knows, the problems facing Gnutella, as with most p2p systems, have little to do with the underlying messages. They have to do with topology and the intelligence of the algorithms. Changing every Gnutella message does nothing to address these issues.

      Gnutella1 doesn't work. Gnutella2 does. That seems like a leap forward to me. I could go on to explain why G1 doesn't work and G2 does, but I'd be here all night. Just because Gnutella2 introduces a new packet structure or complex systems such as hub clustering, doesn't move away from the fact that it works better than Gnutella1. The G2 specs isn't just about changing subsystems such as packet structure or changing "Ultrapeers" to "Hubs", it's much more than that. Perhaps you should read them.

      Linux also didn't hijack the Unix name (don't try to make the case that "Linux" is a varient of "Minix"). Everyone was using the Unix name for all sorts of Unix variants. Gnutella 2 is a marketting stunt, and you are furthering that stunt right now. Honestly, if you knew more about what you were doing, I think you'd be embarrassed about your above comment.

      I think you use the word "hijack" too lightly. Hijack means steal something someone else owned. Did you own Gnutella? Legally, Mike didn't do anything wrong. Regarding morally, Mike did first propose G2 to the GDF in hopes of getting the GDF to accept it and move the entire existing gnutella community forward. The GDF pushed G2 out, and thus it became a seperate competing entity. Perhaps Mike could of changed it, but many disagree. Including Swabby of Gnucleus.

      Honestly, if you look at yourself rejecting a superior protocol over your rule of an existing stale one, you'd be embarassed of yourself. You've played with GUESS for God knows how long, that failed. Now it's on to outdegree, something G2 introduced. Lets just step down from our high-horses and enter reality and work towards something which your customers can be prowed of.
    3. Re:The "About" information by Adam+Fisk · · Score: 4, Informative
      This is a scary conversation to get into, but here goes. We're probably both a bit overly fanatical in our viewpoints. MP offers interesting ideas, and it does work well. I think that the underlying technology of Gnutella is significantly more sound, as I've outlined in other threads. To say that "MP works and Gnutella doesn't" is clearly ridiculous. I definitely don't own Gnutella, but many people have put a great deal of effort into the Gnutella network, most of their time volunteered. Those people don't deserve to have their work swept under the umbrella of "Gnutella 2" just so Shareaza can get Slashdotted.

      MP was a separate entity from the beginning -- it hasn't changed significantly since it was first introduced, and the Gnutella world did not embrace it because it made no attempt to have anything to do with Gnutella other than taking it's name so we'd all be talking about it right now.

      I went into the details of why we haven't released GUESS on another thread. In a nutshell, we think that TCP approaches are more robust and can achieve the same efficiency and scalability. MP had nothing to do with increasing the outdegree -- that's an idea that has been around Gnutella for years, and the most rigorous discussion I've seen for why high outdegrees are important is the following paper from the Stanford Peers folks at:

      Beverly Yang and Hector Garcia-Molina. Designing a Super-Peer Network

      That link doesn't seem to be working at the moment, but you can reach it from:

      Stanford Peers Page

      All that said, I wish MP the best. I wish it had chosen a different name, but oh well.

      --

      Adam Fisk

    4. Re:The "About" information by Adam+Fisk · · Score: 2, Informative
      The Tiger Tree specification was worked on and agreed by all of the members of the Gnutella community. The implementation itself is relatively trivial -- agreeing on the spec is the hard part. Even in this case, where there's a very strong, open specification for Tiger Tree exchange in the Tree Hash Exchange (THEX) protocol, Shareaza implements it slightly differently, breaking compatibility with other clients and flying in the face of the specification. You can find THEX at:

      Open Content Network

      THEX is an open specification developed by Gordon Mohr and Justin Chapweske. It's not Gnutella-specific, but it certainly isn't Gnutella 2.

      --

      Adam Fisk

  3. Magnet Link by Anonymous Coward · · Score: 1, Informative

    For current Gnutella2 users you can download the specs through the network here.

  4. Just in case one mirror ain't enough by Anonymous Coward · · Score: 4, Informative

    Common Gnutella2 Standard (All Applications)

    All applications making use of Gnutella2 technology for any application class MUST IMPLEMENT the following core features:

    * Bidirectional TCP stream connections
    (stream compression OPTIONAL)
    * Bidirectional reliable UDP protocol
    (Gnutella2 reliability layer and stateless compression REQUIRED)
    * HTTP-style link negotiation, exchanging at least the required headers
    * Gnutella2 protocol support, graceful handling of unknown trees
    * Localised, UTF-8 and UNICODE decode REQUIRED, encoding to each optional
    * Operation in LEAF mode, additional node states OPTIONAL
    * Basic link handshaking and maintenance functionality (PI/PO/LNI/KHL)
    * Global node addressing scheme and routing maintenance, addressing children (TO)
    * Reverse (PUSH) connection response (connecting out)
    * HTTP/1.1 client and server for peer to peer transactions

    Gnutella2 Standard for File Sharing

    Applications making use of Gnutella2 technology for file sharing MUST IMPLEMENT the following features:

    * All of the COMMON features listed in the previous section
    * Operation in LEAF mode, additional node states OPTIONAL
    * Some form of bandwidth management scheme to keep network and transfer bandwidth below 95% of the user's link capacity - be it manually configured or some automatic scheme (very important to avoid flooding local connection)
    * SHA1 and TIGER ROOT URNs for all shared objects
    * XML metadata using existing schemas where appropriate (manual entry and peer acquired at minimum, automatic local collection highly recommended, service lookup optional)
    * Universal 1-bit query hash filter, at least 2^20 length, intelligent density management scheme (superset combination required if supporting hub mode)
    * Gnutella2 object search mechanism, all client responsibilities and if supporting hub mode, server responsibilities too
    * Local search processing including simple query language (Boolean operations, quoted search terms, numeric range searches, interest flagging (I), local rule-based metadata searching)
    * Extensible hit format (URN/DN/MD/URL are REQUIRED, all other extensions OPTIONAL)
    * HTTP/1.1 based upload system, URN based requesting, partial content requests, active queuing, partial file uploading, timestamp protected alternate source cache and exchange
    * Tiger Tree volume calculation on shared files, caching on downloads, exchange via DIME. Local corruption detection OPTIONAL but recommended.

  5. Re:Two questions: DRM/Flooding & Anonymous Dow by spudmcduck · · Score: 3, Informative

    1. There is a rating system that can help but not prevent this.

    2. No.

  6. Don't be fooled! It's not the 'official' Gnutella2 by Opiuman · · Score: 5, Informative

    It is "Mike's Protocol", as mentioned at the interview linked to from the previous post.

  7. Re:Combine with EMule and Overnet Instead by Inda · · Score: 2, Informative

    With the integration of Overnet [overnet.com] support into EMule it now has the best of both worlds, ...

    You sure about that? There is no mention of Overnet in the eMule changelog. You sure you aren't thinking of the eDonkey Hybrid?

    --
    This post contains benzene, nitrosamines, formaldehyde and hydrogen cyanide.
  8. lMule (Linux) by antdude · · Score: 2, Informative

    In case anyone wants to run eMule in Linux, you can get lMule (Linux port).

    --
    Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
  9. Re:Combine with EMule and Overnet Instead by traskjd · · Score: 2, Informative

    Overnet is not currently integrated with eMule however the developers are working on it. The opcodes are in the source and it should be available in the next few versions somewhere (so I have read).