Gnutella Web Cache

Gnutella Web Cache

A Gnutella web cache, also known as a GWebCache, is used by Gnutella2 and Gnutella clients to make an initial connection to their respective networks. A GWebCache uses standard HTTP to transmit data.

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. If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC. People that don't have a dedicated server or are on normal broadband consumer lines should not run a cache from home.

A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:
*JSP (Java Servlet)
** [http://www1.mager.org/GWebCache/ Jums Web Cache] (Excellent for heavy loads)
*C
**For dedicated server environments and people who know how to compile C source code!
** [http://wiki.limewire.org/index.php?title=GhostWhiteCrab GhostWhiteCrab] "(for experts only!)"
*ASP
** [http://www.edazzle.net/downloads/gerry.zip Gerry GWC]
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7846&lngWId=4 Lynn (v.s. 0.5)]
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7731&lngWId=4 Lynn (v.s. 0.4)]
** [http://www.poundwebhosting.com/cgi-bin/lynnx.asp LynnX]
*Perl
** [http://www.jonatkins.com/perlgcache/ Jon Atkins' perlgcache]
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]
*PHP
**PHP GWCs are usually the easiest to run and setup on a server.
** [http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL
** [http://www.bazookanetworks.com Bazooka G2WC] - flat files
** [http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files
** [http://sourceforge.net/projects/beaconcache/ Beacon Cache] - flat files
** [http://code.google.com/p/cachechu/ Cachechu G2WC] - flat files

Breakdown Of The Gnutella Web Caches:




Cache:

Gnutella:

Gnutella2:

Spec 1:

Spec 2:

Flat-File:

SQL:

Installer:

Other Networks:

Beacon Cache (Core 1)

Yes

Yes

Yes

Yes

Yes

No

Yes

Yes

Skulls

Yes

Yes

Yes

Yes

Yes

No

No

Yes

GnuWebCache

Yes

Yes

Yes

Yes

Yes

No

No

Yes

JumsWebCache

Yes

Yes

Yes

Yes

Yes

No

No

Yes

GhostWhiteCrab(GWC)

Yes

Yes

Yes

Yes

N/A

Yes

PHPGnuCacheII

Yes

Yes

Yes

Yes

No

Yes

No

No

Bazooka

No

Yes

No

Yes

Yes

No

Yes

No

Cachechu

No

Yes

No

Yes

Yes

No

No

No

Perlgcache

Yes

No

Yes

Yes

Yes

No

No

No

Gerry GWC (v2)

Yes

No

No

Yes

Yes

No

No

No

Gerry GWC (v1)

Yes

No

Yes

No

Yes

No

No

No

Lynn

Yes

No

Yes

No

Yes

No

No

No

LynnX

Yes

No

No

Yes

Yes

No

No

No


Gnutella Web Cache Specifications

pecification 1:

*Networks Served
**Gnutella
*Format
**Update went fine:
***Ex: OK
**Update Warning (Small prob., not that bad):
***Ex:OK
WARNING: Error Message
*Client IS Very Bad Warning
**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 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://gwc.frodoslair.net/skulls/skulls.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.nickstallman.net/
http://gwc.eod.cc/skulls.php
http://gwc.frodoslair.net/skulls/skulls
http://gwc.werwin.net/skulls.php



*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://gwc.frodoslair.net/skulls/skulls.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.nickstallman.net/
http://gwc.eod.cc/skulls.php
http://gwc.frodoslair.net/skulls/skulls
http://gwc.werwin.net/skulls.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



*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.

pecification 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|WARNING
********Types
*********I|update|WARNING|Invalid host
*********I|update|WARNING|Invalid URL
*****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
***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

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.
***Make sure a multi=1 variable causes a ping in specification 2 when your cache is pinged too!
**cache
***Used by some gwcs in their pings to other gwcs.
***Make sure a cache=1 variable causes a ping in specification 2 when your cache is pinged too!
*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.
*Your cache needs to be able to process certain combinations of variables.
**Update variable
***Update should not fail if absent if spec. 2.
****If net is present, go on with spec. 2, else spec. 1.
***Should still accept hostfile and urlfile responses for spec. 2.
*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:

* [http://www.gnucleus.com/gwebcache/ Original GWC site]
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1]
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2]


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Gnutella — Not to be confused with Nutella. Part of a series on File sharing Technologies …   Wikipedia

  • Peer-to-peer — Not to be confused with point to point. This article is about peer to peer computing. For other uses, see Peer to peer (disambiguation). A peer to peer system of nodes without central infrastructure …   Wikipedia

  • Foxy (P2P) — Foxy is a traditional Chinese P2P software by Foxy Media, Inc.(景昌資訊科技股份有限公司) popular in Taiwan, Hong Kong and Macau. This software was treated as trojan in antivirus softwares Norton Antivirus or AVG for its file sharing. There may also be a… …   Wikipedia

  • Filtre De Bloom — Le filtre de Bloom, conçu par Burton H. Bloom en 1970, est une structure de données probabiliste qui optimise l espace utilisé. Cette structure est utilisée pour tester si un élément fait partie d un ensemble. Il permet notamment d optimiser les… …   Wikipédia en Français

  • Filtre de bloom — Le filtre de Bloom, conçu par Burton H. Bloom en 1970, est une structure de données probabiliste qui optimise l espace utilisé. Cette structure est utilisée pour tester si un élément fait partie d un ensemble. Il permet notamment d optimiser les… …   Wikipédia en Français

  • Magnet URI scheme — Magnet icon The magnet: URI scheme is a draft open standard defining a URI scheme for magnet links, which are mainly used to reference resources available for download via peer to peer networks. Such a link typically identifies a file not by… …   Wikipedia

  • Список портов TCP и UDP — Эта статья содержит незавершённый перевод с английского языка. Вы можете помочь проекту, переведя её до конца. В данной статье приведён список портов TCP и UDP, ко …   Википедия

  • Pair à pair — « P2P » et « p2p » redirigent ici. Pour les autres sens, voir P2P (homonymie). Le pair à pair ou pair à pair (traduction de l anglicisme peer to peer, souvent abrégé « P2P ») est un modèle de réseau informatique… …   Wikipédia en Français

  • JXMobile — Pair à pair Pour les articles homonymes, voir P2P (homonymie). Le pair à pair (traduction de l anglicisme peer to peer, souvent abrégé « P2P »), est un modèle de réseau informatique. Il s oppose au modèle client serveur. Le partage de… …   Wikipédia en Français

  • P2P — Pair à pair Pour les articles homonymes, voir P2P (homonymie). Le pair à pair (traduction de l anglicisme peer to peer, souvent abrégé « P2P »), est un modèle de réseau informatique. Il s oppose au modèle client serveur. Le partage de… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”