View Single Post
  #2 (permalink)  
Old May 15th, 2020
Lord of the Rings's Avatar
Lord of the Rings Lord of the Rings is offline
ContraBanned
 
Join Date: June 30th, 2004
Location: Middle of the ocean apparently (middle earth)
Posts: 656
Lord of the Rings has a distinguished reputationLord of the Rings has a distinguished reputationLord of the Rings has a distinguished reputation
Default

Some web-links in the original post above no longer work. Added PDF's to help with some base elementary information for potential gnutella devs.

GhostWhiteCrab is included. But if only using for GWebCache I would instead personally recommend using Skulls which has been updated several times over the past decade and includes blocking of BOTs and updated GWeb reporting procedures. It should be kept in mind when GhostWhiteCrab is used as a UHC, the client devs should only utilise it as a last resort bootstrap option. First exhausting all other options such as host file and GWebCache; with a bare minimum wait time of two minutes before accessing a UHC. A maximum of once per hour per UHC for both retrieving and reporting purposes. Same report and retrieval rule applies to GWebCaches. Obviously only ultrapeers should report to web caches. Further comments I will leave to the people in the know.

Many programming languages can potentially be used to create a Gnutella network program client. For example, BearShare and GTK-Gnutella use/used 'C+++' whereas Phex and the LimeWire variations used Java. Other languages have also been used during the lifespan of the network. This included creating browser plug-ins (Unfortunely at least one type of BOT also appears to have used this technique.)

If you do create your own gnutella app, then your app will be best accepted and perform at the upper levels if you consider adding support for the following (brief summary borrowed from GTK-G; I am not qualified to add more details):
HTTP/1.1
Gnutella 0.4/0.6
GNet compression
BYE packet
PFSP (Partial File Sharing Protocol)
Vendor Messages
Ultrapeers
QRP (Query Routing Protocol)
Push Proxies
GUESS (Gnutella UDP Extension for Scalable Searches)
TLS support for Gnutella and HTTP connections
Compressed UDP traffic (negotiated)
Compressed Gnutella connections
Distributed Hash Table (DHT) to find alternate locations and push-proxies
UPnP and NAT-PMP support
Simultaneous downloading of files from multiple hosts (swarming)
Attached Files
File Type: pdf Gnutella Protocol Development.pdf (93.3 KB, 138 views)
File Type: pdf Gnutella - Stable - 0.4.pdf (140.3 KB, 85 views)
File Type: pdf GnutellaProtocol0_4-rev1_2.pdf (43.4 KB, 80 views)
File Type: txt Gnutella 0.6 Handshaking Protocol.txt (8.0 KB, 106 views)
File Type: pdf GhostWhiteCrab Config UHC Only - LimeWire.pdf (89.6 KB, 81 views)
File Type: pdf UDP Host Cache - Gnutella Developers.pdf (66.5 KB, 107 views)
Reply With Quote