#!/bin/bash
## get basic info
source /home/admin/raspiblitz.info 2>/dev/null
# get local ip
localip = $( ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d'/' )
# create bitcoin base directory and link with bitcoin user
sudo mkdir /mnt/hdd/bitcoin
sudo chown bitcoin:bitcoin /mnt/hdd/bitcoin
sudo ln -s /mnt/hdd/bitcoin /home/bitcoin/.bitcoin
echo ""
echo "*** Instructions to COPY BLOCKCHAIN from another computer (only MAINNET) ***"
echo ""
echo "You can use the blockchain from another bitcoin-core client with version greater or equal"
echo "to 0.17.1 with transaction index switched on (`txindex=1` in the `bitcoin.conf`)."
echo ""
echo "Both computers (your RaspberryPi and the other computer with the full blockchain on) need"
echo "to be connected to the same local network."
echo ""
echo "Open a terminal on the other computer and change into the directory that constains the"
echo "blockchain data. You should see directories 'blocks', 'chainstate' & 'indexes'" .
echo "Make sure the bitcoin client on that computer is stopped."
echo ""
echo "Copy, Paste and Execute the following commands - line by line:"
echo " scp -R ./blocks bitcoin@ ${ localip } :/home/bitcoin/.bitcoin/blocks "
echo " scp -R ./chainstate bitcoin@ ${ localip } :/home/bitcoin/.bitcoin/chainstate "
echo " scp -R ./indexes bitcoin@ ${ localip } :/home/bitcoin/.bitcoin/indexes "
echo ""
echo "Every command above needs your SSH PASSWORD A to work and will take some time to transfer."
echo "PRESS ENTER if all 3 transfers are done or if you dont care and you want to return to menu."
read key
# unlink bitcoin user (will created later in setup again)
sudo unlink /home/bitcoin/.bitcoin
# make quick check if data is there
anyDataAtAll = 0
quickCheckOK = 1
count = $( sudo ls /mnt/hdd/bitcoin/blocks | grep -c '.dat' )
if [ ${ count } -gt 0 ] ; then
echo "Found data in /mnt/hdd/bitcoin/blocks"
anyDataAtAll = 1
if
if [ ${ count } -lt 3000 ] ; then
echo " FAIL: transfere seems invalid - less then 3000 .dat files ( ${ count } ) "
quickCheckOK = 0
fi
count = $( sudo ls /mnt/hdd/bitcoin/chainstate | grep -c '.ldb' )
if [ ${ count } -gt 0 ] ; then
echo "Found data in /mnt/hdd/bitcoin/chainstate"
anyDataAtAll = 1
fi
fi [ ${ count } -lt 1400 ] ; then
echo " FAIL: transfere seems invalid - less then 1400 .ldb files ( ${ count } ) "
quickCheckOK = 0
fi
count = $( sudo ls /mnt/hdd/bitcoin/indexes/txindex | grep -c '.ldb' )
if [ ${ count } -gt 0 ] ; then
echo "Found data in /mnt/hdd/bitcoin/indexes/txindex"
anyDataAtAll = 1
fi
if [ ${ count } -lt 5200 ] ; then
echo " FAIL: less then 5200 .ldb files ( ${ count } ) in /mnt/hdd/bitcoin/chainstate (transfere seems invalid) "
quickCheckOK = 0
fi
# just if any data transferred ..
if [ ${ anyDataAtAll } -eq 1 ] ; then
# data was invalkid - ask user to keep?
if [ ${ quickCheckOK } -eq 0 ] ; then
echo "*********************************************"
echo "There seems to be a invalid transfere."
echo "Wait 5 secs ..."
sleep 5
dialog --title " INVALID TRANSFER" --yesno "Quickcheck shows the data you transferred is invalid/incomplete.\nThis can lead further RaspiBlitz setup to get stuck in error state.\nDo you want to reset/delete data data?" 8 57
response = $?
echo " response( ${ response } ) "
case $response in
0) quickCheckOK = 1 ; ;
esac
fi
if [ ${ quickCheckOK } -eq 0 ] ; then
echo "Deleting invalid Data ..."
sudo rm -rf /mnt/hdd/bitcoin
sudo rm -rf /home/bitcoin/.bitcoin
sleep 2
fi
else
# when no data transferred - just delete bitcoin base dir again
sudo rm -rf /mnt/hdd/bitcoin
fi
# setup script will decide the next logical step
./10setupBlitz.sh