https://github.com/koh-gt/ferritej
https://github.com/koh-gt/ferritej
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/koh-gt/ferritej
- Owner: koh-gt
- License: apache-2.0
- Created: 2024-08-14T12:20:00.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2024-09-27T20:14:25.000Z (8 months ago)
- Last Synced: 2025-04-05T12:36:35.090Z (about 2 months ago)
- Language: Java
- Size: 5.38 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: COPYING
- Authors: AUTHORS
Awesome Lists containing this project
README
[](https://travis-ci.org/bitcoinj/bitcoinj) [](https://coveralls.io/r/bitcoinj/bitcoinj?branch=master)
[](https://kiwiirc.com/client/irc.freenode.net/bitcoinj)
### 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+](http://maven.apache.org) - for building the project
* [Orchid](https://github.com/subgraph/Orchid) - for secure communications over [TOR](https://www.torproject.org)
* [Google Protocol Buffers](https://github.com/google/protobuf) - 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-jdksudo 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](http://www.jetbrains.com/idea/download/) 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=""
```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](https://bitcoinj.github.io/getting-started).