basicswap/doc/install.md
2021-01-01 18:03:05 +02:00

4.1 KiB

Source code

$ git clone https://github.com/tecnovert/basicswap.git

Run Using Docker

Docker must be installed and started:

$ sudo systemctl status docker | grep Active

Should return a line containing active (running)

Create the images:

$ cd basicswap/docker
$ docker-compose build

Prepare the datadir: Set XMR_RPC_HOST and BASE_XMR_RPC_PORT to a public XMR node or exclude to run a local node. Set xmrrestoreheight to the current xmr chain height. Adjust --withcoins and --withoutcoins as desired, eg: --withcoins=monero,bitcoin. By default Particl and Litecoin are loaded.

$ export COINDATA_PATH=/var/data/coinswaps
$ docker run -e XMR_RPC_HOST="node.xmr.to" -e BASE_XMR_RPC_PORT=18081 -t --name swap_prepare -v $COINDATA_PATH:/coindata i_swapclient \
basicswap-prepare --datadir=/coindata --withcoins=monero --withoutcoins=litecoin --htmlhost="0.0.0.0" --xmrrestoreheight=2245107

Record the mnemonic from the output of the above command.

Remove swap_prepare container (and logs):

$ docker rm swap_prepare

Start the container

$ export COINDATA_PATH=/var/data/coinswaps
$ docker-compose up

Open in browser: http://localhost:12700

Add a coin

$ docker-compose stop
$ export COINDATA_PATH=/var/data/coinswaps
$ docker run -t --name swap_prepare -v $COINDATA_PATH:/coindata i_swapclient basicswap-prepare --datadir=/coindata --addcoin=bitcoin

You can copy an existing pruned datadir (excluding bitcoin.conf and any wallets) over to $COINDATA_PATH/bitcoin Remove any existing wallets after copying over a pruned chain or the Bitcoin daemon won't start.

Run Without Docker:

Ubuntu Setup:

$ apt-get install -y wget python3-pip gnupg unzip protobuf-compiler automake libtool pkg-config

OSX Setup:

Install Homebrew:

https://brew.sh/

Command Line Tools:

$ xcode-select --install

Dependencies:

$ brew install wget unzip python git protobuf gnupg automake libtool pkg-config

Basicswap:

$ export SWAP_DATADIR=/Users/$USER/coinswaps
$ mkdir -p "$SWAP_DATADIR/venv"
$ python3 -m venv "$SWAP_DATADIR/venv"
$ . $SWAP_DATADIR/venv/bin/activate && python -V
$ cd $SWAP_DATADIR
$ wget -O coincurve-anonswap.zip https://github.com/tecnovert/coincurve/archive/anonswap.zip
$ unzip coincurve-anonswap.zip
$ cd $SWAP_DATADIR/coincurve-anonswap
$ pip3 install .


$ cd $SWAP_DATADIR
$ git clone https://github.com/tecnovert/basicswap.git
$ cd $SWAP_DATADIR/basicswap
$ protoc -I=basicswap --python_out=basicswap basicswap/messages.proto
$ pip3 install .

Prepare the datadir:

XMR_RPC_HOST="node.xmr.to" BASE_XMR_RPC_PORT=18081 basicswap-prepare --datadir=$SWAP_DATADIR --withcoins=monero --withoutcoins=litecoin --xmrrestoreheight=2245107

OR using a local XMR daemon:
basicswap-prepare --datadir=$SWAP_DATADIR --withcoins=monero --withoutcoins=litecoin --xmrrestoreheight=2245107

Record the mnemonic from the output of the above command.

Start the app

$ basicswap-run --datadir=$SWAP_DATADIR

Open in browser: http://localhost:12700 It may take a few minutes to start as the coin daemons are started before the http interface.

Start after installed:

$ export SWAP_DATADIR=/Users/$USER/coinswaps
$ . $SWAP_DATADIR/venv/bin/activate && python -V
$ basicswap-run --datadir=$SWAP_DATADIR

Old notes

Run Without Installing

$ cd basicswap
$ pip install sqlalchemy protobuf pyzmq
$ protoc -I=basicswap --python_out=basicswap basicswap/messages.proto
$ export PYTHONPATH=$(pwd)
$ python bin/basicswap-prepare.py
$ python bin/basicswap-run.py

Windows

Install git and python3:

https://gitforwindows.org/
https://www.python.org/downloads/windows/
    Remember to select the 'Add Python to environment variables' option.

Right click in the directory you want to install into and select 'Git Bash Here':

$ git clone https://github.com/tecnovert/basicswap.git
$ cd basicswap
$ pip3 install .
$ basicswap-prepare
$ basicswap-run

Open url in browser: http://localhost:12700

Shutdown by pressing ctrl + c in the Git Bash console window.