Use basicswap-prepare to download releases for the docker image.

This commit is contained in:
tecnovert 2019-07-25 13:41:33 +02:00
parent 1185a5f33d
commit 9aa7e441ee
No known key found for this signature in database
GPG key ID: 8ED6D8750C4E3F93
4 changed files with 24 additions and 34 deletions

View file

@ -1,32 +1,10 @@
FROM ubuntu:18.10
ENV LANG=C.UTF-8 \
PARTICL_DATADIR="/coindata/particl" \
PARTICL_BINDIR="/opt/particl" \
LITECOIN_BINDIR="/opt/litecoin" \
LITECOIN_VERSION="0.17.1" \
DATADIRS="/coindata"
RUN apt-get update; \
apt-get install -y wget python3-pip curl gnupg unzip protobuf-compiler;
RUN cd ~; \
wget https://github.com/particl/coldstakepool/archive/master.zip; \
unzip master.zip; \
cd coldstakepool-master; \
pip3 install .; \
pip3 install pyzmq plyvel protobuf;
RUN PARTICL_VERSION=0.18.1.0 PARTICL_VERSION_TAG= PARTICL_ARCH=x86_64-linux-gnu_nousb.tar.gz coldstakepool-prepare --update_core && \
mkdir -p ${LITECOIN_BINDIR} && cd ${LITECOIN_BINDIR} && \
wget https://download.litecoin.org/litecoin-${LITECOIN_VERSION}/linux/litecoin-${LITECOIN_VERSION}-x86_64-linux-gnu.tar.gz && \
wget -O build.assert https://github.com/litecoin-project/gitian.sigs.ltc/raw/master/${LITECOIN_VERSION}-linux/thrasher/litecoin-linux-0.17-build.assert && \
wget -O build.assert.sig https://github.com/litecoin-project/gitian.sigs.ltc/raw/master/${LITECOIN_VERSION}-linux/thrasher/litecoin-linux-0.17-build.assert.sig && \
wget -qO - https://raw.githubusercontent.com/litecoin-project/litecoin/master/contrib/gitian-keys/thrasher-key.pgp | gpg --import - && \
gpg --verify build.assert.sig build.assert && \
grep " litecoin-${LITECOIN_VERSION}-x86_64-linux-gnu.tar.gz\$" build.assert | sha256sum -c - && \
tar -xvf litecoin-${LITECOIN_VERSION}-x86_64-linux-gnu.tar.gz -C ${LITECOIN_BINDIR} --strip-components 2 litecoin-${LITECOIN_VERSION}/bin/litecoind litecoin-${LITECOIN_VERSION}/bin/litecoin-cli && \
rm litecoin-${LITECOIN_VERSION}-x86_64-linux-gnu.tar.gz && rm *.assert*
apt-get install -y wget python3-pip gnupg unzip protobuf-compiler;
# TODO: move coindata dir out of src dir
RUN wget -O bs.zip https://github.com/tecnovert/basicswap/archive/master.zip; \
@ -35,6 +13,9 @@ RUN wget -O bs.zip https://github.com/tecnovert/basicswap/archive/master.zip; \
protoc -I=basicswap --python_out=basicswap basicswap/messages.proto; \
pip3 install .;
# Download binaries, these will be part of the docker image
RUN basicswap-prepare -datadir=/opt --particl_mnemonic=none
RUN useradd -ms /bin/bash user; \
mkdir /coindata && chown user /coindata

View file

