Gnutella Forums

Gnutella Forums (https://www.gnutellaforums.com/)
-   General Gnutella Development Discussion (https://www.gnutellaforums.com/general-gnutella-development-discussion/)
-   -   which ultrapeer to test my own client (https://www.gnutellaforums.com/general-gnutella-development-discussion/93014-ultrapeer-test-my-own-client.html)

yodoloi04 July 26th, 2009 04:28 AM

which ultrapeer to test my own client
 
Hello,

For my bachelor's degree, I'm writing a simple gnutella client (just the leaf fonctionality) in c#.

I want to do some tests on my client but without impacting the gnutella network. The idea is to run an ultrapper on one of my computers and connect to this ultrapeer with my client from an other computer.

Could you help me by telling me, if there is a software that allows me to be a ultrapeer for my tests.

I tried with Phex, but unfortunately it seems that it is possible to create a private network only (gnutella ultrapeers and leaf) with phex, with others client it dosen't work.

Thanks in advance for your help.

Juan

File_Girl71 July 26th, 2009 03:35 PM

I would try DIY P2P or "Paranoia" as it is the name of the application... It's a demo p2p application... Fully functional and it will let you create your own privat Gnutella network,and you can also run it in forced ultrapeer...Her is the link: Paranoia - Reviews and free Paranoia downloads at Download.com

If that link is not working,you can send me a PM and i can give it to you... Or you can try use Gnucleus her on the forum, since the DIY P2P is mostly based on Gnucleus source code... You find the installer her on the forum in GnucDNA section: http://www.gnutellaforums.com/gnucle...installer.html

I hope this can help you some way....

arne_bab July 26th, 2009 10:44 PM

Phex simply changes the handshake to implement the private network (one string changed), so you can easily use it for your tests.

Also you could just forbid access outside your local network in the security tab.

arne_bab July 27th, 2009 08:40 AM

Normally the greeting is "GNUTELLA CONNECT".

When you use a phex private network, the greeting becomes

"GNUTELLA PCONNECT" + " " + networkName

(for example the network "mySkulk" would have the greeting "GNUTELLA PCONNECT mySkulk")

If you adapt your header accordingly, you can connect to a phex in private network mode.

yodoloi04 July 27th, 2009 01:26 PM

Hello File_girl71, Hello Arne_bab,

Thanks a lot for your help, I really apreciate.

I download Paranoia and I will install and test it.

For the moment I modified the handshake of my code to use "GNUTELLA PCONNECT" + " " + networkName and it works well with Phex (I checked the source code of phex, and I still have a lot of work to understant a litel bit more:-))
I can connect now to a Phex ultrapeer and found some bugs in my code (I still have much work ahead me :-)))

File_girl71, I saw that you post a message about Gnucleus 2.2.0.0. I donwload and install Gnucleus. Have you the sources of this program, it is to see how it's implemented.

Regards
Juan

File_Girl71 July 29th, 2009 10:00 AM

Yes i have the source to Gnucleus 2.2.0.0, if you will i can send you a link to it as a pm :)

arne_bab July 30th, 2009 01:50 AM

Hi Juan,

Quote:

Originally Posted by yodoloi04 (Post 346962)
For the moment I modified the handshake of my code to use "GNUTELLA PCONNECT" + " " + networkName and it works well with Phex (I checked the source code of phex, and I still have a lot of work to understant a litel bit more:-))
I can connect now to a Phex ultrapeer and found some bugs in my code (I still have much work ahead me :-)))

Great!

Please keep us posted on your progress!

What kinds of tests do you want to run?

Best wishes,
Arne

yodoloi04 July 30th, 2009 07:05 AM

Hi Arne,

Actually, I watched how the gnutella protocol works (with wireshark and by reading the RFC). And now I'm coding in C# the differents messages. For the moment, I'm just doing the handshake, sending and receiving ping and pongs messages (theses are the tests that I'm doing now ).

After I will implement the query and QueryHit messages. But before I should be sure that my program structure is correct (so I'm reading some documentation about the best practices with the multi-threading).

The goal is to have a client with a very good search algorithm in c#.

Regards
Juan

arne_bab July 30th, 2009 12:42 PM

How do you want to change the search algorithm? Much of it is implemented in the Ultrapeers, where you can't control it.

The only parts I see which the leaf can really control are Out of Band searches (via udp) and the timing of Dynamic querying (which migth be adjustable to provide better results).

With Ultrapeer-Support you could try some new approaches on searching, though, including different ways to route messages and similar.

yodoloi04 July 30th, 2009 02:12 PM

In fact in my bachelor project, the goal (for the moment) is to have a basic client with good serach results on a gnutella network.

When I looked the RFC, it seems better to implement an ultrapeer to work on a search algorithm but I have only 3 months to do the job and in a first phase it seems easier to implement a leaf client than an ultrapeer (I have to learn c# too, because during my studies in telecommunications I coded all the time in C or java).

Due to these constraints, I decided to start first in this direction, developing a leaf with the best search results and depending on the time, I will try to implement the ultrapeer.

So I still have a lot of nights of work ahead me :-))


All times are GMT -7. The time now is 10:38 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.