Skip to content

Instantly share code, notes, and snippets.

@royalgarter
Last active September 13, 2021 02:38
Show Gist options
  • Save royalgarter/834662e43944a94ba56e65b0e0408c39 to your computer and use it in GitHub Desktop.
Save royalgarter/834662e43944a94ba56e65b0e0408c39 to your computer and use it in GitHub Desktop.
Setup Bitcoin Prune Node & LND on DigitalOcean Ubuntu 18.04 LTS
#!/bin/bash
# Prerequisites:
# 1/ ZeroMQ (for LN): https://gist.github.com/royalgarter/71abc75e1214bb39a1ef14a64639c17d
# Test after install bitcoin: btc getzmqnotifications
echo "########### This script was tested with DigitalOcean Ubuntu 18.04 LTS"
echo "########### The server will reboot when the script is complete"
echo "########### Changing to home dir"
cd ~
echo "########### Updating Ubuntu"
add-apt-repository -y ppa:bitcoin/bitcoin
apt-get -y update
apt-get -y install software-properties-common python-software-properties htop
apt-get -y install software-properties-common
apt-get -y install git build-essential autoconf autotools-dev automake libboost-all-dev libssl-dev pkg-config libevent-dev bsdmainutils
apt-get -y install libprotobuf-dev protobuf-compiler libqt4-dev libqrencode-dev libtool
apt-get -y install libcurl4-openssl-dev db4.8
apt-get -y install libdb4.8-dev libdb4.8++-dev
apt-get -y install screen nano
apt-get -y install libzmq3-dev
echo "########### Creating Swap"
dd if=/dev/zero of=/swapfile bs=1M count=2048 ; mkswap /swapfile ; swapon /swapfile
echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
echo "########### Cloning Bitcoin and Compiling"
mkdir -p ~/src && cd ~/src
git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin
./autogen.sh
./configure --without-gui --without-upnp --disable-tests --with-zmq --enable-zmq
make
make install
echo "########### Create Bitcoin User"
useradd -m bitcoin
echo "########### Creating config"
cd ~bitcoin
sudo -u bitcoin mkdir .bitcoin
config=".bitcoin/bitcoin.conf"
sudo -u bitcoin touch $config
echo "server=1" > $config
echo "daemon=1" >> $config
echo "connections=40" >> $config
randUser=`< /dev/urandom tr -dc A-Za-z0-9 | head -c30`
randPass=`< /dev/urandom tr -dc A-Za-z0-9 | head -c30`
echo "rpcuser=$randUser" >> $config
echo "rpcpassword=$randPass" >> $config
echo "zmqpubrawblock=tcp://127.0.0.1:28332" >> $config
echo "zmqpubrawtx=tcp://127.0.0.1:28333" >> $config
# uncomment if you want to run through Tor Proxy
# echo "proxy=127.0.0.1:9050" >> $config
# comment this prune line if you want to run a fullnode without prune (it will cost about 150GB at 2018-05-01)
# set prune amount to size of `/` 60% (and then by /1000 to turn KB to MB) => /1666
echo "prune="$(expr $(df | grep '/$' | tr -s ' ' | cut -d ' ' -f 2) / 1666) >> $config # safe enough for now
cat .bitcoin/bitcoin.conf
echo "########### Changing to home dir"
cd ~
echo "########### Setting up autostart (cron)"
echo -e '#!/bin/bash\nsudo -u bitcoin /usr/local/bin/bitcoind -datadir=/home/bitcoin/.bitcoin' > start.sh
chmod +x start.sh
cat start.sh
crontab -l > tempcron
echo "0 3 * * * reboot" >> tempcron
echo "@reboot sh /root/start.sh" >> tempcron
crontab tempcron
rm tempcron
echo "############ Add an alias for easy use"
echo "alias btc=\"sudo -u bitcoin bitcoin-cli -datadir=/home/bitcoin/.bitcoin\"" >> ~/.bashrc # example use: btc getinfo
reboot
# Install Go: https://tecadmin.net/install-go-on-ubuntu/
# Install LND: https://github.com/lightningnetwork/lnd
# lnd.conf
# bitcoin.active=1
# bitcoin.mainnet=1
# debuglevel=debug
# bitcoin.node=bitcoind
# bitcoind.rpcuser=
# bitcoind.rpcpass=
# bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332
# bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333
# externalip=<Your public IP>
# Install Node: https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-18-04
# Install RTL: https://github.com/ShahanaFarooqui/RTL
@ray-bun
Copy link

ray-bun commented Sep 13, 2021

Which disk block is it using?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment