97 lines
3.6 KiB
Markdown
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>
|
||
|
...
|
||
|
```
|