Gnutella Web Caching System

Version 2 Specifications Client Developers' Guide

Copyright (c) 2003 Hauke Dämpfling, version 1.9.4 / 18.6.2003,

Table of Contents


This document serves a guide for client developers that covers how to use the "new" GWebCache system (as according to the "version 2 specifications", also referred to as GWC2). This document should be considered "beta". Clients and caches using these specs have not been thoroughly tested.

GWebCache, even though it is designed for simplicity, will only work if several key functionalities are implemented by developers. Therefore, developers, read this document carefully.

To understand why this is so important: Because some clients had errors in their code, people who ran GWebCaches had (and may still have) much grief, because these clients relentlessly hammered away at the servers, in some cases even continuing to hammer servers' IP's when the virtual web servers were shut down. Such utter lack of responsibility in coding put many users in a situation that they could not escape from, and such a situation must not be repeated.

Therefore, I hope that you understand why it is critical that you read and understand this entire document. And, when you get ready to release your shiny new client with GWebCache v2 functionality, you will thoroughly test the interaction with a web cache before making any releases.

A bunch of Thank Yous for support of the GWebCache project with many ideas and code: John Marshall, Robert Rainwater, Guo Xu, Tor Klingberg, Christopher Rohrs, Mike Green, Nick Randall, ...

If you have any questions, comments, suggestions, (constructive) criticisms, etc., please post them in the Forum right away.

^ Top ^

Developers Guide


A GWebCache is a script on a web server, clients use normal HTTP. It stores IP addresses of Gnutella nodes and the URLs of other caches. Clients (ultrapeers) make regular updates to GWCs to keep the information fresh.

Summary of Important Things to Remember

Each of these points is described in more detail below.

Step 1: How to store GWC data in your client

Step 2: How to interact with GWebCaches

Step 3: GWebCache output format

Step 4: How to make updates to a cache

Step 5: How to request information from a GWebCache

Extras: Using the "Network" Parameter

Extras: Using the Timestamp information

Extras: Clustering Information

^ Top ^

Change Log

- Changed "alpha" to "beta" status

- Added clustering information
- Smaller corrections and updates

- Replaced "Important Traffic Issues" by "Summary of Important Things to Remember"

- Added Timestamp information

- Added Traffic section

- Clarified Remote-IP/X-Remote-IP issues

- First release of "Developers' Guide"

^ Top ^

GWebCache Home
See also:
Copyright (c) 2003 Hauke Dämpfling. License Terms: FDL.