An Open-Source Gnutella Client for Windows



Beta Status Thursday 12-27-2001
If you emailed me this week and havent gotten a reply, hold on, I'm kinda busy. I'll be back by the weekend to work on the next beta release. Top priority is a new method for picking out corrupt chunks and the hosts that are associated with them so that when you download a file it doesnt start trashing entire portions and re-downloading them.


1.6 Beta Build with Symbols Monday 12-24-2001
If you're getting any errors with the 1.6 beta, download this zip file and extract it to your install directory. Then when an error occurs the Dr. Watson report should be a bit more descriptive and we can get these issues resolved quickly. I have a feeling the people at ZoneAlarm know what Gnucleus should not do to not intefere with its software, but its really hard to contact them. If anyone reading this has better connections, please try to find out.


Gnucleus 1.6 Beta Friday 12-21-2001
Yes you too can try the Gnucleus 1.6 Beta featuring multi-source downloading. Just go into your preferences and set auto-update to beta to get the latest.

Now to the good stuff, what is it? how does it work? Multi-source downloading is downloading the same file from multiple people simultaneously. A couple file sharing services do this already, xolox, eDonke, fasttrack, etc... When you search for a file Gnucleus groups files by size because they are most likely dupicate files, even if they are different names. Then when you select to download that file Gnucleus tries each host until it finds someone to download from. Depending on how much bandwidth you have available Gnucleus will connect to some more hosts to download from. Even if the server is busy Gnucleus will periodically re-try connecting to other hosts during the download. Gnucleus will even re-search your download while the download is going on, each new connection that is made a re-search query will be sent over it.

As for verification, every chunk that is downloaded overlaps the beginning of the next chunk by 4kb. If the bytes match the chunks are put together, otherwise, the smaller of the two chunks is trashed and the host is labeled as corrupt. This ensures you're downloaded files are always good

No extensions to the protocol were needed to implement this feauture, you will be able to multi-source download from a variety of other gnutella clients, bearshare, limewire, etc.. I've been working my butt off to get this working pretty decently, please try the beta, report any problems to the forums. If you know how to program at all I insist getting the source via CVS and running it through in debug mode, it would be a great help. I put off answering a lot of email while I coded all this, but I think I'm caught up now, thanks for the patience.


Status Update for 1.6 Monday 12-10-2001
Almost done with this sucker, multi-segmented downloading is in and working great. Finishing up the interface changes and support for loading partials with the extra file chunks associated with it. Everything is going smoothly, next release in about a week, expect a beta in a couple days. If you are running an internal LAN network at your work or college tell me about it and how many users you have, send me an internal map of your network using gnucleus's mapping feature. I want to start showcasing on gnucleus.net what people have created. My LAN here has about 150 users and over half a terrabyte of data.


WinNT Fix Sunday 11-25-2001
It seems some people were getting the error, 'function Process32Next does not exist' when they started Gnucleus 1.5. This was because WinNT did not support these functions, darn. The new release uses a different method to achieve the same thing and keep compatibility. Sorry for the down time.

I've lost all my email for the last 3 days so if you sent me anything please resend it, this includes the person who sent me the patch for the NT bug, I need to give thanks out to him. Thanks to people who got the debug DLL's and tested Gnucleus, it seems in SockCore.cpp on line 513 gnucleus is asserting, mostly on Win2K machines. This bug has been there for a while, still searching for it. Someone told me once it was more of a microsoft problem than a gnucleus one, still I need to find it and fix it.


Version 1.5, Happy Holidays Wednesday 11-21-2001
Yay, a new release, 1.5, even which is a pretty big release. What is really new with Gnucleus is the exciting LAN mode for people at colleges or at businesses that want to easily create their own internal gnutella networks without contamination from the outside. You can actually create multiple sepereate gnutella nets on the same LAN.

The purpose is two part. First to decrease the bandwidth used by file sharing at colleges and universities by creating a seperate internal sharing network that uses zero of the colleges internet bandwidth. Second is for me personally to research decentralized networks in a more controlled environment.

Go to the Download Page to download Gnucleus 1.5 or Gnucleus 1.5 LAN Version!

If Gnucleus has trouble on start-up, extract these files into your install directory and email me if these files help you at all or give you a different error. Basically it puts Gnuclues into debug mode.


Campus Edition / Mapping work Tuesday 11-06-2001
I'm working with my friend accross the hall on a distributed mapping system. Kinda upset that some Berkley team got credit on Slashdot for mapping gnutella when we've been doing it for over a year already. Anyways, this new system will be cool.

