aucoin/README.md
Casper V. Kristensen b7053ad014
Publish
2018-07-15 23:30:55 +02:00

97 lines
3.6 KiB
Markdown

# Aucoin: *A distributed cryptocurrency*
## Quick Start
### Installation
The easiest way to install Aucoin is to use pip:
```bash
pip3 install --upgrade https://git.caspervk.net/caspervk/aucoin/archive/master.tar.gz
```
**Aucoin requires Python 3.6 or later**. Python 3.6 is available in many distributions but you may need to build it on Debian. See the *Detailed Install Instructions* section for further information.
### Usage
The program can be started by running `aucoin` or `python3 -m aucoin` depending on system configuration. Aucoin uses TCP port 8334 to communicate with other nodes; you may need to open it in your firewall.
```text
Usage: aucoin [OPTIONS]
Options:
-m, --miners INTEGER Number of mining processors. [default: 1]
-p, --max-peers INTEGER Maximum number of network peers. [default: 100]
-i, --interface TEXT Network interface to bind to. [default: 0.0.0.0]
-s, --seed TEXT Nodes to connect to. Overrides DNS seeds and saved
peer database. Can be specified multiple times.
-v, --verbose Increase verbosity. Can be used multiple times.
--no-catch-up Skip catching up to the rest of the network before
starting miner and CLI.
--fast-unsafe-catch-up Catch up much faster by downloading the blockchain
database from central server (aucoin.network).
--statistics Log statistics to .aucoin/statistics/stats.json.
--clean Remove data directory (blockchain, wallet, etc).
--help Show this message and exit.
```
### Updating
Update by issuing the same command as with installation.
## Screenshots
### Node status
![Node status](images/status.png)
### Transaction history
![Transaction history](images/history.png)
### Catching up
![Catching up](images/catchup.png)
## Detailed Install Instructions
### Building Python 3.6
The following will build and install Python 3.6 on Debian Stretch:
```bash
apt install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev liblzma-dev libgdbm-dev tk-dev
wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
tar xf Python-3.6.4.tgz
cd Python-3.6.4
./configure --enable-optimizations
make
make altinstall # https://docs.python.org/3/using/unix.html#building-python
```
Replace `python3` and `pip3` with `python3.6` and `pip3.6`, respectively, throughout this document if Python 3.6 was built manually.
### Development Setup
To get started developing on Aucoin, it is recommended to install the package from git. The following will install Aucoin along with the additional development dependencies (optionally in a virtual environment):
```bash
git clone git@git.caspervk.net:caspervk/aucoin.git
cd aucoin
python3 -m venv venv # optional
. venv/bin/activate # optional
pip3 install --editable .[dev]
```
Execute `git pull` to update from upstream.
#### Building Package
To build wheels for the project, first install the `wheel` package:
```bash
pip3 install wheel
```
To build the wheel:
```bash
python3 setup.py bdist_wheel
```
More information on how to package and distribute projects [here](https://packaging.python.org/tutorials/distributing-packages/#packaging-your-project).
## Seed Node
The only centralised component of the system is the seed nodes; these are the nodes that new clients will connect with to bootstrap the network. By default, clients retrieve the list of seed node IP-addresses through DNS at the hostname seed.aucoin.network. To support multiple seed nodes the zone should be configured as follows:
```zone
seed IN A <seed address>
IN A <seed address>
...
```