A library for working with Bitcoin
Go to file
Mike Hearn 5de80dfedf Introduce a user code thread which is used for running event listeners.
This ensures that when user provided event listeners are invoked, we're not holding any locks at that time and thus event listeners can do whatever they want with no risk of accidental inversions or deadlocks. A utility method is available to wait for all preceding events that were triggered to complete, which is useful for unit tests. Reimplement how balance futures work in order to avoid the wallet registering an event handler on itself, this means you cannot accidentally deadlock yourself by running getBalanceFuture().get() inside an event listener.

Future changes will modify how transaction confidence listeners are run to work the same way, and make other kinds of event listener run in the user code thread as well.

The user code mechanism is usable with any executor, opening up the possibility of automatically relaying event listeners into GUI threads for some kinds of apps.
2013-07-05 10:54:18 +02:00
core Introduce a user code thread which is used for running event listeners. 2013-07-05 10:54:18 +02:00
examples Implement server-side and client-side payment channel protocols. 2013-06-27 14:15:49 +02:00
misc Add a logo. 2013-03-01 13:59:48 +01:00
tools Delete the long since obsolete DiskBlockStore. 2013-06-20 15:10:47 +02:00
.gitattributes Add a logo. 2013-03-01 13:59:48 +01:00
.gitignore gitignore .idea 2013-02-27 18:17:18 +01:00
AUTHORS Update AUTHORS and remove duplicated list from the pom. 2013-04-29 13:43:44 +02:00
COPYING Initial checkin of BitCoinJ 2011-03-07 10:17:10 +00:00
pom.xml Version 0.10-SNAPSHOT 2013-06-18 16:33:06 +02:00
README Refresh README a bit 2013-04-09 15:19:02 +02:00

To get started, ensure you have the latest JDK installed, and download Maven from:

  http://maven.apache.org/

Then run "mvn clean package" to compile the software. You can also run "mvn site:site" to generate a website with
useful information like JavaDocs. The outputs are under the target/ directory.

Alternatively, just import the project using your IDE. Most good ones have Maven integration.

Now try running one of the example apps:

  cd examples
  mvn exec:java -Dexec.mainClass=com.google.bitcoin.examples.PingService

It will download the block chain and eventually print a Bitcoin address. If you send coins to it,
you should get them back a few minutes later when a block is solved.

Now you are ready to follow the tutorial:

https://code.google.com/p/bitcoinj/wiki/GettingStarted