GWC

From Shareaza Wiki
Revision as of 02:30, 27 July 2009 by Cyko 01 (talk | contribs) (→‎Breakdown Of The Gnutella Web Caches:: I finished the table HOORAY!!!!!)
Jump to navigation Jump to search
  Languages:

[[::GWC|English]] • [[::GWC/de|Deutsch]] • [[::GWC/es|Español]] • [[::GWC/fr|Français]] • [[::GWC/he|עברית]] • [[::GWC/it|Italiano]] • [[::GWC/nl|Nederlands]] • [[::GWC/pl|Polski]] • [[::GWC/pt|Português]] • [[::GWC/ru|Русский]] • [[::GWC/zh-hant|‪中文(繁體)]]

e
  Recovered

The following content has been recovered from pantheraproject*net. Some content may be outdated, inaccurate, or improperly formatted.

This Page is incomplete and is still being recovered

e

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:

PHP (Tip: PHP GWCs are usually the easiest to run and setup on a server.)


Breakdown Of The Gnutella Web Caches:

  Recovered

I recently put this into a table. The contents need to be verified -- Cyko 01

e
style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background: #90ff90; color: black; text-valign: middle;; text-align: center; " class="table-yes" |Yes


style="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | Nostyle="background:#ff9090; color:black; vertical-align: middle; text-align: center; " class="table-no" | No
Cache:Gnutella:Gnutella2:Spec 1:Spec 2:Flat-File:SQL:Installer:Other Networks:Different network instances:
Beacon Cache (Core 2) Yes (As of 0.2.0 Alpha)
Beacon Cache (Core 1)
Skulls
JumsWebCache
GnuWebCache (Perl)
GnuWebCache (PHP)
GhostWhiteCrab(GWC) N/A
PHPGnuCacheII
Bazooka
Cachechu
Perlgcache
Gerry GWC (v2)
Gerry GWC (v1)
Lynn
LynnX

