Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

skeebuzz/BitcoindClient4J

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
28 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bitcoind Json Rpc Client for Java

Build Status

This is a Java library to call the Json Rpc API of the reference implementation Bitcoind. The goal is to support all methods listed in the ./bitcoind help-command. The implementation started from version 0.8.3 of Bitcoind and will not support previous versions. For further details about the implemented API visit the bitcoin.org wiki. Currently tested version is 0.9.0.

Build

Having OpenJDK 7 and Maven 3 installed, execute:

  mvn clean install

Usage

Maven will need to know where to search for this artifact. Add this to your pom.xml:

    <repository>
      <id>BitcoindClient4j</id>
      <name>GitHub BitcoindClient4j Repository</name>
      <url>https://s3.amazonaws.com/37mvnrepo/release</url>
    </repository>

Then add the dependency itself:

    <dependency>
      <groupId>com.37coins</groupId>
      <artifactId>BitcoindClient4J</artifactId>
      <version>0.2.2</version>
    </dependency>

Having dependencies resolved, you can code away. First initialize the Factory with network parameters:

  BitcoindClientFactory clientFactory = 
      new BitcoindClientFactory(
          new URL("http://localhost:8332/"), 
          "user", 
          "password");

Then get a client instance:

  BitcoindInterface client = clientFactory.getClient();

Now you can make calls to your node:

  Info info = client.getinfo();

If you had the API start your bitcoind, you might be interested in stopping it again:

  client.stop();

Blockchain Events

The library also captures notifications from Bitcoind using the startup configuration. Launch your deamon with those parameters:

  ./bitcoind  -blocknotify="echo '%s' | nc 127.0.0.1 4001" 
              -walletnotify="echo '%s' | nc 127.0.0.1 4002" 
              -alertnotify="echo '%s' | nc 127.0.0.1 4003" 
              -daemon

Or, if you have your bitcoind locally, have the API start up the daemon. Call the factory with a path instead of network parameters:

  BitcoindClientFactory clientFactory = 
      new BitcoindClientFactory(
          "/home/user/.bitcoin/",
          Arrays.asList("./bitcoind"));

You can register observers to capture events about blocks, addresses in you wallet, and alerts:

  new BlockListener(client).addObserver(new Observer() {
    @Override
    public void update(Observable o, Object arg) {
      Block block = (Block)arg;
    }
  });

Make sure to close sockets later:

  blockListener.stop();

Donations

Bitcoin donations can be sent to:

  152jsQJyQwxRywuHVVGLFEHkZqJ4QzuFS3

Thanks!

License

GPL3, see LICENSE.txt

About

A Json Rpc Client for Bitcoind written in Java

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.