Share

The Treehouse Gnutella2 Project

File Release Notes and Changelog

Release Name: build2

Notes: treehouse-1.0 release notes build2, 21.01.2004 ======================================= Build 2 of the Treehouse project now has a stable code base with most of the required functionallity for the Common Gnutella2 standard. The communication infrastructure necessary for Gnuntella2 (TCP and UDP) is now in place and functional. Implemented features: * Bidirectional TCP stream connections * Bidirectional reliable UDP protocol * HTTP-style link negotiation, exchanging the required headers * Gnutella2 protocol support, graceful handling of unknown trees What's next: The next release (build 3) will focus on the implementation of the basic link handshaking (PI/PO/LNI/KHL) necessary for maintaining the Gnutella2 network infrastructure. I will also clean up the code, and document everything so that there is a solid foundation for future. build1, 19.12.2003 ======================================= This is the first release of the Treehouse 1.0 project. The current implementation is released in order to give interested developers early access to the code base. This release is by no means bug free, stable or final. This is also why there will be no documentation at this stage. Implemented features: * Bidirectional TCP stream connections * HTTP-style link negotiation, exchanging the required headers * Gnutella2 protocol support, graceful handling of unknown trees * Basic link handshaking and maintenance functionality PI, PO messages Known issues & bugs: ... no comment :-) 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 More information on Gnutella2 can be found at http://www.gnutella2.com Have fun! luckydragon@area51coding.com


Changes: treehouse-1.0, build1 read-me What is the Treehouse Project? The goal of the Treehouse project is to provide a robust peer-to-peer infrastructure for any kind of distributed applications, but the Treehouse project is not about file-sharing! The first implementation of the Treehouse *protocol* will be based on the Gnutella2 specification. What is the scope of the first release? The first release of the Treehouse project implements all features that are necessary in order to be compliant with the Gnutella2 Standard. 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. 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 More information on Gnutella2 can be found at http://www.gnutella2.com Have fun! luckydragon@area51coding.com