Our java implementation of Catena, a Bitcoin-based consensus log (also known as a witnessing scheme, or non-equivocation scheme, or "micro-blockchain")
Java Shell
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.


Catena: Preventing Lies with Bitcoin

Catena can be used by any service or application who wants to prove a linear history of statements to its clients.

How to run on Linux

First, install Maven and other dependencies:


If you're on Mac OS X, download the Bitcoin source code from GitHub to ~/repos/bitcoin/ (you can change set-env.sh if you want to choose a different directory) and compile the bitcoind binary using instructions in doc/build-osx.md

Then, compile Catena:

mvn compile

Then, setup your environment so that the Bitcoin-related scripts in btc-scripts/ work:

. set-env.sh

Then, run all the tests:


Or, run only some of the tests:

./test.sh -Dtest=ReadChainTest
./test.sh -Dtest=WriteChainTest#testRestartReuseWallet

Then you can run a Catena server using ./run-server.sh (pass in -h for help) and a Catena client using ./run-client.sh.

Eclipse project

You can edit the Catena source code using Eclipse Neon 4.6.0. Project files are in this repository, you just have to import them in Eclipse.

Bitcoin testnet

You can play with Catena on the Bitcoin testnet network for free:

  1. Get testnet Bitcoins from a free faucet like this one: https://tpfaucet.appspot.com/
  2. Start the server and create a root-of-trust TXN (example here)
  3. Use the server to create a config for the Catena client
  4. Launch the client with the config file and wait for the statements to arrive

Some websites: