2019-07-26 13:07:22 +00:00
|
|
|
|
2020-12-05 11:22:22 +00:00
|
|
|
## Source code
|
2019-07-26 13:07:22 +00:00
|
|
|
|
|
|
|
$ git clone https://github.com/tecnovert/basicswap.git
|
|
|
|
|
|
|
|
|
|
|
|
## Run Using Docker
|
|
|
|
|
|
|
|
Docker must be installed and started:
|
2020-12-06 17:34:56 +00:00
|
|
|
|
2019-07-26 13:07:22 +00:00
|
|
|
$ sudo systemctl status docker | grep Active
|
|
|
|
|
2020-12-05 11:22:22 +00:00
|
|
|
Should return a line containing `active (running)`
|
|
|
|
|
|
|
|
|
|
|
|
Create the images:
|
2019-07-26 13:07:22 +00:00
|
|
|
|
|
|
|
$ cd basicswap/docker
|
|
|
|
$ docker-compose build
|
|
|
|
|
2020-12-05 11:22:22 +00:00
|
|
|
Prepare the datadir:
|
|
|
|
Set XMR_RPC_HOST and BASE_XMR_RPC_PORT to a public XMR node or exclude to run a local node.
|
2020-12-08 22:05:28 +00:00
|
|
|
Set xmrrestoreheight to the current xmr chain height.
|
2021-01-05 18:10:33 +00:00
|
|
|
Adjust `--withcoins` and `--withoutcoins` as desired, eg: `--withcoins=monero,bitcoin`. By default only Particl is loaded.
|
2020-12-05 11:22:22 +00:00
|
|
|
|
2020-12-06 17:34:56 +00:00
|
|
|
$ 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 \
|
2021-01-05 18:10:33 +00:00
|
|
|
basicswap-prepare --datadir=/coindata --withcoins=monero --htmlhost="0.0.0.0" --xmrrestoreheight=2245107
|
2020-12-05 11:22:22 +00:00
|
|
|
|
|
|
|
Record the mnemonic from the output of the above command.
|
|
|
|
|
|
|
|
Remove swap_prepare container (and logs):
|
|
|
|
|
|
|
|
$ docker rm swap_prepare
|
2019-07-26 13:07:22 +00:00
|
|
|
|
|
|
|
|
2020-12-05 11:22:22 +00:00
|
|
|
Start the container
|
2019-07-26 13:07:22 +00:00
|
|
|
|
2020-12-06 17:34:56 +00:00
|
|
|
$ export COINDATA_PATH=/var/data/coinswaps
|
2020-12-05 11:22:22 +00:00
|
|
|
$ docker-compose up
|
2019-07-26 13:07:22 +00:00
|
|
|
|
2020-12-05 11:22:22 +00:00
|
|
|
Open in browser: `http://localhost:12700`
|
2019-07-26 13:07:22 +00:00
|
|
|
|
2021-01-05 12:31:02 +00:00
|
|
|
|
|
|
|
|
2020-12-06 17:34:56 +00:00
|
|
|
### 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`
|
2020-12-08 22:05:28 +00:00
|
|
|
Remove any existing wallets after copying over a pruned chain or the Bitcoin daemon won't start.
|
2020-12-06 17:34:56 +00:00
|
|
|
|
2019-07-26 13:07:22 +00:00
|
|
|
|
2021-01-05 12:31:02 +00:00
|
|
|
## Windows
|
|
|
|
|
|
|
|
Setup Docker Desktop on the WSL 2 backend.
|
|
|
|
[docs.docker.com/docker-for-windows/wsl](https://docs.docker.com/docker-for-windows/wsl/)
|
|
|
|
|
|
|
|
Launch the docker commands through a WSL terminal.
|
|
|
|
|
|
|
|
|
2020-12-05 11:22:22 +00:00
|
|
|
## Run Without Docker:
|
2019-07-26 13:07:22 +00:00
|
|
|
|
2020-12-30 21:01:21 +00:00
|
|
|
|
|
|
|
### Ubuntu Setup:
|
|
|
|
|
2020-12-05 11:22:22 +00:00
|
|
|
$ apt-get install -y wget python3-pip gnupg unzip protobuf-compiler automake libtool pkg-config
|
2019-07-26 13:07:22 +00:00
|
|
|
|
2020-12-30 21:01:21 +00:00
|
|
|
### 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
|
2020-12-31 10:02:17 +00:00
|
|
|
$ mkdir -p "$SWAP_DATADIR/venv"
|
2020-12-05 11:22:22 +00:00
|
|
|
$ python3 -m venv "$SWAP_DATADIR/venv"
|
|
|
|
$ . $SWAP_DATADIR/venv/bin/activate && python -V
|
2020-12-30 21:01:21 +00:00
|
|
|
$ cd $SWAP_DATADIR
|
2020-12-05 11:22:22 +00:00
|
|
|
$ wget -O coincurve-anonswap.zip https://github.com/tecnovert/coincurve/archive/anonswap.zip
|
|
|
|
$ unzip coincurve-anonswap.zip
|
2020-12-30 21:01:21 +00:00
|
|
|
$ cd $SWAP_DATADIR/coincurve-anonswap
|
2020-12-31 12:53:31 +00:00
|
|
|
$ pip3 install .
|
2019-07-26 13:07:22 +00:00
|
|
|
|
|
|
|
|
2020-12-05 11:22:22 +00:00
|
|
|
$ cd $SWAP_DATADIR
|
|
|
|
$ git clone https://github.com/tecnovert/basicswap.git
|
2020-12-30 21:01:21 +00:00
|
|
|
$ cd $SWAP_DATADIR/basicswap
|
2019-07-26 13:07:22 +00:00
|
|
|
$ protoc -I=basicswap --python_out=basicswap basicswap/messages.proto
|
2019-07-27 20:13:35 +00:00
|
|
|
$ pip3 install .
|
2019-07-26 13:07:22 +00:00
|
|
|
|
2020-12-05 11:22:22 +00:00
|
|
|
Prepare the datadir:
|
|
|
|
|
2021-01-05 18:10:33 +00:00
|
|
|
XMR_RPC_HOST="node.xmr.to" BASE_XMR_RPC_PORT=18081 basicswap-prepare --datadir=$SWAP_DATADIR --withcoins=monero --xmrrestoreheight=2245107
|
2020-12-05 11:22:22 +00:00
|
|
|
|
2020-12-30 21:01:21 +00:00
|
|
|
OR using a local XMR daemon:
|
2021-01-05 18:10:33 +00:00
|
|
|
basicswap-prepare --datadir=$SWAP_DATADIR --withcoins=monero --xmrrestoreheight=2245107
|
2020-12-30 21:01:21 +00:00
|
|
|
|
2020-12-05 11:22:22 +00:00
|
|
|
Record the mnemonic from the output of the above command.
|
|
|
|
|
|
|
|
Start the app
|
|
|
|
|
|
|
|
$ basicswap-run --datadir=$SWAP_DATADIR
|
|
|
|
|
|
|
|
Open in browser: `http://localhost:12700`
|
2020-12-31 12:53:31 +00:00
|
|
|
It may take a few minutes to start as the coin daemons are started before the http interface.
|
2019-07-26 13:07:22 +00:00
|
|
|
|
|
|
|
|
2020-12-30 21:01:21 +00:00
|
|
|
Start after installed:
|
|
|
|
|
|
|
|
$ export SWAP_DATADIR=/Users/$USER/coinswaps
|
2021-01-01 16:03:05 +00:00
|
|
|
$ . $SWAP_DATADIR/venv/bin/activate && python -V
|
2020-12-30 21:01:21 +00:00
|
|
|
$ basicswap-run --datadir=$SWAP_DATADIR
|