Author

Topic: Welcome, developers! (Read 38561 times)

legendary
Activity: 1526
Merit: 1128
July 05, 2013, 08:20:32 AM
#1
Hi there,

This subforum is intended for discussion of app development with the bitcoinj library. Feel free to ask questions either here or on the mailing list. Bugs should go to the bug tracker but it's OK to post feature suggestions here too.



Background

bitcoinj is an implementation of the Bitcoin protocol in Java. Because it implements simplified payment verification it underlies the two popular end user wallet apps that we recommend on the Bitcoin website. It has been used by large numbers of people for over two years.

bitcoinj got started as a Google 20% project by myself, and continues to be developed primarily by myself and Matt Corallo (BlueMatt on these forums). It also benefits greatly from contributions and feedback from Jim Burton (author of MultiBit) and Andreas Schildbach (author of the Android Bitcoin Wallet app).

The library differentiates itself from others by emphasising the following points:

  • Clear documentation and well commented code that is much easier to understand than the reference code written by Satoshi. Example
  • SPV mode is fast and efficient, so it's great for implementing wallet apps without the need for a trusted central server. You can sync a new wallet on a Gingerbread-era smartphone in only a few seconds.
  • Multi-threaded networking layer.
  • A full wallet implementation so you can send and receive coins. Many libraries that are out there actually don't implement a wallet at all, and are thus only useful for exploring the block chain.
  • Great support for implementing contract based applications - the API has many useful utility methods and there's a complete implementation of micropayment channels included, which is not only useful by itself but demonstrates how to use multisignature coins, lock times, alternative SIGHASH flags and other advanced features to build a real app.
  • Used in real apps, by real developers. You can't have a good API without that.

Documentation links

Bitcoinj has extensive documentation both at the API level and articles showing how to use the library:


There are also some more in depth articles covering various topics. For best understanding, read them in order.


There are also example apps which show you what to do.
Jump to: