![]() |
|
Register | FAQ | The Twelve Commandments | Members List | Calendar | Arcade | Find the Best VPN | Today's Posts | Search |
General Gnutella Development Discussion For general discussion about Gnutella development. |
![]() |
| LinkBack | Thread Tools | Display Modes |
| |||
![]() Hi I'm currently writing my own, GPL'd, Gnutella client, for which I am still looking for co-developers. The big difference to other Gnutella clients will be - as stated in the subject line -, that this client's main audience are other programmers, not end-users. I'm trying to form a base for other programmers to "hack upon", to try out new techniques and test new protocol extensions. The source code is supposed to be easy to read, understand and extend, with a huge amount of comments in it. Ideally, a good C++ programmer should not need more than an hour to figure out the basic working principles of the code and where to stuff in his/her changes. Some words about the client itself: It is written in C++, the main platform is Linux, but I'm trying to keep it portable. It will be a demon, that means, there will be no direct user interface and it will be controlled via a network connection using a protocol which has yet to be defined and implemented. The initial functionality of the client will be very basic - with the exception that I'm trying to support fully automated, segmented downloads right from the beginning -, but after the basic stuff is all more or less working, I'm going to implement as many new features and protocol extensions as possible. (That's the _purpose_ of that client...) By now, everything is still very far from completion; many of the classes are still empty and many of the methods unimplemented. When you're reading through the code, please give me some feedback about whether you think it is a good approach to achieve the stated goals (easy to understand, easy to extend) and whether you've found any obvious errors. (I'm not a very experienced programmer, so there might very likely be some.) Contact me if you're interested. If there's enough interest, I will open a sourceforge project. Guido |
| |||
![]() Quote:
--Max |
| |||
![]() Quote:
|
| |||
![]() Quote:
I want to create a client which will push the networks development further, by allowing other developers to quickly experiment with new techniques and protocol extensions. Of course, the clients source code needs to be well structured and easily extendable in order to allow this. I've found mutella to be especially hard to read and understand, mainly because of the complete lack of comments in the code, but also because you were using several not-so-common language cunstructs, many of which were completely new to me at that time. If you... a) convince me that mutella is suitable for the goals I've stated, b) give me a detailled introduction to its working principles and c) promise me to extensively comment every bit of mutella source code you write in the future I will gladly join you. Guido |
| |||
![]() People should be directed towards contributing to an existing client as opposed to reinventing the wheel. However, there are reasons to start a new program as well. For example, I am writing a Gnutella server/client in C language, although I know little about C programming. Even if there was an existing, robust C client, my knowledge of C is so little that I would not want to contribute schlocky code to someone's project. I am killing two birds with one stone - I am writing a Gnutella servent, and learning C language more fully at the same time. To further burden myself, I am trying to avoid looking at other people's programs, Gnutella or otherwise, so that I can learn how to do this by myself as opposed to just copying someone else's program and just modifying it. That way I learn better. In some cases, looking at other people's programs has become unavoidable when I hit a brick wall, specifically in dealing with - STREAMS - sockets and file I/O big-endian/little-endian issues The Gnutella protocol I have even copied some of the socket stuff line for line, but I am going to re-write those functions myself in the future. If I was a code wizard I would probably check out all the existing projects and choose one to contribute to, but I will not be doing that until I become a better programmer. I have found bugs in other people's programs and notified them of them, and the developer's have fixed those problems. I have some ideas about the direction of Gnutella and P2P, but I think the direction set should mainly rest with the developers whose clients are most popular, and that their priorities like Ultrapeering and ping/pong caching will be my priorities once my client/server matches the initial spec. Here is the <a href=http://www.geocities.com/gnutizen>web page</a> of my server/client, Gnutizen. |
| |||
![]() Hi Guido, sorry, I did not follow this thread closely last days. Of course I want mutella to be 1. Open to others through clear design and documentation 2. Efficient (good design is not the last point here) 3. Developing fast (need more hands) At the moment the code is nearly not doculented at all, I know. But most things I wrote at least shoud be quite understandable for the experienced C++ programmer I guess, but may be I am wrong. Anyway, I'll try to start documenting the code say from the new downloader class at leat there is a design elements there and I'll describe them. What would you say? --Max |
| |||
![]() Quote:
My favorite right now is gtk-gnutella. Although it is written in pure C, the new maintainter/author writes very good C (I've learned a lot reading his code) and he documents nicely what everything does. I'm thinking about a few areas where I could contribute usefully myself. Did you try to contact the author before jumping into writing your own client, which is a pure waste of human effort? How can the open source community compete with LW and BS if we disperse that way? |
| |||
![]() Quote:
Guido |
![]() |
| |
![]() | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
yet another Gnutella client?? | dangermaus | General Gnutella Development Discussion | 11 | September 5th, 2002 12:33 PM |
New Client for gnutella | Unregistered | Gtk-Gnutella (Linux/Unix/Mac OSX/Windows) | 1 | July 17th, 2002 06:37 AM |
New gnutella client for programmers | Unregistered | Mutella (Linux/Unix) | 1 | April 3rd, 2002 05:17 AM |
Which gnutella client is the best? | Unregistered | Site Feedback | 8 | December 25th, 2001 08:29 AM |
This Gnutella client is the best! | Unregistered | General Gnutella / Gnutella Network Discussion | 1 | November 18th, 2001 01:46 PM |