Shareaza Specific Details

  • Get String Breakdown:
         o Update a leaf
               + "?update=1&ip=(ip):(port)&x_leaves=(leaf count) 
         o Ping Variable
               + Appends &ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility).
               + This feature new to Shareaza. 
         o Network Variable
               + Appends &net=gnutella2 on Gnutella2 queries.
               + Does NOT append a network variable on Gnutella(1) queries. 
         o Client Name / Version Format (2.4.0.0 and earlier):
               + &client=(Shareaza 4 letter code (RAZA / RAZB) )
               + &version=(Shareaza's version) 
         o Client Name / Version Format (2.4.0.X):
               + If Gnutella
                     # &client=(Shareaza 4 letter code (RAZA / RAZB) )
                     # &version=(Shareaza's version) 
               + If Gnutella2
                     # &client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza's version) 


  • GWC Response Matching:
         o i|
               + Informational output alone will not be taken as GWC 'success.' 
         o i|access|period|(time in sec.)
               + Time in seconds before Shareaza is allowed to make a request to the cache. 
         o i|update|period|(time in sec.)
               + Time in seconds before Shareaza is allowed to update to the cache. 
         o i|force|remove and i|update|warning|bad url
               + Remove the GWC from the internal list. 
         o Some Response Matches (added in 2.3.1.X)
               + i|NO-URL-NO-HOSTS
                     # Outputs warning of the cache being totally empty to the system log. 
               + i|NO-URL
                     # Outputs warning of the cache having no alternative URLs to the system log. 
               + i|NO-HOSTS
                     # Outputs warning of the cache having no hosts to the system log. 
               + i|warning|
                     # Outputs warning of the cache to the system log. 
               + ERROR Something Failed
                     # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). 
               + i|warning|You came back too early (2.3.1.X)
               + i|warning|client|early (2.3.1.X)
               + WARNING: You came back too early (2.3.1.X)
               + ERROR: Client returned too early (2.3.1.X)
                     # Flood detection for the update side.
                     # Outputs GWebCache(update) Too many connection attempts to the system log. 
               + too early (2.3.1.X)
               + early (2.4.0.X)
                     # Flood detection for the request side.
                     # Outputs GWebCache URL: Too many connection attempts to the system log. 
               + i|update|OK
                     # Outputs "GWebCache(v2) Update Passed: " to the system log. 
               + OK
                     # Outputs "GWebCache(v1) Update Passed: " to the system log. 


  • GWC Response Matching:
         o i|
               + Informational output alone will not be taken as GWC 'success.' 
         o i|access|period|(time in sec.)
               + Time in seconds before Shareaza is allowed to make a request to the cache. 
         o i|update|period|(time in sec.)
               + Time in seconds before Shareaza is allowed to update to the cache. 
         o i|force|remove and i|update|warning|bad url
               + Remove the GWC from the internal list. 
         o Some Response Matches (added in 2.3.1.X)
               + i|NO-URL-NO-HOSTS
                     # Outputs warning of the cache being totally empty to the system log. 
               + i|NO-URL
                     # Outputs warning of the cache having no alternative URLs to the system log. 
               + i|NO-HOSTS
                     # Outputs warning of the cache having no hosts to the system log. 
               + i|warning|
                     # Outputs warning of the cache to the system log. 
               + ERROR Something Failed
                     # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). 
               + i|warning|You came back too early (2.3.1.X)
               + i|warning|client|early (2.3.1.X)
               + WARNING: You came back too early (2.3.1.X)
               + ERROR: Client returned too early (2.3.1.X)
                     # Flood detection for the update side.
                     # Outputs GWebCache(update) Too many connection attempts to the system log. 
               + too early (2.3.1.X)
               + early (2.4.0.X)
                     # Flood detection for the request side.
                     # Outputs GWebCache URL: Too many connection attempts to the system log. 
               + i|update|OK
                     # Outputs "GWebCache(v2) Update Passed: " to the system log. 
               + OK
                     # Outputs "GWebCache(v1) Update Passed: " to the system log. 


Gnutella Web Cache Specifications

<end of partial recovery by OCE>



<end of recovered content>

<row recovery, start>

Specification 1:
   * Networks Served
         o Gnutella 
   * Format
         o Update went fine:
               + Ex: OK 
         o Update Warning (Small prob., not that bad):
               + Ex: 

OK WARNING: Error Message

   * Severe Warning (No 'OK' message sent)
         o Ex: 

WARNING: Error Message

   * URL Output:
         o 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:
         o 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
         o 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
         o 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:
         o Warning: This is non-standard.
         o 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


   * Variables
         o 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. 
         o 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
         o Gnutella, Gnutella2, etc. 
   * Format
         o Information Output
               + Starts with: I|
                     # Categories
                           * Pong (ping variable response) - Described below under the topic: variables.
                           * Update Status Response
                                 o Format: I|update
                                 o Responses
                                       + I|update|OK
                                             # - Everything went fine. 
                                       + I|update|OK|WARNING
                                             # Small warning. 
                                       + I|update|WARNING
                                             # Severe warning 
                           * Plain Warnings
                                 o 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. 
         o 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 
         o 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/%7C45 
         o 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%7C248639 U|http://gwebcache.ns1.net/%7C248592 U|http://gwc2.wodi.org/skulls.php%7C248384 U|http://gwc.guufshop.com/skulls/skulls.php%7C248322 U|http://groovy.syxy.com/up/skulls.php%7C248300 U|http://g2.tjtech.org/g2/index.php%7C247770 U|http://midian.jayl.de/g2/bazooka.php%7C240719 U|http://www.dom2porno.info/skulls/skulls.php%7C207473 U|http://gwc.frodoslair.net/skulls/skulls%7C125668 U|http://holograph.uni.cc/other/skulls.php%7C9642


   * Variables
         o 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
                                 o - Gnutella only 
                           * I|pong|fakecache 0.01|gnutella2
                                 o - Gnutella2 only 
                           * I|pong|fakecache 0.01|gnutella-gnutella2
                                 o - 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
                                 o Ex: net=gnutella 
                           * Gnutella2
                                 o Ex: net=gnutella2 
                           * Should always be lowercase
                                 o GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches 

solely on case alone.

   *
         o
               + client:
                     # Four letter code of the client. ex: RAZA 
               + version:
                     # Version number of the client. 
         o 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**** 
               + statfile:
                     # Exactly like the specification 1 statfile (Same routine and output style).
                     # 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.1

   * This is an extension of specification 2, not a separate specification!
   * Pong extension
         o Append the networks supported joined by a hyphen '-'.
         o Used for client-side validation of networks supported and for network support reporting to other web caches.
         o Format:
               + I|pong|cache name|network names joined by '-'
               + Format Examples:
                     # 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 
   * Host Output
         o Just like specification 2, but with more fields supported for host output.
               + H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible
                     # The host, age, and clustering fields are all still the same as in specification 2.
                     # The leaf count of the hub reported is in the 5th field.
                     # The vendor code with version number is in the 6th field. 
   * Request Control Variables:
         o getleaves
               + Used to obtain leaf counts of hubs given
               + 4th field ultilized for current leaf count.
               + 7th field ultilized for maximum leaf slots possible.
               + Use this as 'getleaves=1' or 'getleaves' to enable. 
         o getclusters
               + Enables/Disables clustering.
               + Use this as 'getclusters=1'.
               + Using 'getclusters' or 'getclusters=0' disables cluster output. 
         o getvendors
               + Used to obtain the vendor code w/ version number of the hubs given.
               + Found in the 5th field.
               + Use this as 'getvendors=1' or 'getvendors' to enable. 
         o getuptime
               + Used to obtain the vendor code w/ version number of the hubs given.
               + Value is static, do not change the value given when time passes.
               + Found in the 6th field.
               + Use this as 'getuptime=1' or 'getuptime' to enable. 
         o spec
               + To force the specification parameter
               + Currently is only supported by Beacon Cache II 
         o pv
               + Similar to the 'spec' parameter, except that it does not force, instead it simply negotiates the specification. 
   * Special Data Requests
         o info
               + Outputs extra details of your cache.
                     # Start with the informational response: I|
                           * Ex: I|open-source|1 
         o support
               + Outputs USEFUL details of your cache.
                     # Start with the informational response: I|
                           * Ex: I|support|gnutella2 
         o getnetworks
               + Outputs the enabled networks in two formats.
                     # Start with the informational response: I|
                           * For the 'I|nets|' line
                                 o The third field contains the supported networks joined by '-'. 
                           * For the 'I|networks|' line
                                 o Interpret the fields from 3 and beyond as individual network names to challenge against. 
                     # Examples
                           *
                                 o I|net|gnutella-gnutella2
                                 o I|networks|gnutella|gnutella2 
   * Update Extension Variables:
         o x_leaves
               + Number of leaves running on a given hub or ultrapeer.
               + Value must not be greater than an integer value of 2047. 
         o x_max
               + Maximum number of leaves possible on a given hub or ultrapeer.
               + Value must not be greater than an integer value of 2047. 
         o uptime
               + Value submitted must be an integer value of the number of seconds of uptime.
               + Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60). 

Pinging Caches With Your Cache

   * Please follow this standard:
         o Client: TEST
         o Version: Your Cache's Name
               + The old value for "version" was 1 
   * Some variables to attach to the ping (compatibility):
         o 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. 
         o 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
         o 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!
         o There are many ways to determine spec., but going with net is the safe way.
         o Skulls GWC does not use the network parameter to determine specification level.
         o 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.
         o Update variable
               + Update should not fail if absent if spec. 2.
                     # A Specification 2 parameter. 
   * Spec 1 parameters used in Spec 2:
         o 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:
         o Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request.
         o Spec 1 = 'spec=1'
         o Spec 2 = 'spec=2'
         o If 'spec' is not equal to any current spec, then default to the predetermined spec. 
   * Multiple variable requests
         o 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. 
         o Handle multiple variables as BEST as possible!
               + Some scanners and GWCs like to fit all their requests into one URL send. 

<row recovery, end>

Further Information:



<content recovered from last aviable backup>

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:

Further Information: