Gnutella Web Cache
From Wikipedia, the free encyclopedia
| This page has few or no links to other articles. (Tagged since June 2008). You can improve this article by adding links to related material, within the existing text. For some link suggestions, you can try Can We Link It tool. (You can help!) |
Also known as a gwc, a gcache, and a gwebcache.
Contents |
[edit] Usage
A Gnutella web cache is used as a "last try" method of connecting back to the Gnutella filesharing network. This "last try" means that a Gnutella client is supposed to use Gnutella web caches as the last method of connecting to the Gnutella network. For instance, if a client exhausts its internal list of known Gnutella clients, then it will connect to a Gnutella web cache to refresh one's internal Gnutella client list.
Any Gnutella client can request information of a Gnutella web cache in a standardized method. There are different standards of connecting to these caches. These different standards are called specifications. Currently, two specifications exist, specification 1 and respectively specification 2.
[edit] Cache Engines
[edit] Current Listing:
- Java Servlet GWebCache Application (Archive.org)
- GhostWhiteCrab
- Jon Atkins' perlgcache
- The original GnuWebCache
- PgGWC
- PHPGnuCacheII
- Bazooka G2WC
- Skulls! Multi-Network WebCache
- Beacon Cache
Breakdown Of The Gnutella Web Caches:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[edit] GWC Scanners
Online scanners that provide an up-to-date analysis of the Gnutella and Gnutella-like web caches.
- Gnutella
- Gnutella2
[edit] Gnutella Web Cache Specifications
[edit] Specification 1:
- Networks Served
- Gnutella
- Format
- Update went fine:
- Ex: OK
- Update Warning (Small prob., not that bad):
- Ex:
- Update went fine:
OK
WARNING: Error Message
- Client IS Very Bad Warning
- Ex:
WARNING: Error Message
- URL Output:
- Ex: http://somefreakinrandomcache.com/cache/gcache.php
- OR - WITH A PORT NUMBER (If not 80)
- Ex: http://somefreakinrandomcache.com/cache/gcache.php
- Host Output:
- Ex: 66.132.55.12:6346
- Pong (ping variable response) - was explained below under the topic: variables.
- Example Cache Output (Beacon Cache) For bfile Command
- Example "bfile Output" URL: Ex: http://grantgalitz.com/beacon_test/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_test/gwc.php?ping=1&client=RAZA&version=2.3.1.3&bfile=1
|
|
|
PONG Beacon Cache 0.1.5D Beta |
- Example Cache Output (Beacon Cache) For urlfile Command
- Example "urlfile Output" URL: Ex: http://grantgalitz.com/beacon_test/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_test/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_test/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_test/gwc.php?ping=1&client=RAZA&version=2.3.1.3&hostfile=1
|
|
|
PONG Beacon Cache 0.1.5D Beta |
- 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
[edit] Specification 2:
- Networks Served
- Gnutella, Gnutella2, Kademlia, and etc.
- Format
- Information Output
- Starts with: I|
- Categories
- Pong (ping variable response) - Described below under the topic: variables.
- Update Status Response
- Format: I|update
- Responses
- I|update|OK
- - Everything went fine.
- I|update|WARNING
- Types
- I|update|WARNING|Invalid host
- I|update|WARNING|Invalid URL
- Types
- 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_test/gwc.php?get=1&client=RAZA&version=2.3.1.3&net=gnutella2&ping=1
- Example "Get" Output:
- Example URL: http://grantgalitz.com/beacon_test/gwc.php?get=1&client=RAZA&version=2.3.1.3&net=gnutella2&ping=1
- Information Output
|
|
|
I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2 |
- 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
- Gnutella
- Which network to serve the client.
- client:
- Four letter code of the client. ex: RAZA
- version:
- Version number of the client.
- ping:
- 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.
- x.leaves / x_leaves:
- Number of leaves running on a given Gnutella2 hub.
- statfile:
- Statistics of the cache request:
- First line: Total requests of the cache number.
- Second line: Requests of the cache an hour number.
- Third line: Updates of the cache an hour number.
- Statistics of the cache request:
- info:
- Output extra details of your cache.
- Start with the informational response: I|
- Ex: I|open-source|1
- Start with the informational response: I|
- Output extra details of your cache.
- support:
- To output USEFUL details of your cache.
- Start with the informational response: I|
- Ex: I|support|gnutella2
- Start with the informational response: I|
- To output USEFUL details of your cache.
- cluster:
- Mandatory
[edit] Pinging Caches With Your Cache
- Please follow this standard:
- Client: TEST
- Version: Your Cache's Name
- The old value for "version" was 1
- Some variables to attach to the ping (compatibility):
- multi
- Used by some gwcs in their pings to other gwcs.
- Make sure a multi=1 variable causes a ping in specification 2 when your cache is pinged too!
- cache
- Used by some gwcs in their pings to other gwcs.
- Make sure a cache=1 variable causes a ping in specification 2 when your cache is pinged too!
- 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
[edit] Variable Combination Standards
- Net variable decides specification!
- There are many ways to determine spec., but going with net is the safe way.
- Your cache needs to be able to process certain combinations of variables.
- Update variable
- Update should not fail if absent if spec. 2.
- If net is present, go on with spec. 2, else spec. 1.
- Should still accept hostfile and urlfile responses for spec. 2.
- Update should not fail if absent if spec. 2.
- Update variable
- 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.
[edit] Further Information:
| This article is uncategorized. Please categorize this article to list it with similar articles. (June 2008) |

