27849d3020
To make it possible to communicate over gRPC with an instance running in Docker we need to expose the correct RPC interface.
70 lines
1.9 KiB
Bash
Executable File
70 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# exit from script if error was raised.
|
|
set -e
|
|
|
|
# error function is used within a bash function in order to send the error
|
|
# message directly to the stderr output and exit.
|
|
error() {
|
|
echo "$1" > /dev/stderr
|
|
exit 0
|
|
}
|
|
|
|
# return is used within bash function in order to return the value.
|
|
return() {
|
|
echo "$1"
|
|
}
|
|
|
|
# set_default function gives the ability to move the setting of default
|
|
# env variable from docker file to the script thereby giving the ability to the
|
|
# user override it during container start.
|
|
set_default() {
|
|
# docker initialized env variables with blank string and we can't just
|
|
# use -z flag as usually.
|
|
BLANK_STRING='""'
|
|
|
|
VARIABLE="$1"
|
|
DEFAULT="$2"
|
|
|
|
if [[ -z "$VARIABLE" || "$VARIABLE" == "$BLANK_STRING" ]]; then
|
|
|
|
if [ -z "$DEFAULT" ]; then
|
|
error "You should specify default variable"
|
|
else
|
|
VARIABLE="$DEFAULT"
|
|
fi
|
|
fi
|
|
|
|
return "$VARIABLE"
|
|
}
|
|
|
|
# Set default variables if needed.
|
|
RPCUSER=$(set_default "$RPCUSER" "devuser")
|
|
RPCPASS=$(set_default "$RPCPASS" "devpass")
|
|
DEBUG=$(set_default "$DEBUG" "debug")
|
|
NETWORK=$(set_default "$NETWORK" "simnet")
|
|
CHAIN=$(set_default "$CHAIN" "bitcoin")
|
|
BACKEND="btcd"
|
|
HOSTNAME=$(hostname)
|
|
if [[ "$CHAIN" == "litecoin" ]]; then
|
|
BACKEND="ltcd"
|
|
fi
|
|
|
|
# CAUTION: DO NOT use the --noseedback for production/mainnet setups, ever!
|
|
# Also, setting --rpclisten to $HOSTNAME will cause it to listen on an IP
|
|
# address that is reachable on the internal network. If you do this outside of
|
|
# docker, this might be a security concern!
|
|
|
|
exec lnd \
|
|
--noseedbackup \
|
|
"--$CHAIN.active" \
|
|
"--$CHAIN.$NETWORK" \
|
|
"--$CHAIN.node"="btcd" \
|
|
"--$BACKEND.rpccert"="/rpc/rpc.cert" \
|
|
"--$BACKEND.rpchost"="blockchain" \
|
|
"--$BACKEND.rpcuser"="$RPCUSER" \
|
|
"--$BACKEND.rpcpass"="$RPCPASS" \
|
|
"--rpclisten=$HOSTNAME:10009" \
|
|
--debuglevel="$DEBUG" \
|
|
"$@"
|