Board logo

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.

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




welcome to loan (http://www.yloan.com/) Powered by Discuz! 5.5.0