I'm happy to announce version 0.3 of the leading Java implementation of the Bitcoin protocol. BitCoinJ is a widely used library that forms the foundation of projects as diverse as the Android Bitcoin Wallet, the p2p network status graphs, MultiBit, PoolServerJ and more.
You can get it either from our Maven repository or the downloads section of the website
New in this release:
- Many bugfixes, robustness and test suite improvements.
- Major optimizations to reduce parsing overhead, most protocol messages are now parsed on demand.
- A new PeerGroup API that handles the management of multiple peer connections.
- Switched to using Maven for the build process, removed the bundled Bouncy Castle as a result. You can now depend on BitCoinJ using Maven if you don't need any special patches.
- A bunch of new APIs to make writing Bitcoin apps easier.
This release would not have been possible without the major contributions from:
Steve Coughlan, who contributed many parsing improvements and optimizations
Miron Cuperman, who did significant work on the PeerGroup API
Andreas Schildbach, developer of the Android wallet, who as always reported many bugs and useful suggestions for improvement
Gary Rowe and Jonny Hegheim, who set up the continuous build and Maven infrastructure
What's next? The next release will focus on "more of the same", that is, fixing bugs and filling out missing features so projects using the library don't feel any need to patch their local copy of the library. By popular request we'll be switching from Subversion to git. We'll also introduce a stable wallet format that isn't dependent on Java serialization, and timestamp key creation to resolve some issues with clients that ship block chain copies. And finally of course, whatever is contributed by the community.