![]() |
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 |
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.... |
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. |
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. |
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 |
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 :) |
Hi Juan, Quote:
Please keep us posted on your progress! What kinds of tests do you want to run? Best wishes, Arne |
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 |
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. |
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 :-)) |
Do you have to use c#? If you can use Java instead, you could just as well get developer access to the Phex SVN tree and test the new searching algorithms in an SVN branch without having to implement the whole Gnutella Protocol yourself. |
Hi Arne_bab, Yes, I have to use c#, it's imposed in my project. Personally, I preferred Java because I know much better, I used it during my studies (now I'm learning c # at the same time I'm coding my project :-))). So I have to implement the Gnutella protocol myself in c#. Actually I only implement the principals messages based on the RFC. After, depending on the time I have left, I will see some advance fonctionnality, like GGEP implementation, etc...) But once I finished my project (if I finished once :-))), I'm interesting in working on a gnutella project, to improve my java and protocols knowledge and participate in a open source project. |
Hi Juan, Which specification do you use? There's the outdated Gnutella - A Protocol for a Revolution and newer specs on GDF - LimeWire (currently hosted by LimeWire). If you need help in the implementation, please don't hesitate to ask here or in the gdf mailinglist! (though as you already saw you can't be sure you'll get answers there... I'm reading it, as do many others, but as usual in free software projects, the time budget is always low) |
Hi Arne, I used the limewire specifications and I found some documents on the following web site: Zeral .Net - Home All theses specifications are base on the gnutella documentation found on sourceforge. I don't know if it's the last release of the documentation but I seems that's the same as the one on the limewire website (all the documents are dated from 2003). Do you use theses documents to implement the protocol on Phex ? Regards Juan |
In Phex we mostly used the specs as worked out in the_gdf: - http://groups.yahoo.com/group/the_gdf/files/ (you need a yahoo login to get there - grown structures...) Also the current specs are mostly at the site maintained by LimeWire: - GDF - LimeWire (the ones from gtk-gnutella are quite good, too, though) Some more specs can be found in the phex code repository: - SourceForge.net Repository - [phex] Index of /phex/trunk/docs/Gnutella |
gnutella private Hi, do you build your private gnutella network? Can you tell me the procedure you build the gnutella pricate network briefly? what software do you need? just the diyp2p? Can you send the needed source code you use to build the enviroment to me? I want to learn it. This is my email : ***** thanks very much |
Hi hustnn, When you build a private network it depends on what you want to archieve. The easiest way is to build an unencrypted network among friends. For that you can simply use Phex and set a private network name. Only people who set that name can join you. Your friends then set the same network name and enter your IP to get connected. Afterwards the Phex' exchange the addresses themselves, so that your IP is only necessary on the first connect (or when every known member of the network changed the IP while the user was offline). An encrypted private network is a bit more complex. I'd use i2phex for that: forum.i2p ~ View Forum - I2Phex You can either just use the normal network (exchange with every i2phex user, but anonymously) or also set a private network there - with the advantage that the address people need for their first connection can be anonymous, too. The installation of i2phex requires first installing i2p and then i2phex - ideally compiled from source. If you use a GNU/Linux system, the source download and compilation step is only Code: svn co https://phex.svn.sourceforge.net/svnroot/phex/phex/branches/i2phex i2phex @LotR: Thanks for editing swiftly! PS: Infos on compiling i2phex yourself: http://forum.i2p2.de/viewtopic.php?t=2357 |
An encrypted private network Thanks for your help! It gives me lots of help,but I still don't understant the An encrypted private network,can you explain it in detail? Is the Url you give me the answer? |
All times are GMT -7. The time now is 01:27 PM. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.
Copyright © 2020 Gnutella Forums.
All Rights Reserved.