Copyright (c) 2013 Alexander Færøy
Authors: Alexander Færøy (ahf@0x90.dk
).
Peculium is an experimental Bitcoin client implemented in the Erlang programming language.
Peculium is beta quality software and needs proper testing. Do not move your entire Bitcoin fortune from your current client to Peculium.
We will remove this warning once we believe this software is of good enough quality to be a replacement for the Satoshi client.
Make sure you have a working Erlang environment running on your machine. If you are a Mac OS X user using Homebrew, you can install the Erlang distribution using:
$ brew install erlang
We are also depending on Basho's Rebar build-utility. You should be able to manually install it using:
$ git clone git://github.com/basho/rebar.git
$ cd rebar
$ make
Then copy the rebar executable into somewhere in your UNIX path.
You should now be able to download Peculium and build it using:
$ git clone git://github.com/ahf/peculium.git
$ cd peculium
Download our dependencies:
$ make get-deps
Compile our dependencies and Peculium itself:
$ make build-deps
From now on, you can (re)build Peculium using:
$ make
To start Peculium and attach an Erlang shell:
$ make console
Peculium uses EUnit
and triq
for unit and property-based testing. To run
the test suites use:
$ make test
Every function in the Peculium source code must have a type-specification and a
documentation entry. Peculium uses edoc
for documentation and generates
Github friendly markdown based on the output. To generate the documentation
use:
$ make doc
All Peculium hackers and users are welcome to join #peculium
on the Freenode
IRC network.
Anyone who has contributed to Peculium should add themselves here. No change is too little to be put on this list.
This secion will keep you updated on various quirks that you should take into account when using Peculium.
Like a lot of other software out there, the Bitcoin system heavily depends upon having access to a correct time source. The Satoshi client tries to use the Bitcoin network to calculate an adjusted time whereas Peculium don't. Peculium requires that you keep your clock synchronized.
If you do not keep your clock in sync strange things might happen. For instance, Peculium might start thinking that certain perfectly valid blocks are invalid because of this.