[Bitcoin-development] [ANNOUNCE] BitCoinJ 0.4

Mike Hearn mike at plan99.net
Fri Mar 9 14:50:02 UTC 2012


I'm pleased to announce the release of BitCoinJ 0.4, the leading Java
implementation of the Bitcoin protocol. BitCoinJ implements simplified
payment verification, a lightweight mode in which no central server or
authority is needed but the resource requirements are still low enough to
be usable on smartphones.

This version of the library is used in the new releases of Android Wallet
and MultiBit.

New in this release <http://code.google.com/p/bitcoinj/wiki/ReleaseNotes>

   - Ability to use "getheaders" to quickly catch up new users to the head
   of the chain. This is a big performance win.
   - ECKeys no longer require the private part, allowing for "watching
   wallets" that cannot spend, but still gather and track the transactions
   associated with the public keys.
   - A new API that implements transaction confidences. Get a quick summary
   or detailed information about how much confidence you can have that a given
   transaction won't be reversed.
   - A new DerbyBlockStore that stores block headers and related data in
   the Apache Derby relational database.
   - Protocol buffers are now a supported serialization format for the
   wallet. This means BitCoinJ based protobuf wallets can be read and
   manipulated by any language/platform with a protobufs implementation, which
   is most of them. There are extension points in the format to allow third
   parties to add new features.
   - Various new event listeners that help you learn when the state of the
   wallet or transactions change.
   - Support for post February 20th version handshakes (most library users
   already got this fix via backports)
   - All event listeners are now allowed to remove themselves during their
   own execution.
   - New APIs that allow you to create offline transactions and then
   broadcast them at a later point. Pending relevant transactions are recorded
   and announced to all newly connected nodes, ensuring a transaction won't
   "get lost" if there was flaky network connectivity at the time of creation.
   Pending transactions are supported much better in this release than in
   previous releases.
   - Wallet now can now take an invalid transaction and complete it by
   adding sufficient inputs and a change output. This enables the creation of
   multi-sends, as well as making experimentation with contracts easier.
   - Support for BIP 14: apps can now set their own "user agent" which will
   be put in the subVer field along with the library version.
   - Updated DNS seeds list.
   - A new WalletTool program for command line usage, and a ToyWallet app
   showing how to set everything up.
   - Support parsing and checking of alert messages.
   - New articles explaining how to use the library:
      - Working with
transactions<http://code.google.com/p/bitcoinj/wiki/WorkingWithTransactions>
      - Working with the
wallet<http://code.google.com/p/bitcoinj/wiki/WorkingWithTheWallet>
   - The usual assortment of bugfixes, new APIs, robustness and test suite
   improvements.

Thanks to everyone who contributed to this release, in particular Andreas
Schildbach, Miron Cuperman, Roman Maneleil, Chris Rico and Vasile Rotaru.

In the next release cycle, I'll be focusing on the following areas:

   1. Real support for transaction fee calculations (most users apply a
   custom patch for this today)
   2. A better block chain API
   3. Have the library manage save points for the wallet itself
   4. Further chain download time optimizations
   5. More support for moving apps onto "work done" as a confidence
   measurement

Of course contributors are welcome to work on whatever they want.

thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20120309/798140af/attachment.html>


More information about the bitcoin-dev mailing list