Skip to content

Commit

Permalink
Merge pull request #220 from phillamy/btc-core-create-wallets
Browse files Browse the repository at this point in the history
Btc core create wallets
  • Loading branch information
Kexkey authored May 25, 2021
2 parents f747548 + 76be5c2 commit 04e1ff9
Show file tree
Hide file tree
Showing 7 changed files with 66 additions and 9 deletions.
2 changes: 1 addition & 1 deletion cyphernodeconf_docker/prompters/900_bitcoin.js
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,6 @@ module.exports = {
return 'VAR0=VALUE0\nVAR1=VALUE1'
},
templates: function( props ) {
return ['bitcoin.conf', 'bitcoin-client.conf']
return ['bitcoin.conf', 'bitcoin-client.conf', 'entrypoint.sh', 'createWallets.sh'];
}
};
2 changes: 1 addition & 1 deletion cyphernodeconf_docker/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ export DEFAULT_CERT_HOSTNAME=disk0book.local
export PROXYCRON_VERSION=v0.6.0-dev
export PYCOIN_VERSION=v0.6.0-dev
export SETUP_VERSION=v0.6.0-dev
export BITCOIN_VERSION=v0.20.1
export BITCOIN_VERSION=v0.21.0
export LIGHTNING_VERSION=v0.9.1
export DEFAULT_DATADIR_BASE=$HOME
export GATEKEEPER_VERSION=v0.6.0-dev
Expand Down
29 changes: 29 additions & 0 deletions cyphernodeconf_docker/templates/bitcoin/createWallets.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/sh

BITCOIN_CLI='bitcoin-cli'

<% if( net === 'regtest' ) { %>
BITCOIN_CLI="$BITCOIN_CLI -regtest"
<% } %>

while [ ! -f "/container_monitor/bitcoin_ready" ]; do echo "CYPHERNODE: bitcoind not ready" ; sleep 10 ; done

echo "CYPHERNODE: bitcoind is ready"

# Check for the basic wallets. If not present, create.
BASIC_WALLETS='"watching01.dat" "xpubwatching01.dat" "spending01.dat"'

CURRENT_WALLETS=`$BITCOIN_CLI listwallets`

for wallet in $BASIC_WALLETS
do
echo "CYPHERNODE: Checking wallet [$wallet]"
echo "$CURRENT_WALLETS" | grep -F $wallet > /dev/null 2>&1

if [ "$?" -ne "0" ]; then
walletNameNoQuote=`echo $wallet | tr -d '"'`
$BITCOIN_CLI createwallet ${walletNameNoQuote} && echo "CYPHERNODE: new wallet created : [$walletNameNoQuote]"
else
echo "CYPHERNODE: Wallet [$wallet] found"
fi
done
17 changes: 17 additions & 0 deletions cyphernodeconf_docker/templates/bitcoin/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/sh

rm -f /container_monitor/bitcoin_ready

<% if ( features.indexOf('tor') !== -1 && torifyables && torifyables.indexOf('tor_bitcoin') !== -1 ) { %>
while [ ! -f "/container_monitor/tor_ready" ];
do
echo "CYPHERNODE: Waiting for Tor to be ready before starting bitcoind"
sleep 10
done
echo "CYPHERNODE: Tor is ready - Starting bitcoind"
<% } %>

# Create default wallets if they are not loaded
/.bitcoin/createWallets.sh &

exec bitcoind
Original file line number Diff line number Diff line change
Expand Up @@ -89,17 +89,14 @@ services:

bitcoin:
image: cyphernode/bitcoin:<%= bitcoin_version %>
<% if ( features.indexOf('tor') !== -1 && torifyables && torifyables.indexOf('tor_bitcoin') !== -1 ) { %>
command: $USER sh -c 'rm -f /container_monitor/bitcoin_ready ; while [ ! -f "/container_monitor/tor_ready" ]; do echo "tor not ready" ; sleep 10 ; done ; echo "tor ready" ; bitcoind'
<% } else { %>
command: $USER sh -c 'rm -f /container_monitor/bitcoin_ready ; bitcoind'
<% } %>
command: $USER /.bitcoin/entrypoint.sh
<% if( bitcoin_expose ) { %>
ports:
- "<%= (net === 'regtest') ? '18444:18444' : ((net === 'testnet') ? '18333:18333' : '8333:8333') %>"
<% } %>
volumes:
- "<%= bitcoin_datapath %>:/.bitcoin"
- "<%= bitcoin_datapath %>/createWallets.sh:/.bitcoin/createWallets.sh:ro"
- container_monitor:/container_monitor
healthcheck:
test: chown $USER /container_monitor && su-exec $USER sh -c 'bitcoin-cli echo && touch /container_monitor/bitcoin_ready || rm -f /container_monitor/bitcoin_ready'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ while [ -z "${TORIP}" ]; do echo "tor not ready" ; TORIP=$(getent hosts tor | aw
#TORIP=$(getent hosts tor | awk '{ print $1 }')
echo "tor ready at IP ${TORIP}"

lightningd --proxy=$TORIP:9050
exec lightningd --proxy=$TORIP:9050
<% } else { %>

lightningd
exec lightningd

<% } %>
14 changes: 14 additions & 0 deletions dist/setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -506,6 +506,20 @@ install_docker() {
copy_file $cyphernodeconf_filepath/bitcoin/bitcoin-client.conf $BITCOIN_DATAPATH/bitcoin-client.conf 1 $SUDO_REQUIRED
fi
fi

copy_file $cyphernodeconf_filepath/bitcoin/entrypoint.sh $BITCOIN_DATAPATH/entrypoint.sh 1 $SUDO_REQUIRED
copy_file $cyphernodeconf_filepath/bitcoin/createWallets.sh $BITCOIN_DATAPATH/createWallets.sh 1 $SUDO_REQUIRED

if [[ ! -x $BITCOIN_DATAPATH/entrypoint.sh ]]; then
step " make entrypoint.sh executable"
sudo_if_required chmod +x $BITCOIN_DATAPATH/entrypoint.sh
next
fi
if [[ ! -x $BITCOIN_DATAPATH/createWallets.sh ]]; then
step " make createWallets.sh executable"
sudo_if_required chmod +x $BITCOIN_DATAPATH/createWallets.sh
next
fi
fi

if [[ $FEATURE_LIGHTNING == true ]]; then
Expand Down

0 comments on commit 04e1ff9

Please sign in to comment.