Skip to content

Instantly share code, notes, and snippets.

@metacoin
Created April 14, 2018 00:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save metacoin/4b60dacb1a5ec493b3eb89f13e108dd6 to your computer and use it in GitHub Desktop.
Save metacoin/4b60dacb1a5ec493b3eb89f13e108dd6 to your computer and use it in GitHub Desktop.
#!/bin/bash
###
# Script made by reddit/u/ben-btc & EnterTheBlockchain.com
# Updated (v2.0) by Joseph Fiscella (metacoin) for FLO v0.15.3
# Designed for a fresh install of Ubuntu 16.04
# Modified from and special thanks to reddit/u/ymmv2 for creating the btcAutoNode script
# https://www.reddit.com/r/Bitcoin/comments/1se3zd/how_to_create_a_full_bitcoin_node_in_a_5_ubuntu/
#
# https://flo.cash
# Version 2.0
###
###
echo "########### The server will reboot when the script is complete"
echo "########### Installing Dependencies"
cd ~
apt-get -y update
apt-get -y install software-properties-common python-software-properties htop
add-apt-repository ppa:bitcoin/bitcoin
apt-get -y update
apt-get -y install git build-essential automake autoconf libboost-all-dev libssl-dev pkg-config
apt-get -y install libprotobuf-dev protobuf-compiler libqt4-dev libqrencode-dev libtool
apt-get -y install libcurl4-openssl-dev libevent-dev
apt-get -y install libdb4.8-dev libdb4.8++-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
sudo chmod 0600 /swapfile
echo "########### Cloning Florincoin and Compiling"
mkdir -p ~/src && cd ~/src
git clone https://github.com/floblockchain/flo.git
cd flo
./autogen.sh
./configure
make
make install
echo "########### Create flo User"
useradd -m flo
echo "########### Creating flo.conf"
cd ~flo
sudo -u flo mkdir .flo
config=".flo/flo.conf"
sudo -u flo touch $config
echo "port=7312" > $config
echo "server=1" >> $config
echo "daemon=1" >> $config
#echo "connections=80" >> $config #default is 125
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 "generate=0" >> $config
echo "txindex=1" >> $config
echo "addnode=146.185.148.114" >> $config
echo "addnode=192.241.171.45" >> $config
echo "addnode=188.166.6.99" >> $config
echo "addnode=176.9.59.110" >> $config
echo "addnode=162.243.107.112" >> $config #nyc2
echo "addnode=128.199.116.119" >> $config #sgp
echo "addnode=207.154.239.148" >> $config #de
echo "addnode=192.241.201.19" >> $config #sf1
echo "########### Setting up IPTables"
iptables -A INPUT -p tcp --dport 7312 -j ACCEPT
#echo "########### Download & Install Blockchain Snapshot"
#cd ~
#wget https://hellobitcoin.org/flo/flochain.tar.gz
#tar -xzvf flochain.tar.gz
#cp -r Florincoin\ Blockchain/* ~flo/.flo/
#chown -R flo ~flo/.flo
#rm -rf Florincoin\ Blockchain/
#rm flochain.tar.gz
echo "########### Setting up autostart (cron)"
crontab -l > tempcron
echo "0 3 * * * reboot" >> tempcron # reboot at 3am to keep things working okay
crontab tempcron
rm tempcron
# Start on boot
sed -i '2a\
sudo -u flo /usr/local/bin/flo -datadir=/home/flo/.flo' /etc/rc.local
echo "############ Add an alias for easy use"
echo "alias flo=\"sudo -u flo flo-cli -datadir=/home/flo/.flo\"" >> ~/.bashrc # example use: flo getinfo
reboot
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment