Gnutella Web Cache
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.
Gnutella Web Cache Specifications
Specification 1
Networks Served
Gnutella
Format
Update went fine:
Ex: OK
Update Warning (Small prob., not that bad):
Ex:
OK
WARNING: Error Message
Severe Warning (No 'OK' message sent)
Ex:
WARNING: Error Message
URL Output:
Ex: http://somefreakinrandomcache.com/cache/gcache.php
OR - WITH A PORT NUMBER (If not 80)
Ex: http://somefreakinrandomcache.com:8080/cache/gcache.php
Host Output:
Ex: 66.132.55.12:6346
Pong (ping variable response) - was explained below under the topic: variables.
Example Cache Output (Beacon Cache) For urlfile Command
Example "urlfile Output" URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&client=RAZA&version=2.3.1.3&urlfile=1
Example URL Output:
Getting urls with a pong combined
PONG Beacon Cache 0.1.5D Beta
http://grantgalitz.com/Beacon/gwc.php
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php
http://g2.tjtech.org/g2/
http://g2.tjtech.org/g2/index.php
http://gwc.monnsta.net/
http://holograph.uni.cc/other/skulls.php
http://gwc.pantheraproject.net/gwc.php
http://gwc.eod.cc/skulls.php
http://gwc.frodoslair.net/beacon/gwc.php
http://gwc.mitigated.net/gwc.php
Example Cache Output (Beacon Cache) For hostfile Command
Example "hostfile Output" URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&client=RAZA&version=2.3.1.3&hostfile=1
Example Host Output:
Getting the hosts with a pong combined
PONG Beacon Cache 0.1.5D Beta
71.8.84.153:3915
99.248.214.157:27529
69.60.241.55:16369
193.253.239.246:30218
68.156.175.121:6348
71.179.7.241:18344
74.196.22.241:6348
12.210.197.194:10531
222.150.143.77:10000
58.85.231.135:6346
24.141.199.164:20205
72.175.201.195:6348
69.81.129.228:4880
97.81.221.63:13219
70.15.130.224:7759
216.211.188.106:51903
75.167.168.156:48660
12.214.14.3:35916
76.177.244.106:24180
98.165.218.139:39630
68.112.182.125:3685
68.117.204.57:23482
65.12.154.25:40760
69.180.47.169:5711
75.138.40.173:24987
98.201.19.0:33662
70.187.2.144:6348
68.186.209.107:14429
69.159.7.61:6348
76.208.176.196:48199
For combining a hostfile and urlfile request:
Warning: This is non-standard.
Example Cache Output (Beacon Cache) For bfile Command
Example "bfile Output" URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&client=RAZA&version=2.3.1.3&bfile=1
Example Host and URL Output:
Getting the hosts and urls with a pong combined
PONG Beacon Cache 0.1.5D Beta
71.8.84.153:3915
99.248.214.157:27529
69.60.241.55:16369
193.253.239.246:30218
68.156.175.121:6348
71.179.7.241:18344
74.196.22.241:6348
12.210.197.194:10531
222.150.143.77:10000
58.85.231.135:6346
24.141.199.164:20205
72.175.201.195:6348
69.81.129.228:4880
97.81.221.63:13219
70.15.130.224:7759
216.211.188.106:51903
75.167.168.156:48660
12.214.14.3:35916
76.177.244.106:24180
98.165.218.139:39630
68.112.182.125:3685
68.117.204.57:23482
65.12.154.25:40760
69.180.47.169:5711
75.138.40.173:24987
98.201.19.0:33662
70.187.2.144:6348
68.186.209.107:14429
69.159.7.61:6348
76.208.176.196:48199
http://grantgalitz.com/Beacon/gwc.php
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php
http://g2.tjtech.org/g2/
http://g2.tjtech.org/g2/index.php
http://gwc.monnsta.net/
http://holograph.uni.cc/other/skulls.php
http://gwc.pantheraproject.net/gwc.php
http://gwc.eod.cc/skulls.php
http://gwc.frodoslair.net/beacon/gwc.php
http://gwc.mitigated.net/gwc.php
Variables
Mandatory
ping:
Response should have this always: PONG
After, put the cache's name. ex: PONG fakecache 0.01
client:
Four letter code of the client. ex: RAZA
version:
Version number of the client.
urlfile:
Used by the client to request alternate cache urls.
hostfile:
Used by the client to request IPs with port numbers attached.
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.
url1:
OLD OUTDATED Client update giving an alternate cache URL.
Formatted with a http:// prefix to each cache.
ip1:
OLD OUTDATED Client update giving one's IP to submit.
Optional
bfile:
For clients to request both URLs and IPs from the cache at the same time.
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.
Specification 2
Networks Served
Gnutella, Gnutella2, etc.
Format
Information Output
Starts with: I|
Categories
Pong (ping variable response) - Described below under the topic: variables.
Update Status Response
Format: I|update
Responses
I|update|OK
- Everything went fine.
I|update|OK|WARNING
Small warning.
I|update|WARNING
Severe warning
Plain Warnings
Format: I|WARNING
Append any warning messages after it - Ex: I|WARNING|You came back too early
Extra Info - Described below under the topic: variables.
Host Output
Starts with: H|
Add the IP with its port:
Ex: H|0.0.0.0:6346
Add the time, thereafter, of the host's (In seconds*) time in cache:
Ex: H|0.0.0.0:6346|45
If cluster exists with cluster=somerandomwords
Add the clustered words after the host's age:
Ex: H|0.0.0.0:6346|45|somerandomwords
URL Output
Starts with: U|
Add the URL with http:// before it, plus the port (if it's not 80).
Ex: U|http://somerandomcache.com/
Add the time, thereafter, of the URL's time (In seconds*) in cache:
Ex: U|http://somerandomcache.com/|45
Example Cache Output (Beacon Cache) For get Command
Example URL: http://grantgalitz.com/Beacon/gwc.php?get=1&client=RAZA&version=2.3.1.3&net=gnutella2&ping=1
Example "Get" Output:
Getting the hosts and urls with a pong combined
I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2
H|65.9.200.243:4968|248261
H|68.228.129.75:44599|242678
H|98.240.196.122:8206|240719
H|76.104.12.133:14921|218273
H|69.136.1.12:3924|211610
H|81.154.208.71:8595|174402
H|97.96.105.51:2076|153610
H|74.192.153.212:39340|144203
H|72.190.106.57:12584|132984
H|78.93.71.132:12334|125668
H|82.43.248.184:27560|97974
H|196.205.224.97:6357|86763
H|74.129.219.30:33172|82005
H|76.104.12.133:19185|57182
H|69.59.83.131:18442|38628
U|http://www.k33bz.com/g2/bazooka.php|248639
U|http://gwebcache.ns1.net/|248592
U|http://gwc2.wodi.org/skulls.php|248384
U|http://gwc.guufshop.com/skulls/skulls.php|248322
U|http://groovy.syxy.com/up/skulls.php|248300
U|http://g2.tjtech.org/g2/index.php|247770
U|http://midian.jayl.de/g2/bazooka.php|240719
U|http://www.dom2porno.info/skulls/skulls.php|207473
U|http://gwc.frodoslair.net/skulls/skulls|125668
U|http://holograph.uni.cc/other/skulls.php|9642
Variables
Mandatory
ping:
Main Part: I|pong|
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.
http://us.php.net/manual/en/function.fsockopen.php
Variable Combination Standards
Net variable decides specification!
There are many ways to determine spec., but going with net is the safe way.
Skulls GWC does not use the network parameter to determine specification level.
Beacon Cache (I and II) uses the network parameter to determine the specification level.
Your cache needs to be able to process certain combinations of variables.
Update variable
Update should not fail if absent if spec. 2.
A Specification 2 parameter.
Spec 1 parameters used in Spec 2:
Should still accept hostfile and urlfile responses for spec. 2.
Beacon Cache (I and II) accepts these parameters on spec 2.
The 'spec' paameter can be used to force a specification:
Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request.
Spec 1 = 'spec=1'
Spec 2 = 'spec=2'
If 'spec' is not equal to any current spec, then default to the predetermined spec.
Multiple variable requests
If for instance a ping and request exist, you should always handle them properly.
Same goes with other combos like an update and ping, statfile + ping and info.
Handle multiple variables as BEST as possible!
Some scanners and GWCs like to fit all their requests into one URL send.
Further Information
Original GWC site
GWC Spec. 1
GWC Spec. 2
vde
Gnutella
Pioneers
Justin Frankel Tom Pepper Spencer Kimball Gene Kan
Technology
Tiger Tree hash Distributed hash table Query flooding I2P TLS NAT traversal Magnet URI scheme Gnutella Web Cache
Terminology
Servent Overlay network Gnutella crawler
Software
GiFT GnucDNA gtk-gnutella KCeasy LimeWire FrostWire Phex Shareaza Cabos historical clients
Categories: Gnutella | Gnutella2 | File sharing | Peer-to-peer file sharingHidden categories: Articles lacking reliable references from July 2008 | All articles lacking reliable references | Articles needing cleanup from January 2009 | All pages needing cleanup
by: gaga
No Nonsense Muscle Building Review-To build muscles to look more powerful How to Get Rid of Headache Migraines Naturally A Guide To Purchaching Franchise Ideas Coaching centres The Benefits of Transformational Coaching Deep Tissue Massage Relieve Cramps More Effectively Burn Fat Build Muscles Fast - Muscle Gain Truth Deep Tissue Massage Ease Aches More Effectively Fantastic Coaching and Mentoring Examples Powerful Coaching and mentoring examples How to find successful coaching and mentoring examples Coaching and mentoring examples that are perfect for you Coaching and mentoring examples that work for you