Archive for the 'Uncategorized' Category

Protocol Encryption (MSE) has landed!

Wednesday, August 29th, 2007

Big news today, not just for Niagara, but for the whole Mac Bittorrent community - Protocol Encryption has been added to Niagara!

I’ve just committed  revision 133, which adds a new protocolencryption.c function library to libniagara, as well as slight modification to the handshake code in peer.c to accommodate the slightly different process. I’ve also extended the stream socket class to incorporate inline RC4 encryption and decryption.

All the crypto functions are from OpenSSL, so the added functionality adds no bloat to Niagara (OpenSSL is installed by default on OS X).

Of course, the big question is “When can I play with it?” The code in SVN isn’t quite ready for primetime yet. Revision 133 establishes a full encrypted connection with compatible clients, but I haven’t quite figured out the finer points of then carrying on with the higher level Bittorrent protocol. The fallback code also isn’t as robust as I’d like. However, given that it took me 4 days to get this far, a release with MSE fully functional should be out the door by this weekend.

You’re welcome to take a look at the changes over at the SVN browser, but please note that unlike the rest of libniagara, the protocol encryption library is licenced under the GPL, rather than the LGPL.

Stay tuned!

0.1 Alpha 2 Released!

Monday, August 13th, 2007

I noticed a few issues with some of the more experimental block allocation code I’d written, so for the moment I’ve reverted to the older stable code. I’ve also put in a few minor visual improvements.

Grab it at SourceForge or let Sparkle take care of the update for you.

0.1 Alpha 1 Released!

Sunday, August 12th, 2007

I’ve decided that few enough show-stopping bugs are left in the code currently that I can push a release out, and hopefully garner a bit more exposure (and perhaps even a new developer or two…).

The main new features in this release are:

  • Peer Exchange (PEX) for public torrents (uTorrent protocol)
  • Massively improved interface with a lot more information
  • Sparkle and Growl support
  • Performance and memory use improvements
  • Lots and lots of bugfixes

 Take it for a spin and see what you think. Feel free to post feedback here, or on the niagara-devel list.

I’ve decided to switch from the 0.0.x versioning to a 0.x alpha as I feel that most of the 0.1 functionality I want is in place, and I’d really like some help and feedback on getting the basics stable before tackling some of the advanced features I’m planning a bit further down the track.

Updates…

Saturday, June 16th, 2007

Things have been pretty quiet lately in terms of releases as school has been keeping me pretty busy, but behind the scenes, SVN has been pretty active. I’ve accomplished the following:

  • UDP and multitracker support thanks to Kevin Smather’s updated libbt code
  • Ratio and stat tracking support
  • Far more stable torrent class
  • Growl support for notifications
  • Sparkle support for version updates
  • Peer Exchange (PEX) support, which has been backported to libbt.

Things are coming together quite nicely, and I’m hoping to release 0.0.6 pretty soon, once I’ve completed the seeding ratio system. After that the next feature priorities are the interface and bandwidth throttling.

Keep an eye on SVN, and the intrepid can try a few builds, as the engine itself is pretty stable currently. You can also subscribe to the mailing list, which I’ll post a release announcement to. The SVN builds will autoupdate to the 0.0.6 release when it is released, so you can stay current that way too.