subject: Gnutella Web Cache [print this page] Gnutella Web Cache Gnutella Web Cache
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network. These are critical to ensuring the health of the network.
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:
JSP (Java Servlet)
Jums Web Cache (Excellent for heavy loads)
C
GhostWhiteCrab (For dedicated server environments and people who know how to compile C source code!)
ASP
Gerry GWC
Lynn (v.s. 0.5)
Lynn (v.s. 0.4)
LynnX
Perl
Jon Atkins' perlgcache
The original GnuWebCache
PHP (Tip: PHP GWCs are usually the easiest to run and setup on a server.)
PHPGnuCacheII
Bazooka G2WC
The original GnuWebCache (PHP version is no longer supported)
Skulls! Multi-Network WebCache
Beacon Cache
Cachechu G2WC
Breakdown Of The Gnutella Web Caches
Cache:
Gnutella:
Gnutella2:
Spec 1:
Spec 2:
Flat-File:
MySQL:
Installer:
Other Networks:
Multiple networks at a timemulti-net[:
Beacon Cache (Core 2)
Yes
Yes
Yes
Yes
Yes
Yes (As of 0.2.0 Alpha)
Yes
Yes
Yes
Beacon Cache (Core 1)
Yes
Yes
Yes
Yes
Yes
No
Yes
Yes
Yes
Skulls
Yes
Yes
Yes
Yes
Yes
No
No
Yes
Yes
JumsWebCache
Yes
Yes
Yes
Yes
Yes
No
No
Yes
Yes
GnuWebCache (Perl)
Yes
Yes
Yes
Yes
Yes
No
No
Yes
Yes
GnuWebCache (PHP)
Yes
No
Yes
No
Yes
No
No
No
No
GhostWhiteCrab(GWC)
Yes
Yes
Yes
Yes
N/A
Yes
No
PHPGnuCacheII
Yes
Yes
Yes
Yes
No
Yes
No
No
Yes
Bazooka
No
Yes
No
Yes
Yes
No
Yes
No
No
Cachechu
No
Yes
No
Yes
Yes
No
No
No
No
Perlgcache
Yes
No
Yes
Yes
Yes
No
No
No
No
Gerry GWC (v2)
Yes
No
No
Yes
Yes
No
No
No
No
Gerry GWC (v1)
Yes
No
Yes
No
Yes
No
No
No
No
Lynn
Yes
No
Yes
No
Yes
No
No
No
No
LynnX
Yes
No
No
Yes
Yes
No
No
No
No
^multi-net:This should be set to Yes only if the cache can handle multiple networks simultaneously without erroneously mixing data of various networks; many caches support multiple networks but they can be used only on ONE network, that it is set in the settings.
Then add the cache name and version: I|pong|fakecache 0.01
Then lastly add the network support:
I|pong|fakecache 0.01|gnutella
- Gnutella only
I|pong|fakecache 0.01|gnutella2
- Gnutella2 only
I|pong|fakecache 0.01|gnutella-gnutella2
- Gnutella and Gnutella2 served
get:
Used by clients to requests alternate cache URLs along with IPs and their port numbers.
update:
url:
Client update giving an alternate cache URL.
Formatted with a http:// prefix to each cache.
ip:
Client update giving one's IP to submit.
net:
Which network to serve the client.
Gnutella
Ex: net=gnutella
Gnutella2
Ex: net=gnutella2
Should always be lowercase
GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches
solely on case alone.
client:
Four letter code of the client. ex: RAZA
version:
Version number of the client.
Optional
cluster:
To add extra info to an IP update.
Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull****
x_leaves:
Number of leaves running on a given Gnutella2 hub.
statfile:
Statistics of the cache request:
First line: Total requests of the cache number.
Second line: Requests of the cache an hour number.
Third line: Updates of the cache an hour number.
info:
Output extra details of your cache.
Start with the informational response: I|
Ex: I|open-source|1
support:
To output USEFUL details of your cache.
Start with the informational response: I|
Ex: I|support|gnutella2
spec:
To force the specification parameter
Currently is only supported by Beacon Cache II
Pinging Caches With Your Cache
Please follow this standard:
Client: TEST
Version: Your Cache's Name
The old value for "version" was 1
Some variables to attach to the ping (compatibility):
multi
Used by some gwcs in their pings to other gwcs.
It tells the pinged cache to ignore the "net" parameter (so it should never say network not supported) and outputting the pong using this format, if possible, "I|pong|[cache name] [cache version]|[supported networks list]|[url adding is enabled]" - example: I|pong|Skulls 0.2.8a|gnutella-gnutella2|1
Used by Skulls GWC only.
cache
This is added to every request made by some gwcs, it is for statistical purposes only.
It simply tells the remote cache that the client is a GWC.
Help
For PHP
Use the fsockopen() function to open a connection to a cache.
Make sure you "write" to the fsockopen carry value to open the GWC's target file.