@ -177,7 +177,7 @@ def prepareCore(coin, version, settings, data_dir):
os.chmod(out_path, stat.S_IRWXU)
def prepareDataDir(coin, settings, data_dir, chain):
def prepareDataDir(coin, settings, data_dir, chain, particl_mnemonic):
core_settings = settings['chainclients'][coin]
data_dir = core_settings['datadir']
@ -205,6 +205,9 @@ def prepareDataDir(coin, settings, data_dir, chain):
fp.write('zmqpubsmsg=tcp://127.0.0.1:{}\n'.format(settings['zmqport']))
fp.write('spentindex=1')
fp.write('txindex=1')
if particl_mnemonic == 'none':
fp.write('createdefaultmasterkey=1')
elif coin == 'litecoin':
fp.write('prune=1000\n')
elif coin == 'bitcoin':
@ -232,7 +235,8 @@ def printHelp():
logger.info('--mainnet Run in mainnet mode.')
logger.info('--testnet Run in testnet mode.')
logger.info('--regtest Run in regtest mode.')
logger.info('--particl_mnemonic= Recovery phrase to use for the Particl wallet, default is randomly generated.')
logger.info('--particl_mnemonic= Recovery phrase to use for the Particl wallet, default is randomly generated,\n'
+ ' "none" to set autogenerate account mode.')
logger.info('--withcoin= Prepare system to run daemon for coin.')
logger.info('--withoutcoin= Do not prepare system to run daemon for coin.')
logger.info('--addcoin= Add coin to existing setup.')
@ -343,7 +347,7 @@ def main():
'manage_daemon': True,
'rpcport': 19792 + port_offset,
'datadir': os.path.join(data_dir, 'particl'),
'bindir': os.path.join(data_dir, 'bins', 'particl'),
'bindir': os.path.join(data_dir, 'bin', 'particl'),
'blocks_confirmed': 2,
'override_feerate': 0.002,
},
@ -352,7 +356,7 @@ def main():
'manage_daemon': True if 'litecoin' in with_coins else False,
'rpcport': 19795 + port_offset,
'datadir': os.path.join(data_dir, 'litecoin'),
'bindir': os.path.join(data_dir, 'bins', 'litecoin'),
'bindir': os.path.join(data_dir, 'bin', 'litecoin'),
'use_segwit': True,
'blocks_confirmed': 2
},
@ -361,7 +365,7 @@ def main():
'manage_daemon': True if 'bitcoin' in with_coins else False,
'rpcport': 19796 + port_offset,
'datadir': os.path.join(data_dir, 'bitcoin'),
'bindir': os.path.join(data_dir, 'bins', 'bitcoin'),
'bindir': os.path.join(data_dir, 'bin', 'bitcoin'),
'use_segwit': True
},
'namecoin': {
@ -369,7 +373,7 @@ def main():
'manage_daemon': True if 'namecoin' in with_coins else False,
'rpcport': 19798 + port_offset,
'datadir': os.path.join(data_dir, 'namecoin'),
'bindir': os.path.join(data_dir, 'bins', 'namecoin'),
'bindir': os.path.join(data_dir, 'bin', 'namecoin'),
'use_segwit': False,
'use_csv': False,
'blocks_confirmed': 1
@ -389,7 +393,7 @@ def main():
settings['chainclients'][add_coin] = chainclients[add_coin]
prepareCore(add_coin, known_coins[add_coin], settings, data_dir)
prepareDataDir(add_coin, settings, data_dir, chain)
prepareDataDir(add_coin, settings, data_dir, chain, particl_wallet_mnemonic)
with open(config_path, 'w') as fp:
json.dump(settings, fp, indent=4)
@ -420,11 +424,16 @@ def main():
continue
coin = c
prepareCore(coin, v, settings, data_dir)
prepareDataDir(coin, settings, data_dir, chain)
prepareDataDir(coin, settings, data_dir, chain, particl_wallet_mnemonic)
with open(config_path, 'w') as fp:
json.dump(settings, fp, indent=4)
if particl_wallet_mnemonic == 'none':
logger.info('Done.')
return 0
logger.info('Loading Particl mnemonic')
particl_settings = settings['chainclients']['particl']

View file

@ -11,7 +11,7 @@
"manage_daemon": true,
"rpcport": 19792,
"datadir": "/coindata/particl",
"bindir": "/opt/particl",
"bindir": "/opt/bin/particl",
"blocks_confirmed": 2
},
"litecoin": {
@ -19,7 +19,7 @@
"manage_daemon": true,
"rpcport": 19795,
"datadir": "/coindata/litecoin",
"bindir": "/opt/litecoin",
"bindir": "/opt/bin/litecoin",
"use_segwit": true,
"blocks_confirmed": 2
},
@ -28,7 +28,7 @@
"manage_daemon": false,
"rpcport": 19796,
"datadir": "/coindata/bitcoin",
"bindir": "/opt/bitcoin",
"bindir": "/coindata/bin/bitcoin",
"use_segwit": true
}
},