GWC: Difference between revisions
(→Breakdown Of The Gnutella Web Caches:: I finished the table HOORAY!!!!!) |
(added better formatted recovery, no new content added.) |
||
Line 51: | Line 51: | ||
<tr><td style="background: #CCCCCC;">LynnX</td>{{Yes}}{{No}}{{No}}{{Yes}}{{Yes}}{{No}}{{No}}{{No}}{{No}}</tr> | <tr><td style="background: #CCCCCC;">LynnX</td>{{Yes}}{{No}}{{No}}{{Yes}}{{Yes}}{{No}}{{No}}{{No}}{{No}}</tr> | ||
</table> | </table> | ||
== Shareaza Specific Details == | |||
{{RecoveredPage|Warninig: here I have pasted better formatted recovery, but not verified. Row recovery has been mooved below as I don't know if anybody has made any changes in it. If not then row recovery can be deleted. Paste starts from == Shareaza Specific Details ==, here, and ends at second == Shareaza Specific Details == I hope it is visible. --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC) }} | |||
* '''Get String Breakdown:''' | |||
** Update a leaf | |||
*** "?update=1&ip=(ip):(port)&x_leaves=(leaf count) | |||
** 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. | |||
** Network Variable | |||
*** Appends &net=gnutella2 on Gnutella2 queries. | |||
*** Does NOT append a network variable on Gnutella(1) queries. | |||
** Client Name / Version Format (2.4.0.0 and earlier): | |||
*** &client=(Shareaza 4 letter code (RAZA / RAZB) ) | |||
*** &version=(Shareaza's version) | |||
** 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:''' | |||
** i| | |||
*** Informational output alone will not be taken as GWC 'success.' | |||
** i|access|period|(time in sec.) | |||
*** Time in seconds before Shareaza is allowed to make a request to the cache. | |||
** i|update|period|(time in sec.) | |||
*** Time in seconds before Shareaza is allowed to update to the cache. | |||
** i|force|remove and i|update|warning|bad url | |||
*** Remove the GWC from the internal list. | |||
** 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 == | |||
==== Specification 1: ==== | |||
* '''Networks Served''' | |||
** Gnutella | |||
* '''Format''' | |||
** Update went fine: | |||
*** Ex: OK | |||
** Update Warning (Small prob., not that bad): | |||
*** Ex: OKWARNING: Error Message | |||
* Severe Warning (No 'OK' message sent) | |||
** Ex: WARNING: Error Message | |||
* URL Output: | |||
** Ex: [http://somefreakinrandomcache.com/cache/gcache.php http://somefreakinrandomcache.com/cache/gcache.php] | |||
*** OR - WITH A PORT NUMBER (If not 80) | |||
**** Ex: [http://somefreakinrandomcache.com:8080/cache/gcache.php 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 http://grantgalitz.com/Beacon/gwc.php?ping=1&client=RAZA&version=2.3.1.3&urlfile=1] | |||
*** Example URL Output: | |||
{| class="prettytable" | |||
| <center>'''Getting urls with a pong combined'''</center> | |||
|- | |||
| PONG Beacon Cache 0.1.5D Beta[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php 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 http://grantgalitz.com/Beacon/gwc.php?ping=1&client=RAZA&version=2.3.1.3&hostfile=1] | |||
*** Example Host Output: | |||
{| class="prettytable" | |||
| <center>'''Getting the hosts with a pong combined'''</center> | |||
|- | |||
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.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 http://grantgalitz.com/Beacon/gwc.php?ping=1&client=RAZA&version=2.3.1.3&bfile=1] | |||
**** Example Host and URL Output: | |||
{| class="prettytable" | |||
| <center>'''Getting the hosts and urls with a pong combined'''</center> | |||
|- | |||
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.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/ http://somerandomcache.com/] | |||
*** Add the time, thereafter, of the URL's time (In seconds*) in cache: | |||
**** Ex: U|[http://somerandomcache.com/%7C45 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 http://grantgalitz.com/Beacon/gwc.php?get=1&client=RAZA&version=2.3.1.3&net=gnutella2&ping=1] | |||
**** Example "Get" Output: | |||
{| class="prettytable" | |||
| <center>'''Getting the hosts and urls with a pong combined'''</center> | |||
|- | |||
| I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2H|65.9.200.243:4968|248261H|68.228.129.75:44599|242678H|98.240.196.122:8206|240719H|76.104.12.133:14921|218273H|69.136.1.12:3924|211610H|81.154.208.71:8595|174402H|97.96.105.51:2076|153610H|74.192.153.212:39340|144203H|72.190.106.57:12584|132984H|78.93.71.132:12334|125668H|82.43.248.184:27560|97974H|196.205.224.97:6357|86763H|74.129.219.30:33172|82005H|76.104.12.133:19185|57182H|69.59.83.131:18442|38628U|[http://www.k33bz.com/g2/bazooka.php%7C248639 http://www.k33bz.com/g2/bazooka.php|248639]U|[http://gwebcache.ns1.net/%7C248592 http://gwebcache.ns1.net/|248592]U|[http://gwc2.wodi.org/skulls.php%7C248384 http://gwc2.wodi.org/skulls.php|248384]U|[http://gwc.guufshop.com/skulls/skulls.php%7C248322 http://gwc.guufshop.com/skulls/skulls.php|248322]U|[http://groovy.syxy.com/up/skulls.php%7C248300 http://groovy.syxy.com/up/skulls.php|248300]U|[http://g2.tjtech.org/g2/index.php%7C247770 http://g2.tjtech.org/g2/index.php|247770]U|[http://midian.jayl.de/g2/bazooka.php%7C240719 http://midian.jayl.de/g2/bazooka.php|240719]U|[http://www.dom2porno.info/skulls/skulls.php%7C207473 http://www.dom2porno.info/skulls/skulls.php|207473]U|[http://gwc.frodoslair.net/skulls/skulls%7C125668 http://gwc.frodoslair.net/skulls/skulls|125668]U|[http://holograph.uni.cc/other/skulls.php%7C9642 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**** | |||
*** 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 | |||
** Append the networks supported joined by a hyphen '-'. | |||
** Used for client-side validation of networks supported and for network support reporting to other web caches. | |||
** 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 | |||
** 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: | |||
** 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. | |||
** getclusters | |||
*** Enables/Disables clustering. | |||
*** Use this as 'getclusters=1'. | |||
*** Using 'getclusters' or 'getclusters=0' disables cluster output. | |||
** 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. | |||
** 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. | |||
** spec | |||
*** To force the specification parameter | |||
*** Currently is only supported by Beacon Cache II | |||
** pv | |||
*** Similar to the 'spec' parameter, except that it does not force, instead it simply negotiates the specification. | |||
* Special Data Requests | |||
** info | |||
*** Outputs extra details of your cache. | |||
**** Start with the informational response: I| | |||
***** Ex: I|open-source|1 | |||
** support | |||
*** Outputs USEFUL details of your cache. | |||
**** Start with the informational response: I| | |||
***** Ex: I|support|gnutella2 | |||
** getnetworks | |||
*** Outputs the enabled networks in two formats. | |||
**** Start with the informational response: I| | |||
***** For the 'I|nets|' line | |||
****** The third field contains the supported networks joined by '-'. | |||
***** For the 'I|networks|' line | |||
****** Interpret the fields from 3 and beyond as individual network names to challenge against. | |||
**** Examples | |||
***** | |||
****** I|net|gnutella-gnutella2 | |||
****** I|networks|gnutella|gnutella2 | |||
* Update Extension Variables: | |||
** x_leaves | |||
*** Number of leaves running on a given hub or ultrapeer. | |||
*** '''Value must not be greater than an integer value of 2047.''' | |||
** x_max | |||
*** Maximum number of leaves possible on a given hub or ultrapeer. | |||
*** '''Value must not be greater than an integer value of 2047.''' | |||
** 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:''' | |||
** '''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. | |||
*** <nowiki>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 </nowiki> | |||
*** 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 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: === | |||
* [http://www.gnucleus.com/gwebcache/ Original GWC ][http://www.gnucleus.com/gwebcache/ site] | |||
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1] | |||
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] | |||
===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://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)] | |||
*C | |||
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab] | |||
*Perl | |||
**[http://www.jonatkins.com/perlgcache/ Jon Atkins' perlgcache] | |||
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] | |||
*PHP | |||
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL | |||
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files | |||
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files | |||
====Further Information:==== | |||
*[http://www.gnucleus.com/gwebcache/|Original GWC site] | |||
{{RecoveredPage|-->Saved in timestamp 20090421202728Retrieved from "[https://www.pantheraproject.net/wiki/index.php?title=GWC This page was last modified on April 18, 2009, at 23:25. </center> | |||
<center>Copyright © 2002-2009 Shareaza Development Team. </center><center>[[Image:poweredby_mediawiki_88x31.png]] --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)}} | |||
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don't know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from == Shareaza Specific Details == and ends at second == Shareaza Specific Details ==, here. I hope it is visible. --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC) }} | |||
==Shareaza Specific Details== | ==Shareaza Specific Details== |
Revision as of 16:20, 27 July 2009
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:
- Update a leaf
- "?update=1&ip=(ip):(port)&x_leaves=(leaf count)
- 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.
- Network Variable
- Appends &net=gnutella2 on Gnutella2 queries.
- Does NOT append a network variable on Gnutella(1) queries.
- Client Name / Version Format (2.4.0.0 and earlier):
- &client=(Shareaza 4 letter code (RAZA / RAZB) )
- &version=(Shareaza's version)
- 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)
- If Gnutella
- Update a leaf
- GWC Response Matching:
- i|
- Informational output alone will not be taken as GWC 'success.'
- i|access|period|(time in sec.)
- Time in seconds before Shareaza is allowed to make a request to the cache.
- i|update|period|(time in sec.)
- Time in seconds before Shareaza is allowed to update to the cache.
- i|force|remove and i|update|warning|bad url
- Remove the GWC from the internal list.
- 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.
- i|NO-URL-NO-HOSTS
- i|
Gnutella Web Cache Specifications
Specification 1:
- Networks Served
- Gnutella
- Format
- Update went fine:
- Ex: OK
- Update Warning (Small prob., not that bad):
- Ex: OKWARNING: Error Message
- Update went fine:
- 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/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:
- Example "urlfile Output" URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&client=RAZA&version=2.3.1.3&urlfile=1
- 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:
- Example "hostfile Output" URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&client=RAZA&version=2.3.1.3&hostfile=1
PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.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:
- Example "bfile Output" URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&client=RAZA&version=2.3.1.3&bfile=1
PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199http://gwc.frodoslair.net/skulls/skulls.phphttp://bbs.robertwoolley.co.uk/GWebCache/gcache.phphttp://g2.tjtech.org/g2/http://g2.tjtech.org/g2/index.phphttp://gwc.monnsta.net/http://holograph.uni.cc/other/skulls.phphttp://gwc.nickstallman.net/http://gwc.eod.cc/skulls.phphttp://gwc.frodoslair.net/skulls/skullshttp://gwc.werwin.net/skulls.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.
- ping:
- 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.
- Statistics of the cache request:
- bfile:
- Mandatory
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
- I|update|OK
- Plain Warnings
- Format: I|WARNING
- Append any warning messages after it - Ex: I|WARNING|You came back too early
- Format: I|WARNING
- Extra Info - Described below under the topic: variables.
- Categories
- Starts with: I|
- 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
- Add the clustered words after the host's age:
- URL Output
- Starts with: U|
- Add the URL with http:// before it, plus the port (if it's not 80).
- Add the time, thereafter, of the URL's time (In seconds*) in cache:
- 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:
- Example URL: http://grantgalitz.com/Beacon/gwc.php?get=1&client=RAZA&version=2.3.1.3&net=gnutella2&ping=1
- Information Output
pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2H|65.9.200.243:4968|248261H|68.228.129.75:44599|242678H|98.240.196.122:8206|240719H|76.104.12.133:14921|218273H|69.136.1.12:3924|211610H|81.154.208.71:8595|174402H|97.96.105.51:2076|153610H|74.192.153.212:39340|144203H|72.190.106.57:12584|132984H|78.93.71.132:12334|125668H|82.43.248.184:27560|97974H|196.205.224.97:6357|86763H|74.129.219.30:33172|82005H|76.104.12.133:19185|57182H|69.59.83.131:18442|38628U|http://www.k33bz.com/g2/bazooka.php|248639U|http://gwebcache.ns1.net/|248592U|http://gwc2.wodi.org/skulls.php|248384U|http://gwc.guufshop.com/skulls/skulls.php|248322U|http://groovy.syxy.com/up/skulls.php|248300U|http://g2.tjtech.org/g2/index.php|247770U|http://midian.jayl.de/g2/bazooka.php|240719U|http://www.dom2porno.info/skulls/skulls.php|207473U|http://gwc.frodoslair.net/skulls/skulls|125668U|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
- I|pong|fakecache 0.01|gnutella
- 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.
- url:
- 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
- Gnutella
- Which network to serve the client.
- ping:
- Mandatory
solely on case alone.
-
-
- client:
- Four letter code of the client. ex: RAZA
- version:
- Version number of the client.
- 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****
- To add extra info to an IP update.
- 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.
- cluster:
-
Specification 2.1
- This is an extension of specification 2, not a separate specification!
- Pong extension
- Append the networks supported joined by a hyphen '-'.
- Used for client-side validation of networks supported and for network support reporting to other web caches.
- 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
- I|pong|fakecache 0.01|gnutella
- Host Output
- 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.
- H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible
- Just like specification 2, but with more fields supported for host output.
- Request Control Variables:
- 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.
- getclusters
- Enables/Disables clustering.
- Use this as 'getclusters=1'.
- Using 'getclusters' or 'getclusters=0' disables cluster output.
- 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.
- 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.
- spec
- To force the specification parameter
- Currently is only supported by Beacon Cache II
- pv
- Similar to the 'spec' parameter, except that it does not force, instead it simply negotiates the specification.
- getleaves
- Special Data Requests
- info
- Outputs extra details of your cache.
- Start with the informational response: I|
- Ex: I|open-source|1
- Start with the informational response: I|
- Outputs extra details of your cache.
- support
- Outputs USEFUL details of your cache.
- Start with the informational response: I|
- Ex: I|support|gnutella2
- Start with the informational response: I|
- Outputs USEFUL details of your cache.
- getnetworks
- Outputs the enabled networks in two formats.
- Start with the informational response: I|
- For the 'I|nets|' line
- The third field contains the supported networks joined by '-'.
- For the 'I|networks|' line
- Interpret the fields from 3 and beyond as individual network names to challenge against.
- For the 'I|nets|' line
- Examples
-
- I|net|gnutella-gnutella2
- I|networks|gnutella|gnutella2
-
- Start with the informational response: I|
- Outputs the enabled networks in two formats.
- info
- Update Extension Variables:
- x_leaves
- Number of leaves running on a given hub or ultrapeer.
- Value must not be greater than an integer value of 2047.
- x_max
- Maximum number of leaves possible on a given hub or ultrapeer.
- Value must not be greater than an integer value of 2047.
- 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).
- x_leaves
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.
- multi
- 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.
- Use the fsockopen() function to open a connection to a cache.
- For 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.
- Update should not fail if absent if spec. 2.
- Update variable
- 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.
- Should still accept hostfile and urlfile responses for 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.
- If for instance a ping and request exist, you should always handle them properly.
Further Information:
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
Further Information:
- 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