Skip to content

Instantly share code, notes, and snippets.

@sha-265
Forked from jonasnick/bitcoin-cli-wrapper.sh
Last active August 11, 2020 14:01
Show Gist options
  • Save sha-265/4cb3da2508d0d64a080ca8d192370467 to your computer and use it in GitHub Desktop.
Save sha-265/4cb3da2508d0d64a080ca8d192370467 to your computer and use it in GitHub Desktop.
#!/bin/bash
# bitcoin-cli wrapper for running c-lightning with a pruned Bitcoin node
# (EXPERIMENTAL). It forwards all requests to bitcoind. If a getblock request fails,
# blockstream.info is queried instead. If your prune setting is high enough (2 weeks
# = 2016?) using this wrapper SHOULDN'T have security implications because the
# important blocks are still queried through your own bitcoind.
# Tested with c-lightning 0.6.2. Set the --bitcoin-cli=PATH option in c-lightning to
# the path of this file to use it.
BCLI=bitcoin-cli
getblock() {
hash=$1
txids=$(curl -H "Accept: application/json" https://blockstream.info/api/block/"$hash"/txids 2> /dev/null)
if [[ $txids = *[![:ascii:]]* ]]; then
exit 1
fi
echo "{ \"txs\": $txids }"
}
i=0
argsArray=( "$@" )
for var in "$@"
do
i=$(( i+1 ))
if [[ ${var:0:1} == "-" ]];
then
continue
elif [ "$var" == "getblock" ];
then
$BCLI "$@"
if [ $? -ne 0 ]; then
getblock "${argsArray[$i]}"
fi;
break
else
set -e
$BCLI "$@"
break
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment