5

bitcoinj is a bitcoin library, bitsofproof is a full server (standalone 'exe').

Beyond the above - can anyone elaborate on the difference between them? What problems they were designed to solve, their documentation, maturity level?

Is there an overlap between them (in intended usage)?

ripper234
  • 26,550
  • 30
  • 111
  • 246

2 Answers2

5

There are lots of differences in features supported, but the crucial difference is the architecture: Embedded vs. Client-Server Bitcoin Protocol Node and Wallet.

BitcoinJ is a Java library to embed a Simplified or Full Verifying Bitcoin Node and a Wallet into your application.

The Bits of Proof Enterprise Bitcoin Server is a configurable Full Verifying Bitcoin Node written in Java. The server process is accessible through a message bus for client applications and extensions. Several layers and flavors of client libraries are available, such as: STOMP, Java, REST. The Wallet is implemented in the client library, therefore a server process can serve several unrelated applications and distinct Wallets. Several server instances might run in a load balanced configuration serving clients through a common bus. The company Bits of Proof offers commercial support and hosts server instances.

Tamas Blummer
  • 187
  • 2
  • 3
2

As I understand it, BitsOfProof is an enterprise level implementation of the full bitcoind client, including downloading the full blockchain and supporting a full array of features from the main client.

BitcoinJ is a java library that supports building a thinner client (downloads headers instead of full block chain) allowing for building bitcoin features into a memory or storage restricted environment.

Jason Southwell
  • 378
  • 1
  • 6