Skip to content

koh-gt/ferritej

Repository files navigation

Build Status Coverage Status

Visit our IRC channel

Welcome to ferritej

The ferritej library is a Java implementation of the Ferrite protocol, which allows it to maintain a wallet and send/receive transactions without needing a local copy of Bitcoin Core. It comes with full documentation and some example apps showing how to use it.

Technologies

  • Java 6 for the core modules, Java 8 for everything else
  • Maven 3+ - for building the project
  • Orchid - for secure communications over TOR
  • Google Protocol Buffers - for use with serialization and hardware communications

Getting started

To get started, it is best to have the latest JDK and Maven installed. The HEAD of the master branch contains the latest development code and various production releases are provided on feature branches.

sudo apt-get install openjdk-8-jdk
# Java 11 (version 54.0)
sudo apt-get install openjdk-11-jdk

sudo apt-get update
sudo apt-get install openjdk-11-doc

# switch versions
sudo update-alternatives --config java
Java 8 for compiling the wallet jar
Java 11 for the checkpoints
cd tools
chmod +x ./build-checkpoints
./build-checkpoints --peer 127.0.0.1 --days=1  


# JAVA_HOME variable
echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64' >> ~/.bashrc
source ~/.bashrc

Building from the command line

To perform a full build use

sudo JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64 mvn clean package -fn

You can also run

mvn site:site -fn -T 4

to generate a website with useful information like JavaDocs.

The outputs are under the target directory.

Building from an IDE

Alternatively, just import the project using your IDE. IntelliJ has Maven integration built-in and has a free Community Edition. Simply use File | Import Project and locate the pom.xml in the root of the cloned project source tree.

Example applications

These are found in the examples module.

Forwarding service

This will download the block chain and eventually print a Bitcoin address that it has generated.

If you send coins to that address, it will forward them on to the address you specified.

  cd examples
  mvn exec:java -Dexec.mainClass=org.bitcoinj.examples.ForwardingService -Dexec.args="<insert a bitcoin address here>"

Note that this example app does not use checkpointing, so the initial chain sync will be pretty slow. You can make an app that starts up and does the initial sync much faster by including a checkpoints file; see the documentation for more info on this technique.

Where next?

Now you are ready to follow the tutorial.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages