Gnutella Forums

Gnutella Forums (https://www.gnutellaforums.com/)
-   General Gnutella Development Discussion (https://www.gnutellaforums.com/general-gnutella-development-discussion/)
-   -   the bootstrap process (https://www.gnutellaforums.com/general-gnutella-development-discussion/94959-bootstrap-process.html)

hustnn March 2nd, 2010 06:43 PM

the bootstrap process
 
If the node want to join the gnutella network ,it is the process called bootstrap,so where can I gain the initial nodes list to connect.

I see it from the limewire wiki,it is called the GwebCache,so if I just to make my client to work with standard gnutella network,so do I need to do the same thing as the limewire client or something else?

Is there any simple research gnutella client to make me understand more easily? I am a newer want to write a gnutella client from scratch.

Thanks!

arne_bab March 3rd, 2010 12:17 PM

To bootstrap Gnutella now uses UDP host caches, but GWebcaches work as well. Remember, though, that these must only be used if you don't have any hosts in your local host catcher (stores long lived nodes' IPs).

You can try using Phex - it's already been used in some academic studies on p2p.

arne_bab March 4th, 2010 01:26 PM

Quote:

Originally Posted by hustnn
If I was not the first time to connect gnutella network,so it should use the local host cache lists to bootstrap, isn't it?

But Do you need to do something to maintain the local host lists?

Yep to both: you get addresses via pongs and can also use the ones from hosts you download from.

For an example see
SourceForge.net Repository - [phex] View of /phex/trunk/src/main/java/phex/host/CaughtHostComparator.java
(it shows how hosts are sorted to keep the best ones in the host catcher - this is executed extremely often!)

hustnn March 4th, 2010 05:48 PM

Then if we want to maintain the lists,such as to check if one host is still active,then do you use the ping/pong to check it?

But I still don't understand the ping/pong affection to the gnutella network.I think there are many ways should using the ping/pong,for eample "keep alive","gain host list",but when and how to use it,such as how and when to gain host addresses by ping/pong ? I can't find some introduce about this.

I see there are a few ways to gain the host lists,such as the x-try,x-untlrapeer-try when handshakeing,the pong is just one of these ways to gain the hosts list to connect to,is it right?So the host cache lists should be gained from all there ways.

arne_bab March 4th, 2010 06:58 PM

To get new hosts, just listen for Pongs :)

And to check if someone is still alive, just connect (no use of doing these checks at other times - TCP connections are too expensive for that - and the turnaround rate too high).

some more detailed info: http://gnet-specs.gnufu.net

hustnn March 4th, 2010 10:09 PM

The connected nodes don't need to be check use extra udp keep alive message,but I mean we know there are a local host list as you said gained from the pong message,so we also don't need to check if these nodes are still alive now?

hustnn March 4th, 2010 10:20 PM

the http://gnet-specs.gnufu.net still alive?It direct to the "http://wiki.limewire.org/index.php?title=GDF",right? But I can't find the detail of the detail of when we need use the ping/pong to gain the new hosts from that document.I just know the pong cache can gain hosts,but when to send ping of a node is not metioned in the document.

why I can't connect to it,can you send me saved html file of the document to me?

arne_bab March 4th, 2010 11:32 PM

Just try connecting a second time. They seem to be a bit slow at the moment.

arne_bab March 4th, 2010 11:35 PM

Quote:

Originally Posted by hustnn
But I don't mean how to choose the node to connect from the host lists.I mean when we collect hosts from udp host cache,x-try,x-ultrapeer,pong or query hits ways,then they contruct the local host cache list,then we how to maintain it,such as
"how to check th host in the list is still active?",
"how ofter to check?",
"when do I need to collect new hosts to update the local cache?"

You'll get so mand new hosts via pongs that you won't need to ask them if they are still alive. You just keep statistics of what you naturally see.

And that's what the code I linked to in phex does: it sorts the newcoming hosts, and phex then just keeps the top 1000 addresses.

That means, you have to sort every host into your local hostcatcher and let the worst ones drop out.


All times are GMT -7. The time now is 08:47 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.

Copyright © 2020 Gnutella Forums.
All Rights Reserved.