mirror of
https://github.com/basicswap/basicswap.git
synced 2024-12-23 03:49:25 +00:00
docker: Add PIVX, Dash and Firo to isolated config
Changed pivx-params location to PIVX datadir. Still need a way to set the Firo wallet seed.
This commit is contained in:
parent
ae2ddc4049
commit
f65ae07cf9
12 changed files with 208 additions and 14 deletions
|
@ -159,6 +159,9 @@ TEST_ONION_LINK = toBool(os.getenv('TEST_ONION_LINK', 'false'))
|
||||||
BITCOIN_FASTSYNC_URL = os.getenv('BITCOIN_FASTSYNC_URL', 'http://utxosets.blob.core.windows.net/public/')
|
BITCOIN_FASTSYNC_URL = os.getenv('BITCOIN_FASTSYNC_URL', 'http://utxosets.blob.core.windows.net/public/')
|
||||||
BITCOIN_FASTSYNC_FILE = os.getenv('BITCOIN_FASTSYNC_FILE', 'utxo-snapshot-bitcoin-mainnet-720179.tar')
|
BITCOIN_FASTSYNC_FILE = os.getenv('BITCOIN_FASTSYNC_FILE', 'utxo-snapshot-bitcoin-mainnet-720179.tar')
|
||||||
|
|
||||||
|
# Set to false when running individual docker containers
|
||||||
|
START_DAEMONS = toBool(os.getenv('START_DAEMONS', 'true'))
|
||||||
|
|
||||||
use_tor_proxy = False
|
use_tor_proxy = False
|
||||||
|
|
||||||
default_socket = socket.socket
|
default_socket = socket.socket
|
||||||
|
@ -688,11 +691,11 @@ def prepareDataDir(coin, settings, chain, particl_mnemonic, extra_opts={}):
|
||||||
elif coin == 'namecoin':
|
elif coin == 'namecoin':
|
||||||
fp.write('prune=2000\n')
|
fp.write('prune=2000\n')
|
||||||
elif coin == 'pivx':
|
elif coin == 'pivx':
|
||||||
base_dir = extra_opts.get('data_dir', data_dir)
|
params_dir = os.path.join(data_dir, 'pivx-params')
|
||||||
params_dir = os.path.join(base_dir, 'pivx-params')
|
|
||||||
downloadPIVXParams(params_dir)
|
downloadPIVXParams(params_dir)
|
||||||
fp.write('prune=4000\n')
|
fp.write('prune=4000\n')
|
||||||
fp.write(f'paramsdir={params_dir}\n')
|
PIVX_PARAMSDIR = os.getenv('PIVX_PARAMSDIR', params_dir)
|
||||||
|
fp.write(f'paramsdir={PIVX_PARAMSDIR}\n')
|
||||||
if PIVX_RPC_USER != '':
|
if PIVX_RPC_USER != '':
|
||||||
fp.write('rpcauth={}:{}${}\n'.format(PIVX_RPC_USER, salt, password_to_hmac(salt, PIVX_RPC_PWD)))
|
fp.write('rpcauth={}:{}${}\n'.format(PIVX_RPC_USER, salt, password_to_hmac(salt, PIVX_RPC_PWD)))
|
||||||
elif coin == 'dash':
|
elif coin == 'dash':
|
||||||
|
@ -929,6 +932,7 @@ def initialise_wallets(particl_wallet_mnemonic, with_coins, data_dir, settings,
|
||||||
coin_settings = settings['chainclients'][coin_name]
|
coin_settings = settings['chainclients'][coin_name]
|
||||||
c = swap_client.getCoinIdFromName(coin_name)
|
c = swap_client.getCoinIdFromName(coin_name)
|
||||||
|
|
||||||
|
if START_DAEMONS:
|
||||||
if c == Coins.XMR:
|
if c == Coins.XMR:
|
||||||
if coin_settings['manage_wallet_daemon']:
|
if coin_settings['manage_wallet_daemon']:
|
||||||
daemons.append(startXmrWalletDaemon(coin_settings['datadir'], coin_settings['bindir'], 'monero-wallet-rpc'))
|
daemons.append(startXmrWalletDaemon(coin_settings['datadir'], coin_settings['bindir'], 'monero-wallet-rpc'))
|
||||||
|
|
16
docker/production/compose-fragments/1_dash.yml
Normal file
16
docker/production/compose-fragments/1_dash.yml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
dash_core:
|
||||||
|
image: i_dash
|
||||||
|
build:
|
||||||
|
context: dash
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
container_name: dash_core
|
||||||
|
volumes:
|
||||||
|
- ${DATA_PATH}/dash:/data
|
||||||
|
expose:
|
||||||
|
- ${DASH_RPC_PORT}
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
||||||
|
restart: unless-stopped
|
16
docker/production/compose-fragments/1_firo.yml
Normal file
16
docker/production/compose-fragments/1_firo.yml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
firo_core:
|
||||||
|
image: i_firo
|
||||||
|
build:
|
||||||
|
context: firo
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
container_name: firo_core
|
||||||
|
volumes:
|
||||||
|
- ${DATA_PATH}/firo:/data
|
||||||
|
expose:
|
||||||
|
- ${FIRO_RPC_PORT}
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
||||||
|
restart: unless-stopped
|
16
docker/production/compose-fragments/1_pivx.yml
Normal file
16
docker/production/compose-fragments/1_pivx.yml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
pivx_core:
|
||||||
|
image: i_pivx
|
||||||
|
build:
|
||||||
|
context: pivx
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
container_name: pivx_core
|
||||||
|
volumes:
|
||||||
|
- ${DATA_PATH}/pivx:/data
|
||||||
|
expose:
|
||||||
|
- ${PIVX_RPC_PORT}
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
||||||
|
restart: unless-stopped
|
27
docker/production/dash/Dockerfile
Normal file
27
docker/production/dash/Dockerfile
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
# https://github.com/NicolasDorier/docker-bitcoin/blob/master/README.md
|
||||||
|
|
||||||
|
FROM i_swapclient as install_stage
|
||||||
|
|
||||||
|
RUN basicswap-prepare --preparebinonly --bindir=/coin_bin --withcoin=dash --withoutcoins=particl && \
|
||||||
|
find /coin_bin -name *.tar.gz -delete
|
||||||
|
|
||||||
|
FROM debian:bullseye-slim
|
||||||
|
COPY --from=install_stage /coin_bin .
|
||||||
|
|
||||||
|
ENV DASH_DATA /data
|
||||||
|
|
||||||
|
RUN groupadd -r dash && useradd -r -m -g dash dash \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install -qq --no-install-recommends gosu \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
&& mkdir "$DASH_DATA" \
|
||||||
|
&& chown -R dash:dash "$DASH_DATA" \
|
||||||
|
&& ln -sfn "$DASH_DATA" /home/dash/.dash \
|
||||||
|
&& chown -h dash:dash /home/dash/.dash
|
||||||
|
VOLUME /data
|
||||||
|
|
||||||
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
|
|
||||||
|
EXPOSE 9999 9998
|
||||||
|
CMD ["/dash/dashd", "--datadir=/data"]
|
11
docker/production/dash/entrypoint.sh
Executable file
11
docker/production/dash/entrypoint.sh
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [[ "$1" == "dash-cli" || "$1" == "dash-tx" || "$1" == "dashd" || "$1" == "test_dash" ]]; then
|
||||||
|
mkdir -p "$DASH_DATA"
|
||||||
|
|
||||||
|
chown -h dash:dash /home/dash/.dash
|
||||||
|
exec gosu dash "$@"
|
||||||
|
else
|
||||||
|
exec "$@"
|
||||||
|
fi
|
|
@ -35,3 +35,21 @@ XMR_WALLET_RPC_HOST=monero_wallet
|
||||||
BASE_XMR_WALLET_PORT=29998
|
BASE_XMR_WALLET_PORT=29998
|
||||||
XMR_WALLET_RPC_USER=xmr_wallet_user
|
XMR_WALLET_RPC_USER=xmr_wallet_user
|
||||||
XMR_WALLET_RPC_PWD=xmr_wallet_pwd
|
XMR_WALLET_RPC_PWD=xmr_wallet_pwd
|
||||||
|
|
||||||
|
PIVX_DATA_DIR=/data/pivx
|
||||||
|
PIVX_RPC_HOST=pivx_core
|
||||||
|
PIVX_RPC_PORT=51473
|
||||||
|
PIVX_RPC_USER=pivx_user
|
||||||
|
PIVX_RPC_PWD=pivx_pwd
|
||||||
|
|
||||||
|
DASH_DATA_DIR=/data/dash
|
||||||
|
DASH_RPC_HOST=dash_core
|
||||||
|
DASH_RPC_PORT=9998
|
||||||
|
DASH_RPC_USER=dash_user
|
||||||
|
DASH_RPC_PWD=dash_pwd
|
||||||
|
|
||||||
|
FIRO_DATA_DIR=/data/firo
|
||||||
|
FIRO_RPC_HOST=firo_core
|
||||||
|
FIRO_RPC_PORT=8888
|
||||||
|
FIRO_RPC_USER=firo_user
|
||||||
|
FIRO_RPC_PWD=firo_pwd
|
||||||
|
|
25
docker/production/firo/Dockerfile
Normal file
25
docker/production/firo/Dockerfile
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
FROM i_swapclient as install_stage
|
||||||
|
|
||||||
|
RUN basicswap-prepare --preparebinonly --bindir=/coin_bin --withcoin=firo --withoutcoins=particl && \
|
||||||
|
find /coin_bin -name *.tar.gz -delete
|
||||||
|
|
||||||
|
FROM debian:bullseye-slim
|
||||||
|
COPY --from=install_stage /coin_bin .
|
||||||
|
|
||||||
|
ENV FIRO_DATA /data
|
||||||
|
|
||||||
|
RUN groupadd -r firo && useradd -r -m -g firo firo \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install -qq --no-install-recommends gosu \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
&& mkdir "$FIRO_DATA" \
|
||||||
|
&& chown -R firo:firo "$FIRO_DATA" \
|
||||||
|
&& ln -sfn "$FIRO_DATA" /home/firo/.firo \
|
||||||
|
&& chown -h firo:firo /home/firo/.firo
|
||||||
|
VOLUME /data
|
||||||
|
|
||||||
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
|
|
||||||
|
EXPOSE 8168 8888
|
||||||
|
CMD ["/firo/firod", "--datadir=/data"]
|
11
docker/production/firo/entrypoint.sh
Executable file
11
docker/production/firo/entrypoint.sh
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [[ "$1" == "firo-cli" || "$1" == "firo-tx" || "$1" == "firod" || "$1" == "test_firo" ]]; then
|
||||||
|
mkdir -p "$FIRO_DATA"
|
||||||
|
|
||||||
|
chown -h firo:firo /home/firo/.firo
|
||||||
|
exec gosu firo "$@"
|
||||||
|
else
|
||||||
|
exec "$@"
|
||||||
|
fi
|
|
@ -8,6 +8,16 @@ Copy and edit .env config:
|
||||||
cp example.env .env
|
cp example.env .env
|
||||||
|
|
||||||
|
|
||||||
|
Optionally set random RPC passwords:
|
||||||
|
|
||||||
|
for KEY in $(grep -o '^.*_RPC_PWD' .env)
|
||||||
|
do
|
||||||
|
echo "Replacing: $KEY"
|
||||||
|
NEW_PWD=$(cat /dev/random | base16 | head -c 48)
|
||||||
|
sed -i "s/${KEY}=.*$/${KEY}=${NEW_PWD}/g" .env
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
Set the latest Monero chain height, or the height your wallet must restore from:
|
Set the latest Monero chain height, or the height your wallet must restore from:
|
||||||
|
|
||||||
echo "DEFAULT_XMR_RESTORE_HEIGHT=$(curl https://localmonero.co/blocks/api/get_stats | jq .height)" >> .env
|
echo "DEFAULT_XMR_RESTORE_HEIGHT=$(curl https://localmonero.co/blocks/api/get_stats | jq .height)" >> .env
|
||||||
|
@ -21,6 +31,9 @@ Create docker-compose config:
|
||||||
cat compose-fragments/1_bitcoin.yml >> docker-compose.yml
|
cat compose-fragments/1_bitcoin.yml >> docker-compose.yml
|
||||||
cat compose-fragments/1_litecoin.yml >> docker-compose.yml
|
cat compose-fragments/1_litecoin.yml >> docker-compose.yml
|
||||||
cat compose-fragments/1_monero-wallet.yml >> docker-compose.yml
|
cat compose-fragments/1_monero-wallet.yml >> docker-compose.yml
|
||||||
|
cat compose-fragments/1_pivx.yml >> docker-compose.yml
|
||||||
|
cat compose-fragments/1_dash.yml >> docker-compose.yml
|
||||||
|
cat compose-fragments/1_firo.yml >> docker-compose.yml
|
||||||
|
|
||||||
# Copy for prepare script config
|
# Copy for prepare script config
|
||||||
cp docker-compose.yml docker-compose-prepare.yml
|
cp docker-compose.yml docker-compose-prepare.yml
|
||||||
|
@ -28,6 +41,7 @@ Create docker-compose config:
|
||||||
|
|
||||||
# Add the Monero daemon if required (should not go in docker-compose-prepare.yml)
|
# Add the Monero daemon if required (should not go in docker-compose-prepare.yml)
|
||||||
cat compose-fragments/8_monero-daemon.yml >> docker-compose.yml
|
cat compose-fragments/8_monero-daemon.yml >> docker-compose.yml
|
||||||
|
|
||||||
# Add the swapclient
|
# Add the swapclient
|
||||||
cat compose-fragments/8_swapclient.yml >> docker-compose.yml
|
cat compose-fragments/8_swapclient.yml >> docker-compose.yml
|
||||||
|
|
||||||
|
|
25
docker/production/pivx/Dockerfile
Normal file
25
docker/production/pivx/Dockerfile
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
FROM i_swapclient as install_stage
|
||||||
|
|
||||||
|
RUN basicswap-prepare --preparebinonly --bindir=/coin_bin --withcoin=pivx --withoutcoins=particl && \
|
||||||
|
find /coin_bin -name *.tar.gz -delete
|
||||||
|
|
||||||
|
FROM debian:bullseye-slim
|
||||||
|
COPY --from=install_stage /coin_bin .
|
||||||
|
|
||||||
|
ENV PIVX_DATA /data
|
||||||
|
|
||||||
|
RUN groupadd -r pivx && useradd -r -m -g pivx pivx \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install -qq --no-install-recommends gosu \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
&& mkdir "$PIVX_DATA" \
|
||||||
|
&& chown -R pivx:pivx "$PIVX_DATA" \
|
||||||
|
&& ln -sfn "$PIVX_DATA" /home/pivx/.pivx \
|
||||||
|
&& chown -h pivx:pivx /home/pivx/.pivx
|
||||||
|
VOLUME /data
|
||||||
|
|
||||||
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
|
|
||||||
|
EXPOSE 51472 51473
|
||||||
|
CMD ["/pivx/pivxd", "--datadir=/data"]
|
11
docker/production/pivx/entrypoint.sh
Executable file
11
docker/production/pivx/entrypoint.sh
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [[ "$1" == "pivx-cli" || "$1" == "pivx-tx" || "$1" == "pivxd" || "$1" == "test_pivx" ]]; then
|
||||||
|
mkdir -p "$PIVX_DATA"
|
||||||
|
|
||||||
|
chown -h pivx:pivx /home/pivx/.pivx
|
||||||
|
exec gosu pivx "$@"
|
||||||
|
else
|
||||||
|
exec "$@"
|
||||||
|
fi
|
Loading…
Reference in a new issue