Wednesday, September 2, 2009

PeerBlock r131 Interim Release

Quite a few changes have gone in to the code since our release of the r93 Interim Release two weeks ago, and since we're rapidly closing in on our signed-driver-containing PeerBlock 1.0 release (I hope) it's about time to release a new Interim Release. With any luck, this will be the last Interim Release before our PeerBlock 1.0 Release Candidate Interim Release.

Please remember that while we've tried to ensure that this release is stable, it is still an Interim Release - and as such has not gotten as much testing as our Public Releases (like PeerBlock 0.9.2 (r86)) have. It is really meant for people who are more interested in staying on the "Bleeding Edge" of PeerBlock development, and are willing to test out new features and bugfixes for us before we bundle these up and package them as Official Releases. If you're using this version our hope is that you will report any bugs found to our Issue Tracker, and/or discuss them in our Forums - your contributions to this test effort help us make progress, and help ensure that the Public Releases are as stable as they can be!

And also don't forget that if you're running an Interim Release, that version of PeerBlock will check for new Interim Releases and direct you to come here to the Dev Blog when a new one is found. (Actually, this is the first release that should trigger that update-notification, so if it did in fact work please let us know!) New Public Releases will only check for new Public Releases, directing people to a page on our main site. We release Interim Releases much more frequently than we do Public Releases, so if you find having to update your software every couple of weeks annoying you'd probably be better off running a Public Release instead.

What's Changed

Here's what's different between the last Interim Release (r93) and this one:
  • Archive/Delete PeerBlock.log - We now handle peerblock.log the same way as we handle history.db. If you have it set to "Archive & Remove" or "Remove" history every N days, peerblock.log will be archived (and/or deleted) the way you'd expect.
  • Don't Overwrite Tracelog - One problem we've run into a lot is the availability of the peerblock.log tracelog file. Because previous versions overwrote this file every time PeerBlock started we'd lose a lot of helpful data from previous runs, and this has made troubleshooting more difficult. I'd strongly recommend setting the "Delete history every X days" option (specifying an "X" value of not too often, maybe a week or so, just to make sure logfiles are available when we need them), or maybe "Archive and remove" if you want to keep them around longer and are willing to zip/delete them every so often. In the future I'll change the default options on new install to probably "Delete history every 7 days", but for now you'll need to do it manually.
  • Installer Rewrite - Our newest team member, XhmikosR, has rewritten nearly the entire installer code we'd been using. It's doing things in a much more professional manner now. It asks if you'd like to use your old PG2 settings (upon new installation only, and even then only if PG2 is detected on your machine), makes use of an updated Start Menu hierarchy, uninstall now also removes the ...\lists files in a better manner and removes your ...\archives files/directory as well, no longer offers to install QuickLaunch shortcuts on Win7 where they're not really used by default. Also, we're now using a more-standard PeerBlock icon on most pages of the Installer, in the upper-right corner - should look a bit cleaner.
  • Driver Load Bugfixes - We've fixed a few problems in the driver loading code, of the sort that sometimes lead to "unable to load the packet filtering driver" type errors during PeerBlock startup. Specifically, these include fixes for the "CreateService error 1072, 'service has been marked for deletion'", and "StartService error 1055, 'the service database is locked'".
  • Cleaner Shutdown - PeerBlock now saves its configuration as the first step of its shutdown code, which should help resolve the problem people have been having with their settings appearing to not persist across a reboot. It also should shutdown more quickly, so Windows shouldn't display the "waiting for a program to terminate" type dialog when you reboot while PeerBlock is running.
  • Start with Windows - Prior to this release, PeerBlock stored its "Start with Windows" setting in the registry under "HKCU\Software\Microsoft\Windows\CurrentVersion\Run", in a key called "PeerGuardian". This should now be in a key called "PeerBlock", as it should - the installer will fix this setting if an incorrect registry key (i.e. a "PeerGuardian" key with a value pointing towards a PeerBlock installation) is found.
  • Updated Database Code - We've updated our database code to use sqlite version 3.6.17. Supposedly some performance improvements (and bugfixes) are in there, so this should be a source of generic goodness even though we may not notice much.
  • Extra Tracelog Messages - To assist in our troubleshooting of problems, additional statements are being logged to peerblock.log in the following areas: list updating, startup, shutdown, driver load, file-handling.
  • Changed "Hide Window on Close" Option - This option was confusingly worded in the settings panel, so has been renamed to "Minimize to tray on close". Hopefully this will make it more obvious that if the option is NOT set, closing the main UI window will stop the program.
  • "Log Allowed & Blocked" UI Bug - On WinXP 32-bit, fixed the problem in which the "Log Allowed & Blocked" listbox was way too short and had "spinner arrows" to select your option. Just a minor issue, but it didn't look very professional.
  • Mention "PeerBlock, LLC" - Now that we have an officially registered company to represent our project (this was needed for driver-signing, and is probably a source of goodness even aside from that), all app copyrights and company name type fields should be updated to use this name.
  • "Portable" Version - We seem to have quite a few users who like using PeerBlock in a "Portable" mode. PeerBlock currently should be able to run just fine off a USB stick (et al), but we have not previously made zip-packages available as a download option; you'd need to install it first, then copy all the files from the PeerBlock install directory over to your USB stick, then uninstall PeerBlock from your machine. Starting with this Interim Release however, we will be also releasing packages in .zip format. Just be aware that you'll need to figure out on your own which one to download, as you'll need to run a different version for W2K/XP versus Vista/Win7, and for 32- versus 64-bit . . . for a total of four different options.

Known Issues

We still haven't fixed an issue in that automatic list-updates may not be correctly working if you have the "Auto-close Update Window" setting enabled. We're still looking into it, but for now I recommend either not enabling this option, or else manually clicking the "Update" button every so often. This is Issue 56 if you'd like to follow progress on this one.

Also, as previously mentioned, since we're no longer overwriting peerblock.log every time PeerBlock starts we strongly recommend that you enable the "Delete history every X days" option in the settings panel, choosing a reasonable option like once a week or so.

Get it Here

PeerBlock r131 Installer - This is the recommended download for most users.

PeerBlock "Portable" Packages:


Like I said, hopefully this will be the last Interim Release before our signed-driver-containing PeerBlock 1.0 Release Candidate Interim Release. If you encounter any bugs in this release please let us know! And don't forget to "star" the bugs which matter most to you, as per the recent Tell Us What to Do blog post.

Many thanks to the other members of the Dev Team: night_stalker_z, DarC, and XhmikosR; and also to all the members of our Beta Team who've spent a lot of time testing relatively unstable versions of PeerBlock to make sure this is a pretty stable Interim Release for you!

Thanks, and I hope to deliver some good news on the signed-driver soon...

        ---  Mark  ---


  1. r131.
    Great news! So many issues solved, WOW!
    Thank you, so much.

  2. Thanks , good work on development..

  3. Just awesome, Mark and you other guys working on the project!

    Thank you so much - as I said earlier, as soon as I receive my first salary from my new employer, I'm _definitely_ donating a chunk of money to the project! :)

  4. Great work, thank you very much