GWC
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. | 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:
- 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
- Perl
- Jon Atkins' perlgcache
- The original GnuWebCache
PHP (Tip: PHP GWCs are usually the easiest to run and setup on a server.)
- The original GnuWebCache (PHP version is no longer supported)
Breakdown Of The Gnutella Web Caches:
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:#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:#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:#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: #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:#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: #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: #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:#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: #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
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 |
- 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:
- JSP (Java Servlet)
- C
- Perl
- Jon Atkins' perlgcache
- The original GnuWebCache
- PHP
- PHPGnuCacheII - MySQL
- Bazooka G2WC (recommended) - flat files
- Skulls! Multi-Network WebCache - flat files