Dont bother with the test versions, I'll include the new code in the update. I'm still not sure if the Win NT problem has been fixed, I get all sorts of emails where some say it works, and others say it doesnt so, whatever, if you want to debug it, please debug it.

I'm working on a college specific version of the program, for the main reason that at my college, like many colleges, they filter all file sharing services because the bandwidth goes through the roof. An internal only system will work nicely. It will be out soon.


Test 3 (just gnuke it) Thursday 11-01-2001
With some tips and lots of great input from the past two failure tests, I'm back at it with a new version that fixes a couple thread issues and mem leaks. (i hope), only way to find out is to have some Win2K users and anyone else who wants to, test it and then email me if it now works, or if it doesnt. This code also fixes a problem with UDP broadcasting on 95/98/ME, so if you want to setup a little gnucleus LAN at your school or home, it works a lot better. For big LANs like at colleges, contact me and I can help you set one up as I do the same for where I am.

Anyway, here's the test files -
Test #3 Gnucleus Executable New!
Original 1.4.5 Gnucleus Executable

Replace the Gnucleus.exe in your Gnucleus install directory with this file. Tell me if it works, tell me if it doesnt.


Project Status Sunday 10-21-2001
Last week was finals for me and this week I have off, its pretty much between college, girlfriend and home most of the time so gnucleus is getting the shaft. I'm going home tonight to check my email, hopefully do some maintenence work on the code. I know a lot of people have been helping me to get the sockets stablized and it seems that at this point a lot of the bugs lay in microsoft's winsock mfc classes. Which are known to be very buggy. It will take some work, but once these problems are out of the way you'll be looking at an extremely stable gnutella client

Sorry for the problems to Win2k people, I say buy XP, I've been running it for 2 months now and my compile time has been cut in half and gnucleus runs days without problems. Its like microsoft finally got the operating system right for once. A shout out to anyone with unicode/UTF-8 experience your 'consulting' would be useful to me and this project. :) Please send me an email.


Win2k and NT Problems (Test 2) Wednesday 10-17-2001
Some people with Windows 2000 and NT are having problems with Gnucleus crashing constantly. I'm thinking it might be the threading so I'm releasing a test that takes the internet test thread out. If this doesnt work I'll try taking some more thread code out. Please help me by downloading the test file if you are experiencing crashing on start up.
Update: I just got a report from a user that found when he turned Zone Alarm off, Gnucleus worked fine, but when it was turned on Gnucleus crashed. He was using Windows 98, can anyone confirm this happening?

Test #2 Gnucleus Executable
Original 1.4.5 Gnucleus Executable

Replace the Gnucleus.exe in your Gnucleus install directory with this file. Tell me if it works, tell me if it doesnt.


Gnucleus 1.4.5 Released Monday 10-15-2001
Ok, yesterday was a bit awkward for me, and probably for anyone using Gnuclues. I released 3 patches all with in about 12 hours. The first was an update to 1.4.3 including the new ident and bandwidth code. Unfortunately I didnt notice a bug in the IRC code when I released so a couple hours later when I checked the hostcache on IRC there were 1,500 people all in the cache room at once. Of course this was really bad so I released a patch quickly bringing us to 1.4.4. Unfortunately again a couple hours later I was tipped off that this version was having trouble connecting. It turns out I forgot to turn off guerilla mode, so I did that and now we're up to 1.4.5

I've gotten some reports of instability under Win2k, I'm running XP here and Gnucleus runs fine for days, but for others it seems they're having trouble. Please if you have VC installed, run Gnucleus in debug mode and try to find out where it is breaking. If you know a lot about CAsyncSocket, could you take a peek at the disconnect code, sockets seem to linger long after they are closed.
Update: It seems that if you have a multi-processor system running gnucleus you are screwed. I have no idea yet what the problem is, probably with threads.

Gnucleus 1.5 is under development, we are working on an internal browse file system


Pending Patches Thursday 10-11-2001
Current patches to be applied:
  • Svante Gellerstam - Fixes to speed gnucs up, improve transfer
  • Andrew - A MyNapster guy, added new chat features, plus full DCC!

Hey! If you're a developer or just feel like helping me debug gnucs, compile it and let it in debug for a couple of days, when it crashes try to figure out why.


Ident Improved Wednesday 10-10-2001
I started documenting the Gnutella protocol, see the protcol section for more info. Changed the Ident code for IRC so now multiple Ident requests can be handled simultaneously. Helps in connecting to an IRC faster.


Homepage Revised Monday 10-08-2001
I've put off making a main page long enough. SourceForge is great but I really need a site to orgainize and give credit to all those who have helped in gnucleus development for so long. I also need to start helping people become familiar with the code instead of just letting those master programmers out there figure it all out on their own.