mempool/production/electrs-start-bitcoin

59 lines
1.3 KiB
Plaintext
Raw Normal View History

2020-10-23 13:35:20 +09:00
#!/usr/local/bin/zsh
# TODO: add rust and llvm90 to installer pkg list if rpi4 arch detected
# TODO: add network as argument
# TODO: get env vars from global settings file for RPC, etc.
# TODO: patch to disable compaction if settings wants that
# load rust cargo if installed from rustup
if [ -f "${HOME}/.cargo/env" ];then
source "${HOME}/.cargo/env"
export PATH="${HOME}/.cargo/bin:${PATH}"
fi
# detect architecture
case `uname -m` in
amd64)
export TARGET=x86_64-unknown-freebsd
;;
arm64)
# need to compile rustc with target set for rpi4 etc.
export TARGET=aarch64-unknown-freebsd
# NB: need to load libgcc_s.so from gcc9 instead of /lib !!
export LD_LIBRARY_PATH=/usr/local/lib/gcc9
;;
*)
echo "Error: Unknown Architecture!"
exit 1
esac
# run electrs in a loop
until false
do
# patch electrs source
# if file exists and grep contains strings, patch it
cd "${HOME}"/.cargo/registry/src/github.com-*/sysconf-0.3.*/
patch -p1 < sysconf.patch
# go home
cd "${HOME}/electrs"
cargo run \
--target "${TARGET}" \
--release \
--bin electrs \
-- \
-vvvv \
--light-mode \
--address-search \
--db-dir /electrs \
--daemon-dir "${HOME}" \
--http-addr '[::]:3000' \
--cookie "${BITCOIN_MAINNET_RPC_USER}:${BITCOIN_MAINNET_RPC_PASS}" \
--precache-scripts "${HOME}/electrs/contrib/popular-scripts.txt"
sleep 1
done
exit 0