Browse Source

first commit

Your Name 4 years ago
commit
94282a235f
3 changed files with 632 additions and 0 deletions
  1. 28 0
      README.md
  2. 242 0
      make_deps.sh
  3. 362 0
      upload_bootstrap.sh

+ 28 - 0
README.md

@@ -0,0 +1,28 @@
+
+# Okcash Bootstrap Maker
+
+Scripts permettant la compression des fichiers nécessaires à la compilation de Okcash node
+
+## make_deps.sh
+
+Script permettant :
+- Chargement les librairies necessaires à la compilation de OKcash.
+- Decompression des fichiers
+- Compression des fichiers en .tar.xz
+- Upload des fichiers sur le serveur FTP
+
+>./make_deps.sh
+
+## upload_bootstrap.sh
+
+Script permettant:
+- Compression des fichiers blk*.dat et txleveldb en bootstrap.dat.tar.xz
+- Generation des fichiers de controle d'archive (md5sum)
+-Upload des fichiers sur le serveur FTP
+
+>./upload_bootstrap.sh
+
+![](http://gogserver.dnsalias.com:3000/wareck/okcash_bootstrap_maker/raw/master/.docs/image.png)
+
+
+wareck@gmail.com

+ 242 - 0
make_deps.sh

@@ -0,0 +1,242 @@
+#!/bin/bash
+Version=1.6
+OpenSSL_v=1.0.2r
+Boost_v=1_58_0
+DB_v=4.8.30
+Miniupnp_v=2.1
+okcash_v=5005_bliss
+zip_i=""
+unzip_i=""
+ftp_i=""
+pixz_i=""
+pigz_i=""
+z=""
+
+set -e
+echo -e "\n\e[93mOkcash headless dependencies format/uploader v$Version:\e[0m"
+echo -e "wareck@gmail.com"
+echo -e ""
+echo -e "\e[97mSoftware version :\e[0m"
+echo -e "------------------"
+echo -e "Boost                : $Boost_v"
+echo -e "OpenSSL              : $OpenSSL_v"
+echo -e "DB Berkeley          : $DB_v"
+echo -e "DB Berkeley NC       : $DB_v.NC"
+echo -e "Miniupnp             : $Miniupnp_v"
+echo -e "Okcash_source        : $okcash_v"
+
+function system_check {
+echo -e "\n\e[95mSystem check :\e[0m"
+echo -e -n "Check ZIP  installed : "
+if ! [ -x "$(command -v zip)" ];then zip_i="zip" && echo -e "[\e[91mNO\e[0m]";else echo -e "[\e[92mOK\e[0m]";fi
+if ! [ -x "$(command -v unzip)" ];then unzip_i="unzip" ;fi
+echo -e -n "Check LFTP installed : "
+if ! [ -x "$(command -v lftp)" ];then ftp_i="lftp" && echo -e "[\e[91mNO\e[0m]";else echo -e "[\e[92mOK\e[0m]";fi
+echo -e -n "Check PIXZ installed : "
+if ! [ -x "$(command -v pixz)" ];then pixz_i="pixz" && echo -e "[\e[91mNO\e[0m]";else echo -e "[\e[92mOK\e[0m]";fi
+echo -e -n "Check PIGZ installed : "
+if ! [ -x "$(command -v pigz)" ];then pigz_i="pigz" && echo -e "[\e[91mNO\e[0m]";else echo -e "[\e[92mOK\e[0m]"; fi
+if [[ ! $ftp_i = "" || ! $zip_i = "" || ! $unzip_i = "" || ! $pixz_i = "" || ! $pigz_i = "" ]]
+then
+echo -e ""
+sudo apt install $ftp_i $zip_i $unzip_i $pv_i $pixz_i $pigz_i -y
+fi
+}
+
+function freeze_on {
+NEW_FAN=5.0
+NEW_PWMFAN=5.0
+if [ -f /home/$USER/scripts/run-fan.py ]
+then
+echo -e "\n\e[95mEnable \e[38;5;196mF\e[38;5;202mr\e[38;5;208me\e[38;5;214me\e[38;5;220mz\e[38;5;226mi\e[38;5;227mn\e[38;5;229mg\e[0m \e[95m:\e[0m"
+sudo systemctl stop run-fan.service
+if ! [ -f /home/$USER/freeze.txt ]
+then
+if  grep "# Author: Andreas Spiess" /home/$USER/scripts/run-fan.py >/dev/null
+then
+grep -i "desiredTemp = " /home/$USER/scripts/run-fan.py |awk 'NR==1 {print$3;exit}' >/home/$USER/freeze.txt
+else
+grep -i "self.startTemperature = " /home/$USER/scripts/run-fan.py |awk 'NR==1 {print$3;exit}' >/home/$USER/freeze.txt
+fi
+fi
+OLD_FAN=`cat /home/$USER/freeze.txt| awk '{print $1}'`
+if grep "# Author: Andreas Spiess" ~/scripts/run-fan.py >/dev/null
+then
+echo "Fan PWM value : $OLD_FAN => $NEW_PWMFAN"
+else
+echo "Fan value : $OLD_FAN => $NEW_FAN"
+fi
+if  grep "# Author: Andreas Spiess" ~/scripts/run-fan.py >/dev/null
+then
+sed -i -e "s/desiredTemp = "$OLD_FAN"/desiredTemp = "$NEW_PWMFAN"/g" /home/$USER/scripts/run-fan.py
+else
+sed -i -e "s/self.startTemperature = "$OLD_FAN"/self.startTemperature = "$NEW_FAN"/g" /home/$USER/scripts/run-fan.py
+fi
+sudo systemctl restart run-fan.service
+echo -e "Done."
+sleep 1
+fi
+}
+
+function freeze_off {
+echo -e -n ""
+if [ -f /home/$USER/scripts/run-fan.py ]
+then
+echo -e "\n\e[95mDisable Freezing :\e[0m"
+OLD_FAN=`cat /home/$USER/freeze.txt| awk '{print $1}'`
+if  grep "# Author: Andreas Spiess" ~/scripts/run-fan.py >/dev/null
+then
+echo "Fan PWM value : $NEW_PWMFAN => $OLD_FAN"
+else
+echo "Fan value: $NEW_FAN =>$OLD_FAN"
+fi
+sudo systemctl stop run-fan.service
+if  grep "# Author: Andreas Spiess" ~/scripts/run-fan.py >/dev/null
+then
+sed -i -e "s/desiredTemp = "$NEW_PWM"/desiredTemp = "$OLD_FAN"/g" /home/$USER/scripts/run-fan.py
+else
+sed -i -e "s/self.startTemperature = "$NEW_FAN"/self.startTemperature = "$OLD_FAN"/g" /home/$USER/scripts/run-fan.py
+fi
+sudo systemctl restart run-fan.service
+if [ -f /home/$USER/freeze.txt ];then rm /home/$USER/freeze.txt;fi
+echo -e "Done."
+fi
+}
+
+function download_ {
+echo -e "\n\e[95mDownload original libraries :\e[0m"
+if [ ! -d deps ];then mkdir deps && cd deps;else cd deps; fi
+wget -c -q --show-progress https://github.com/okcashpro/okcash/archive/v5.0.0.5-core.bliss.zip
+wget -c -q --show-progress http://wareck.free.fr/crypto/okcash/boost_$Boost_v.tar.gz
+wget -c -q --show-progress http://wareck.free.fr/crypto/okcash/miniupnpc-$Miniupnp_v.tar.gz
+wget -c -q --show-progress http://download.oracle.com/berkeley-db/db-$DB_v.tar.gz
+wget -c -q --show-progress http://download.oracle.com/berkeley-db/db-$DB_v.NC.tar.gz
+wget -c -q --show-progress https://www.openssl.org/source/openssl-$OpenSSL_v.tar.gz
+echo "Done."
+}
+
+
+function expand_ {
+echo -e "\n\e[95mExpand original libraries :\e[0m"
+sleep 1
+echo -e "okcash_v5.0.0.5-core.bliss"
+unzip v5.0.0.5-core.bliss.zip
+echo -n " Ok."
+echo -e "\nboost_$Boost_v.tar.gz:"
+tar -I pigz -xf boost_$Boost_v.tar.gz --checkpoint=.250
+echo -n " Ok."
+echo -e "\ndb-$DB_v.tar.gz:"
+tar -I pigz -xf db-$DB_v.tar.gz --checkpoint=.215
+echo -n " Ok."
+echo -e "\ndb-$DB_v.NC.tar.gz"
+tar -I pigz -xf db-$DB_v.NC.tar.gz --checkpoint=.200
+echo -n " Ok."
+echo -e "\nopenssl-$OpenSSL_v.tar.gz:"
+tar -I pigz -xf openssl-$OpenSSL_v.tar.gz --checkpoint=.60
+echo -n " Ok."
+echo -e "\nminiupnpc-$Miniupnp_v.tar.gz:"
+tar xfz miniupnpc-$Miniupnp_v.tar.gz --checkpoint=.01
+echo -n " Ok."
+}
+
+function compress_ {
+echo ""
+echo -e "\n\e[95mCompress libraries :\e[0m"
+sleep 1
+echo -e "okcash_v5.0.0.5-core.bliss:"
+cp -r okcash-5.0.0.5-core.bliss okcash
+tar cf okcash_$okcash_v.tar.xz okcash --checkpoint=.250 -Ipixz
+echo -n " Ok."
+echo -e "\nboost_$Boost_v.tar.xz:"
+tar cf boost_$Boost_v.tar.xz boost_$Boost_v --checkpoint=.400 -Ipixz
+echo -n " Ok."
+echo -e "\ndb-$DB_v.tar.xz:"
+tar cf db-$DB_v.tar.xz db-$DB_v --checkpoint=.250 -Ipixz
+echo -n " Ok."
+echo -e "\ndb-$DB_v.NC.tar.xz:"
+tar cf db-$DB_v.NC.tar.xz db-$DB_v.NC --checkpoint=.250 -Ipixz
+echo -n " Ok."
+echo -e "\nopenssl-$OpenSSL_v.tar.xz:"
+tar cf openssl-$OpenSSL_v.tar.xz openssl-$OpenSSL_v --checkpoint=.80 -Ipixz
+echo -n " Ok."
+echo -e "\nminiupnpc-$Miniupnp_v.tar.xz:"
+tar cf miniupnpc-$Miniupnp_v.tar.xz  miniupnpc-$Miniupnp_v --checkpoint=.2 -Ipixz
+echo -n " Ok."
+touch 1pass
+}
+
+function stop_watchdog_ {
+echo -e "\n\e[95mStop Watchdog :\e[0m"
+sudo /etc/init.d/cron stop 2>/dev/null || true
+if [ "`systemctl is-active watchdog.service`" = "active" ]
+then
+echo -e "\n\e[95mStopping watchdog :\e[0m"
+sudo systemctl stop watchdog >/dev/null
+echo "Done."
+else
+echo "Done."
+fi
+
+}
+
+function upload_ {
+echo ""
+echo -e "\n\e[95mUpload libraries :\e[0m"
+lftp -u wareck,zorn692611 ftpperso.free.fr <<EOF
+put boost_$Boost_v.tar.xz -o /crypto/okcash/boost_$Boost_v.tar.xz
+EOF
+echo -e "boost_$Boost_v.tar.xz: Ok."
+
+lftp -u wareck,zorn692611 ftpperso.free.fr <<EOF
+put db-$DB_v.tar.xz -o /crypto/okcash/db-$DB_v.tar.xz
+EOF
+echo -e "db-$DB_v.tar.xz: Ok."
+
+lftp -u wareck,zorn692611 ftpperso.free.fr <<EOF
+put db-$DB_v.NC.tar.xz -o /crypto/okcash/db-$DB_v.NC.tar.xz
+EOF
+echo -e "db-$DB_v.NC.tar.xz: Ok."
+
+lftp -u wareck,zorn692611 ftpperso.free.fr <<EOF
+put miniupnpc-$Miniupnp_v.tar.xz -o /crypto/okcash/miniupnpc-$Miniupnp_v.tar.xz
+EOF
+echo -e "miniupnpc-$Miniupnp_v.tar.xz: Ok."
+
+lftp -u wareck,zorn692611 ftpperso.free.fr <<EOF
+put openssl-$OpenSSL_v.tar.xz -o /crypto/okcash/openssl-$OpenSSL_v.tar.xz
+EOF
+echo -e "openssl-$OpenSSL_v.tar.xz: Ok."
+
+lftp -u wareck,zorn692611 ftpperso.free.fr <<EOF
+put okcash_$okcash_v.tar.xz -o /crypto/okcash/okcash_$okcash_v.tar.xz
+EOF
+echo -e "okcash_$okcash_v.tar.xz : Ok."
+
+sleep 5
+echo ""
+touch 1pass
+}
+
+if [ -f 1pass ]
+then
+echo "file 1pass exist..."
+echo "remove it if you want a full rebuild"
+z="-z"
+system_check
+freeze_on
+upload_
+freeze_off
+else
+system_check
+stop_watchdog_
+freeze_on
+download_
+expand_
+compress_
+upload_
+freeze_off
+fi
+
+echo -e ""
+echo -e "\e[95mFinish !\e[0m"
+echo -e ""

+ 362 - 0
upload_bootstrap.sh

@@ -0,0 +1,362 @@
+#!/bin/bash
+set -e
+version=4.2
+date=05/09/2020
+pixz_i=""
+pigz_i=""
+swap_was="0"
+ftp_i=0
+pv_i=0
+retry_flag=0
+daemon_on=0
+split_size=170
+
+echo -e "\n\e[97mOkcash Blockchain Uploader v$version ($date)\e[0m"
+echo -e "wareck : wareck@gmail.com"
+echo -e ""
+echo -e "\e[93mArchive size \e[0m: $split_size Mo"
+sleep 2
+
+function init {
+if ps -ef | grep -v grep | grep okcashd >/dev/null
+then
+daemon_on=1
+echo -e "\n\e[93mStopping Okcashd :\e[0m"
+okcashd stop 2>/dev/null || true && sudo /etc/init.d/cron stop 2>/dev/null || true
+sleep 2
+if  ps -ef | grep -v grep | grep okcashd >/dev/null ; then killall -9 okcashd; fi
+sleep 2
+if [ -f /usr/local/bin/okcashd ];then sudo mv /usr/local/bin/okcashd /usr/local/bin/okcashd_old |true ;fi
+if  ps -ef | grep -v grep | grep okcashd >/dev/null ; then killall -9 okcashd; fi
+echo "Done."
+fi
+
+if [ "`systemctl is-active watchdog.service`" = "active" ]
+then
+echo -e "\n\e[93mStopping watchdog :\e[0m"
+sudo systemctl stop watchdog >/dev/null
+echo "Done."
+fi
+if [ -d /home/$USER/scripts/ledstatus/ ];then sudo python /home/pi/scripts/ledstatus/led_off.py; fi
+if [ -f /var/swap ]
+then
+echo -e "\n\e[93mStopping Swap :\e[0m"
+sudo dphys-swapfile swapoff /var/swap
+sudo rm /var/swap
+swap_was="1"
+echo "Done."
+fi
+}
+
+function check_software_ {
+echo -e "\n\e[95mChecking Softwares :\e[0m"
+echo -e -n "Check PIXZ  installed  : "
+if ! [ -x "$(command -v pixz)" ]; then pixz_i="pixz" && echo -e "[\e[91m NO \e[0m]"; else pixz_i="" && echo -e "[\e[92m OK \e[0m]"; fi
+echo -e -n "Check PIGZ  installed  : "
+if ! [ -x "$(command -v pigz)" ]; then pigz_i="pigz" && echo -e "[\e[91m NO \e[0m]"; else pigz_i="" && echo -e "[\e[92m OK \e[0m]"; fi
+echo -e -n "Check LFTP  installed  : "
+if ! [ -x "$(command -v lftp)" ]; then ftp_i="lftp" && echo -e "[\e[91m NO \e[0m]"; else ftp_i="" && echo -e "[\e[92m OK \e[0m]"; fi
+echo -e -n "Check PV    installed  : "
+if ! [ -x "$(command -v pv)" ]; then pv_i="pv" && echo -e "[\e[91m NO \e[0m]"; else pv_i="" && echo -e "[\e[92m OK \e[0m]"; fi
+if [[ ! $ftp_i = "" || ! $pixz_i = "" || ! $pv_i = "" || ! $pigz_i = "" ]]
+then
+echo -e "\n\e[95mSoftwares update & install :\e[0m"
+sudo apt-get update
+sudo apt install $pixz_i $ftp_i $pv_i $lrzip_i $pigz_i -y
+sleep 1
+check_software_
+fi
+echo -e "Done."
+}
+
+function freeze_on {
+NEW_FAN=5.0
+if [ -f /home/$USER/scripts/run-fan.py ]
+then
+echo -e "\n\e[95mEnable \e[38;5;196mF\e[38;5;202mr\e[38;5;208me\e[38;5;214me\e[38;5;220mz\e[38;5;226mi\e[38;5;227mn\e[38;5;229mg\e[0m \e[95m:\e[0m"
+sudo systemctl stop run-fan.service
+if ! [ -f /home/$USER/freeze.txt ]
+then
+if  grep "# Author: Andreas Spiess" /home/$USER/scripts/run-fan.py >/dev/null
+then
+grep -i "desiredTemp = " /home/$USER/scripts/run-fan.py |awk 'NR==1 {print$3;exit}' >/home/$USER/freeze.txt
+else
+grep -i "self.startTemperature = " /home/$USER/scripts/run-fan.py |awk 'NR==1 {print$3;exit}' >/home/$USER/freeze.txt
+fi
+fi
+OLD_FAN=`cat /home/$USER/freeze.txt| awk '{print $1}'`
+echo "Fan PWM value : $OLD_FAN => $NEW_FAN"
+if  grep "# Author: Andreas Spiess" ~/scripts/run-fan.py >/dev/null
+then
+sed -i -e "s/desiredTemp = "$OLD_FAN"/desiredTemp = "$NEW_FAN"/g" /home/$USER/scripts/run-fan.py
+else
+sed -i -e "s/self.startTemperature = "$OLD_FAN"/self.startTemperature = "$NEW_FAN"/g" /home/$USER/scripts/run-fan.py
+fi
+sudo systemctl restart run-fan.service
+echo -e "Done."
+sleep 1
+fi
+}
+
+function freeze_off {
+echo -e -n ""
+if [ -f /home/$USER/scripts/run-fan.py ]
+then
+echo -e "\n\e[95mDisable Freezing :\e[0m"
+OLD_FAN=`cat /home/$USER/freeze.txt| awk '{print $1}'`
+if  grep "# Author: Andreas Spiess" ~/scripts/run-fan.py >/dev/null
+then
+echo "Fan PWM value : $NEW_FAN => $OLD_FAN"
+else
+echo "Fan value: $NEW_FAN =>$OLD_FAN"
+fi
+sudo systemctl stop run-fan.service
+if  grep "# Author: Andreas Spiess" ~/scripts/run-fan.py >/dev/null
+then
+sed -i -e "s/desiredTemp = "$NEW_FAN"/desiredTemp = "$OLD_FAN"/g" /home/$USER/scripts/run-fan.py
+else
+sed -i -e "s/self.startTemperature = "$NEW_FAN"/self.startTemperature = "$OLD_FAN"/g" /home/$USER/scripts/run-fan.py
+fi
+sudo systemctl restart run-fan.service
+if [ -f /home/$USER/freeze.txt ];then rm /home/$USER/freeze.txt;fi
+echo -e "Done."
+fi
+}
+
+function packit {
+echo -e "\n\e[95mPacking & Compressing Files :\e[0m"
+cd /home/$USER
+SIZE1=`du -sk /home/$USER/.okcash/blk0001.dat | cut -f 1`
+SIZE2=`du -sk /home/$USER/.okcash/txleveldb/ | cut -f 1`
+SIZE=$(($SIZE2+$SIZE1+1))
+echo -e "\e[97mTar & PiXz :\e[0m"
+tar cf - .okcash/txleveldb/* .okcash/blk0001.dat | pv -s ${SIZE}k | pixz  > bootstrap.tar.xz
+sleep 1
+
+echo -e "\n\e[95mSplitting Files (${split_size}M):\e[0m"
+split --verbose -b ${split_size}M bootstrap.tar.xz "bootstrap.part"
+rm bootstrap.tar.xz
+sleep 1
+echo "Done."
+
+echo -e "\n\e[95mRename Files:\e[0m"
+if [ -f bootstrap.partaa ]; then mv bootstrap.partaa bootstrap.part01 && echo "bootstrap.partaa >> bootstrap.part01" ;fi
+if [ -f bootstrap.partab ]; then mv bootstrap.partab bootstrap.part02 && echo "bootstrap.partab >> bootstrap.part02" ;fi
+if [ -f bootstrap.partac ]; then mv bootstrap.partac bootstrap.part03 && echo "bootstrap.partac >> bootstrap.part03" ;fi
+if [ -f bootstrap.partad ]; then mv bootstrap.partad bootstrap.part04 && echo "bootstrap.partad >> bootstrap.part04" ;fi
+if [ -f bootstrap.partae ]; then mv bootstrap.partae bootstrap.part05 && echo "bootstrap.partae >> bootstrap.part05" ;fi
+if [ -f bootstrap.partaf ]; then mv bootstrap.partaf bootstrap.part06 && echo "bootstrap.partaf >> bootstrap.part06" ;fi
+if [ -f bootstrap.partag ]; then mv bootstrap.partag bootstrap.part07 && echo "bootstrap.partag >> bootstrap.part07" ;fi
+if [ -f bootstrap.partah ]; then mv bootstrap.partah bootstrap.part08 && echo "bootstrap.partah >> bootstrap.part08" ;fi
+if [ -f bootstrap.partai ]; then mv bootstrap.partai bootstrap.part09 && echo "bootstrap.partai >> bootstrap.part09" ;fi
+if [ -f bootstrap.partaj ]; then mv bootstrap.partaj bootstrap.part10 && echo "bootstrap.partaj >> bootstrap.part10" ;fi
+if [ -f bootstrap.partak ]; then mv bootstrap.partak bootstrap.part11 && echo "bootstrap.partak >> bootstrap.part11" ;fi
+if [ -f bootstrap.partal ]; then mv bootstrap.partal bootstrap.part12 && echo "bootstrap.partal >> bootstrap.part12" ;fi
+if [ -f bootstrap.partam ]; then mv bootstrap.partam bootstrap.part13 && echo "bootstrap.partam >> bootstrap.part13" ;fi
+if [ -f bootstrap.partan ]; then mv bootstrap.partan bootstrap.part14 && echo "bootstrap.partan >> bootstrap.part14" ;fi
+if [ -f bootstrap.partao ]; then mv bootstrap.partao bootstrap.part15 && echo "bootstrap.partao >> bootstrap.part15" ;fi
+if [ -f bootstrap.partap ]; then mv bootstrap.partap bootstrap.part16 && echo "bootstrap.partap >> bootstrap.part16" ;fi
+if [ -f bootstrap.partaq ]; then mv bootstrap.partaq bootstrap.part17 && echo "bootstrap.partaq >> bootstrap.part17" ;fi
+if [ -f bootstrap.partar ]; then mv bootstrap.partar bootstrap.part18 && echo "bootstrap.partar >> bootstrap.part18" ;fi
+if [ -f bootstrap.partas ]; then mv bootstrap.partas bootstrap.part19 && echo "bootstrap.partas >> bootstrap.part19" ;fi
+if [ -f bootstrap.partat ]; then mv bootstrap.partat bootstrap.part20 && echo "bootstrap.partat >> bootstrap.part20" ;fi
+if [ -f bootstrap.partau ]; then mv bootstrap.partau bootstrap.part21 && echo "bootstrap.partau >> bootstrap.part21" ;fi
+if [ -f bootstrap.partav ]; then mv bootstrap.partav bootstrap.part22 && echo "bootstrap.partav >> bootstrap.part22" ;fi
+if [ -f bootstrap.partaw ]; then mv bootstrap.partaw bootstrap.part23 && echo "bootstrap.partaw >> bootstrap.part23" ;fi
+if [ -f bootstrap.partax ]; then mv bootstrap.partax bootstrap.part24 && echo "bootstrap.partax >> bootstrap.part24" ;fi
+if [ -f bootstrap.partay ]; then mv bootstrap.partay bootstrap.part25 && echo "bootstrap.partay >> bootstrap.part25" ;fi
+if [ -f bootstrap.partaz ]; then mv bootstrap.partay bootstrap.part26 && echo "bootstrap.partaz >> bootstrap.part26" ;fi
+echo "Done."
+
+echo -e "\n\e[95mMake bootstrap_v.txt:\e[0m"
+Raw_date="`date +%d%m%Y`"
+YYYY=`ls -l bootstrap*.part* | wc -l`
+cat <<'EOF'>> bootstrap_v.txt
+Bootstrap : XXXX
+Parts: YYYY
+Compressed by :  tar / xz
+EOF
+sed -i -e "s/XXXX/$Raw_date/g" bootstrap_v.txt
+sed -i -e "s/YYYY/$YYYY/g" bootstrap_v.txt
+echo "Done."
+
+echo -e "\n\e[95mMd5sum Files:\e[0m"
+if [ -f bootstrap.part01 ]; then echo -e -n "md5sum Bootstrap.part01: " && md5sum bootstrap.part01 > bootstrap01.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part02 ]; then echo -e -n "md5sum Bootstrap.part02: " && md5sum bootstrap.part02 > bootstrap02.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part03 ]; then echo -e -n "md5sum Bootstrap.part03: " && md5sum bootstrap.part03 > bootstrap03.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part04 ]; then echo -e -n "md5sum Bootstrap.part04: " && md5sum bootstrap.part04 > bootstrap04.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part05 ]; then echo -e -n "md5sum Bootstrap.part05: " && md5sum bootstrap.part05 > bootstrap05.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part06 ]; then echo -e -n "md5sum Bootstrap.part06: " && md5sum bootstrap.part06 > bootstrap06.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part07 ]; then echo -e -n "md5sum Bootstrap.part07: " && md5sum bootstrap.part07 > bootstrap07.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part08 ]; then echo -e -n "md5sum Bootstrap.part08: " && md5sum bootstrap.part08 > bootstrap08.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part09 ]; then echo -e -n "md5sum Bootstrap.part09: " && md5sum bootstrap.part09 > bootstrap09.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part10 ]; then echo -e -n "md5sum Bootstrap.part10: " && md5sum bootstrap.part10 > bootstrap10.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part11 ]; then echo -e -n "md5sum Bootstrap.part11: " && md5sum bootstrap.part11 > bootstrap11.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part12 ]; then echo -e -n "md5sum Bootstrap.part12: " && md5sum bootstrap.part12 > bootstrap12.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part13 ]; then echo -e -n "md5sum Bootstrap.part13: " && md5sum bootstrap.part13 > bootstrap13.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part14 ]; then echo -e -n "md5sum Bootstrap.part14: " && md5sum bootstrap.part14 > bootstrap14.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part15 ]; then echo -e -n "md5sum Bootstrap.part15: " && md5sum bootstrap.part15 > bootstrap15.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part16 ]; then echo -e -n "md5sum Bootstrap.part16: " && md5sum bootstrap.part16 > bootstrap16.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part17 ]; then echo -e -n "md5sum Bootstrap.part17: " && md5sum bootstrap.part17 > bootstrap17.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part18 ]; then echo -e -n "md5sum Bootstrap.part18: " && md5sum bootstrap.part18 > bootstrap18.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part19 ]; then echo -e -n "md5sum Bootstrap.part19: " && md5sum bootstrap.part19 > bootstrap19.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part20 ]; then echo -e -n "md5sum Bootstrap.part20: " && md5sum bootstrap.part20 > bootstrap20.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part21 ]; then echo -e -n "md5sum Bootstrap.part21: " && md5sum bootstrap.part21 > bootstrap21.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part22 ]; then echo -e -n "md5sum Bootstrap.part22: " && md5sum bootstrap.part22 > bootstrap22.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part23 ]; then echo -e -n "md5sum Bootstrap.part23: " && md5sum bootstrap.part23 > bootstrap23.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part24 ]; then echo -e -n "md5sum Bootstrap.part24: " && md5sum bootstrap.part24 > bootstrap24.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part25 ]; then echo -e -n "md5sum Bootstrap.part25: " && md5sum bootstrap.part25 > bootstrap25.md5 && echo -e "\e[1mDone.\e[0m"; fi
+if [ -f bootstrap.part26 ]; then echo -e -n "md5sum Bootstrap.part26: " && md5sum bootstrap.part26 > bootstrap26.md5 && echo -e "\e[1mDone.\e[0m"; fi
+touch /home/$USER/bootstrap_uploadpass
+}
+
+function ftp_check {
+FTP_SUCCESS_MSG="226 Transfer complete"
+if fgrep "$FTP_SUCCESS_MSG" $Ftp_LOG ;then
+   echo "ftp transfer : OK"
+   echo ""
+   rm $Ftp_LOG
+else
+   echo "ftp transfer Error: $ftp_file"
+   rm $Ftp_LOG
+   echo ""
+   ftp_loop
+fi
+}
+
+function ftp_loop {
+lftp -u wareck,zorn692611 ftpperso.free.fr <<EOF
+put $ftp_file -o /crypto/okcash/bootstrap/$ftp_file
+EOF
+echo -n $ftp_file && echo -e ": \e[1mDone.\e[0m";
+}
+
+function upload {
+cd /home/$USER
+echo -e "\n\e[95mUpload files to server :\e[0m"
+
+if [ -f bootstrap_v.txt ];then ftp_file=bootstrap_v.txt && ftp_loop ;fi
+if [ -f bootstrap.part01 ];then ftp_file=bootstrap.part01 && ftp_loop ;fi
+if [ -f bootstrap.part02 ];then ftp_file=bootstrap.part02 && ftp_loop ;fi
+if [ -f bootstrap.part03 ];then ftp_file=bootstrap.part03 && ftp_loop ;fi
+if [ -f bootstrap.part04 ];then ftp_file=bootstrap.part04 && ftp_loop ;fi
+if [ -f bootstrap.part05 ];then ftp_file=bootstrap.part05 && ftp_loop ;fi
+if [ -f bootstrap.part06 ];then ftp_file=bootstrap.part06 && ftp_loop ;fi
+if [ -f bootstrap.part07 ];then ftp_file=bootstrap.part07 && ftp_loop ;fi
+if [ -f bootstrap.part08 ];then ftp_file=bootstrap.part08 && ftp_loop ;fi
+if [ -f bootstrap.part09 ];then ftp_file=bootstrap.part09 && ftp_loop ;fi
+if [ -f bootstrap.part10 ];then ftp_file=bootstrap.part10 && ftp_loop ;fi
+if [ -f bootstrap.part11 ];then ftp_file=bootstrap.part11 && ftp_loop ;fi
+if [ -f bootstrap.part12 ];then ftp_file=bootstrap.part12 && ftp_loop ;fi
+if [ -f bootstrap.part13 ];then ftp_file=bootstrap.part13 && ftp_loop ;fi
+if [ -f bootstrap.part14 ];then ftp_file=bootstrap.part14 && ftp_loop ;fi
+if [ -f bootstrap.part15 ];then ftp_file=bootstrap.part15 && ftp_loop ;fi
+if [ -f bootstrap.part16 ];then ftp_file=bootstrap.part16 && ftp_loop ;fi
+if [ -f bootstrap.part17 ];then ftp_file=bootstrap.part17 && ftp_loop ;fi
+if [ -f bootstrap.part18 ];then ftp_file=bootstrap.part18 && ftp_loop ;fi
+if [ -f bootstrap.part19 ];then ftp_file=bootstrap.part19 && ftp_loop ;fi
+if [ -f bootstrap.part20 ];then ftp_file=bootstrap.part20 && ftp_loop ;fi
+if [ -f bootstrap.part21 ];then ftp_file=bootstrap.part21 && ftp_loop ;fi
+if [ -f bootstrap.part22 ];then ftp_file=bootstrap.part22 && ftp_loop ;fi
+if [ -f bootstrap.part23 ];then ftp_file=bootstrap.part23 && ftp_loop ;fi
+if [ -f bootstrap.part24 ];then ftp_file=bootstrap.part24 && ftp_loop ;fi
+if [ -f bootstrap.part25 ];then ftp_file=bootstrap.part25 && ftp_loop ;fi
+if [ -f bootstrap.part26 ];then ftp_file=bootstrap.part26 && ftp_loop ;fi
+if [ -f bootstrap01.md5 ];then ftp_file=bootstrap01.md5 && ftp_loop ;fi
+if [ -f bootstrap02.md5 ];then ftp_file=bootstrap02.md5 && ftp_loop ;fi
+if [ -f bootstrap03.md5 ];then ftp_file=bootstrap03.md5 && ftp_loop ;fi
+if [ -f bootstrap04.md5 ];then ftp_file=bootstrap04.md5 && ftp_loop ;fi
+if [ -f bootstrap05.md5 ];then ftp_file=bootstrap05.md5 && ftp_loop ;fi
+if [ -f bootstrap06.md5 ];then ftp_file=bootstrap06.md5 && ftp_loop ;fi
+if [ -f bootstrap07.md5 ];then ftp_file=bootstrap07.md5 && ftp_loop ;fi
+if [ -f bootstrap08.md5 ];then ftp_file=bootstrap08.md5 && ftp_loop ;fi
+if [ -f bootstrap09.md5 ];then ftp_file=bootstrap09.md5 && ftp_loop ;fi
+if [ -f bootstrap10.md5 ];then ftp_file=bootstrap10.md5 && ftp_loop ;fi
+if [ -f bootstrap11.md5 ];then ftp_file=bootstrap11.md5 && ftp_loop ;fi
+if [ -f bootstrap12.md5 ];then ftp_file=bootstrap12.md5 && ftp_loop ;fi
+if [ -f bootstrap13.md5 ];then ftp_file=bootstrap13.md5 && ftp_loop ;fi
+if [ -f bootstrap14.md5 ];then ftp_file=bootstrap14.md5 && ftp_loop ;fi
+if [ -f bootstrap15.md5 ];then ftp_file=bootstrap15.md5 && ftp_loop ;fi
+if [ -f bootstrap16.md5 ];then ftp_file=bootstrap16.md5 && ftp_loop ;fi
+if [ -f bootstrap17.md5 ];then ftp_file=bootstrap17.md5 && ftp_loop ;fi
+if [ -f bootstrap18.md5 ];then ftp_file=bootstrap18.md5 && ftp_loop ;fi
+if [ -f bootstrap19.md5 ];then ftp_file=bootstrap19.md5 && ftp_loop ;fi
+if [ -f bootstrap20.md5 ];then ftp_file=bootstrap20.md5 && ftp_loop ;fi
+if [ -f bootstrap21.md5 ];then ftp_file=bootstrap21.md5 && ftp_loop ;fi
+if [ -f bootstrap22.md5 ];then ftp_file=bootstrap22.md5 && ftp_loop ;fi
+if [ -f bootstrap23.md5 ];then ftp_file=bootstrap23.md5 && ftp_loop ;fi
+if [ -f bootstrap24.md5 ];then ftp_file=bootstrap24.md5 && ftp_loop ;fi
+if [ -f bootstrap25.md5 ];then ftp_file=bootstrap25.md5 && ftp_loop ;fi
+if [ -f bootstrap26.md5 ];then ftp_file=bootstrap26.md5 && ftp_loop ;fi
+
+freeze_off
+echo -e "\n\e[92mUpload Done ...\n\e[0m"
+}
+
+function end_restart {
+if [ -f /usr/local/bin/okcashd_old ]
+then
+sudo mv /usr/local/bin/okcashd_old /usr/local/bin/okcashd | true
+okcashd
+fi
+}
+
+function retry {
+if [ -f /home/$USER/bootstrap_uploadpass ]; then retry_flag=1 ;fi
+if [ $retry_flag = "1" ]
+then
+echo -e "\n\e[95mRetry Upload to server :\e[0m"
+echo -e "Old files are still present."
+echo -e "If you want to force restart build/upload"
+echo -e "remove files by using this command:"
+echo -e ""
+echo -e "rm -r -f /home/$USER/bootstrap.part* /home/$USER/bootstrap_v.txt /home/$USER/bootstrap*.md5 /home/$USER/bootstrap_uploadpass"
+sleep 5
+fi
+}
+
+if  ps -ef | grep -v grep | grep okcashd >/dev/null
+then
+echo -e "\n\e[38;5;166mOKcash daemon is working => shutdown and restart during this process !...\e[0m"
+while true; do
+read -p "Do you want to start processing (y/n) ? " yn
+    case $yn in
+        [Yy]* ) init ; check_software_; freeze_on ; retry ; packit ; upload ; end_restart ; break;;
+        [Nn]* ) exit;;
+        * ) echo "Please answer yes or no.";;
+    esac
+done
+else
+init
+check_software_
+freeze_on
+retry
+if [ $retry_flag = "1" ]
+then
+upload
+end_restart
+else
+packit
+upload
+end_restart
+fi
+fi
+
+if [ swap_was = 1 ]
+then
+echo -e "\n\e[95mRestart Swap:\e[0m"
+sudo dphys-swapfile setup
+sudo dphys-swapfile swapon
+echo "Done."
+fi
+if [ -f /home/$USER/bootstrap_uploadpass ]; then rm /home/$USER/bootstrap_uploadpass;fi
+if [ $daemon_on = 1 ]
+then
+echo -e "\n\e[38;5;166mOKcash daemon is restarting ...\e[0m"
+if [ -f /usr/local/bin/okcashd_old ]
+then
+sudo mv /usr/local/bin/okcashd_old /usr/local/bin/okcashd | true
+fi
+fi
+echo ""
+