You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
534 lines
14 KiB
534 lines
14 KiB
#!/bin/bash
|
|
pwdvalue=$(pwd)
|
|
homeuser=$(echo '/'$(cat ~/SuperNET/iguana/userhome.txt)'/')
|
|
komodo_binary=$(echo $homeuser"komodo/src/komodod")
|
|
komodo_cli=$(echo $homeuser"komodo/src/komodo-cli")
|
|
komodo_binary_dir=$(echo $homeuser"komodo/src")
|
|
komodo_binary_name='komodod'
|
|
seed_ip=`getent hosts zero.kolo.supernet.org | awk '{ print $1 }'`
|
|
delay=20
|
|
notalllaunched='0'
|
|
source $homeuser/SuperNET/iguana/pubkey.txt
|
|
re='^[0-9]+$'
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
NC='\033[0m'
|
|
btcaddress="1BCJ3Rs6U9eqwsYJ5AjVZYEP3XxQLRt9kH"
|
|
kmdaddress="RKUV7wkP4yTR1suVYLicf4ZaooQzz8u5iR"
|
|
#Take a coin/ac/soft in param, ant initialize values to get other functions to work.
|
|
inputparams() {
|
|
case $1 in
|
|
"iguana")
|
|
processname="iguana notary"
|
|
;;
|
|
"iguanascreen")
|
|
processname="SCREEN -d -m -S iguana"
|
|
;;
|
|
"chp"|"CHIPS")
|
|
processname="chipsd"
|
|
processcli="chips-cli"
|
|
processmincount=1
|
|
processargs=""
|
|
processpath="."
|
|
processlaunch="$processname"
|
|
processaddress="$kmdaddress"
|
|
notarysize='0.0001'
|
|
debugpath="$homeuser.chips/debug.log"
|
|
;;
|
|
"btc")
|
|
processname="bitcoind"
|
|
processcli="bitcoin-cli"
|
|
processmincount=1
|
|
processargs=""
|
|
processpath="."
|
|
processlaunch="$processname"
|
|
processaddress="$btcaddress"
|
|
notarysize='0.0001'
|
|
debugpath="$homeuser.bitcoin/debug.log"
|
|
;;
|
|
"kmd")
|
|
processname="$komodo_binary_name -gen -genproclimit=2 -notary"
|
|
processcli="$komodo_cli"
|
|
processmincount=1
|
|
processargs="-pubkey=\"$pubkey\""
|
|
processpath="$komodo_binary_dir"
|
|
processlaunch="./$processname $processargs"
|
|
processaddress="$kmdaddress"
|
|
notarysize='0.0001'
|
|
debugpath="$homeuser.komodo/debug.log"
|
|
;;
|
|
*)
|
|
aclist=$(echo $launchlistallcommented | grep $1 | wc -l)
|
|
if [ $aclist -eq 1 ]
|
|
then
|
|
supplyac=$(cat $homeuser/komodo/src/assetchains | grep $1 | cut -d ' ' -f3)
|
|
processname="$komodo_binary_name -ac_name=$1"
|
|
processcli="$komodo_cli -ac_name=$1"
|
|
processmincount=1
|
|
processargs="-pubkey=\"$pubkey\" -ac_supply=$supplyac -addnode=$seed_ip"
|
|
processpath="$komodo_binary_dir"
|
|
processlaunch="./$processname $processargs"
|
|
processaddress="$kmdaddress"
|
|
notarysize='0.0001'
|
|
debugpath="$homeuser.komodo/$1/debug.log"
|
|
else
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$RED\tinputparams\t$1\tunknown param$NC" | tee -a logcheckagents
|
|
exit
|
|
fi
|
|
;;
|
|
esac
|
|
}
|
|
|
|
launchlisting () {
|
|
launchlistac="init"
|
|
launchlistall=$(echo -e "btc\nchp\nkmd")
|
|
launchlistallcommented=$launchlistall
|
|
while read line; do
|
|
if [ ! $line == 'komodo_asset' ]
|
|
then
|
|
launchlistall+=$(echo -e "\n$line")
|
|
if [ "$launchlistac" == "init" ]
|
|
then
|
|
launchlistac=$(echo "$line")
|
|
else
|
|
launchlistac+=$(echo -e "\n$line")
|
|
fi
|
|
fi
|
|
done <<< "$(cat /home/dwy/komodo/src/assetchains | grep komodo_asset | grep -v '#' | cut -d ' ' -f2)"
|
|
launchlistallcoins=$launchlistall
|
|
launchlistall+=$(echo -e "\niguana")
|
|
#SPECIAL : INCLUDING ALL ASSETCHAINS THAT WILL BE PROCESSED BY IGUANA
|
|
while read line; do
|
|
if [ ! $line == 'komodo_asset' ]
|
|
then
|
|
launchlistallcommented+=$(echo -e "\n$line")
|
|
fi
|
|
done <<< "$(cat /home/dwy/komodo/src/assetchains | grep komodo_asset | cut -d ' ' -f2)"
|
|
launchlistdpow="init"
|
|
while read line2; do
|
|
if [ "$launchlistdpow" == "init" ]
|
|
then
|
|
launchlistdpow=$(echo "$line2")
|
|
else
|
|
launchlistdpow+=$(echo -e "\n$line2")
|
|
fi
|
|
done <<< "$(cat /home/dwy/komodo/src/dpowassets | grep curl | grep -v \# | sed 's/symbol\\"\:\\\"/\n/g' | grep -v curl | cut -d '\' -f1)"
|
|
}
|
|
|
|
|
|
|
|
startprocess() {
|
|
if [ "$1" == "iguana" ]
|
|
then
|
|
echo "$(date '+%Y-%m-%d %H:%M:%S') startprocess - iguana" | tee -a logcheckagents
|
|
screen -d -m -S iguana
|
|
screen -S iguana -X stuff 'cd'`echo -ne '\015'`'cd ~/SuperNET/iguana'`echo -ne '\015'`'git checkout beta && git pull && ./m_notary && cd ~/komodo/src && ./dpowassets'`echo -ne '\015'`
|
|
else
|
|
inputparams $1
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tstartprocess\t$1$NC" | tee -a logcheckagents
|
|
cd $processpath
|
|
$processlaunch &
|
|
fi
|
|
}
|
|
|
|
checksync() {
|
|
inputparams $1
|
|
if isrunning $1
|
|
then
|
|
checkinprogress='1'
|
|
while [ 1 ];do
|
|
processblockstatus=$($processcli getblockchaininfo 2>/dev/null | jq -r .blocks)
|
|
processblockheaders=$($processcli getblockchaininfo 2>/dev/null | jq -r .headers)
|
|
if [[ $processblockstatus =~ $re ]]
|
|
then
|
|
if ! [ $processblockstatus == "0" ]
|
|
then
|
|
if [ ! $processblockheaders == $processblockstatus ]
|
|
then
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$RED\tchecksync\t$1\tsync NOK$NC" | tee -a logcheckagents
|
|
else
|
|
break
|
|
fi
|
|
else
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tchecksync\t$1\tgetting best chain$NC" | tee -a logcheckagents
|
|
fi
|
|
else
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tchecksync\t$1\tstart in progress$NC" | tee -a logcheckagents
|
|
fi
|
|
sleep 5
|
|
done
|
|
checkinprogress='0'
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$GREEN\tchecksync\t$1\tsync OK$NC" | tee -a logcheckagents
|
|
else
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$RED\tchecksync\t$1\tnot running$NC" | tee -a logcheckagents
|
|
fi
|
|
}
|
|
|
|
stopprocess() {
|
|
inputparams $1
|
|
PIDtokill=$(eval "pgrep -f '$processname'")
|
|
if [ ! $PIDtokill = "" ]
|
|
then
|
|
kill -15 $PIDtokill
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tstopprocess\t$1\tterminating : $PIDtokill$NC" | tee -a logcheckagents
|
|
sleep 2
|
|
fi
|
|
}
|
|
|
|
stopiguana() {
|
|
stopprocess iguana
|
|
stopprocess iguanascreen
|
|
screen -wipe
|
|
}
|
|
|
|
countac () {
|
|
while read line; do
|
|
if [ ! $line == 'komodo_asset' ]
|
|
then
|
|
if [ ! "$(pgrep -f $(echo "ac_name=${line}") | wc -l)" == '1' ]
|
|
then
|
|
notalllaunched='1'
|
|
fi
|
|
fi
|
|
done <<< "$launchlistac"
|
|
}
|
|
|
|
startac () {
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tstartac\tinit$NC" | tee -a logcheckagents
|
|
while read line; do
|
|
if [ ! $line == 'komodo_asset' ]
|
|
then
|
|
if ! isrunning $line
|
|
then
|
|
startprocess $line
|
|
sleep 20
|
|
fi
|
|
fi
|
|
done <<< "$launchlistac"
|
|
}
|
|
|
|
isrunning() {
|
|
inputparams $1
|
|
if [ $(eval "pgrep -f '$processname'" | wc -l) == "1" ]
|
|
then
|
|
if [ -z "$2" ]
|
|
then
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$GREEN\tisrunning\t$1\tis running$NC" | tee -a logcheckagents
|
|
fi
|
|
true
|
|
else
|
|
if [ -z "$2" ]
|
|
then
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$RED\tisrunning\t$1\tis not running$NC" | tee -a logcheckagents
|
|
fi
|
|
false
|
|
fi
|
|
}
|
|
|
|
globalrelaunch () {
|
|
echo "$launchlistall"
|
|
while read line; do
|
|
if [ ! "$line" == "iguana" ]
|
|
then
|
|
if ! isrunning $line
|
|
then
|
|
startprocess $line
|
|
sleep $delay
|
|
fi
|
|
else
|
|
while read line2; do
|
|
checksync $line2
|
|
while [ 1 ];do
|
|
if [ "$checkinprogress" == "1" ]
|
|
then
|
|
echo -e "$(date '+%Y-%m-%d %H:%M:%S')$NC\tglobalrelaunch\t$line2\twaiting sync to be finished"
|
|
sleep $delay
|
|
else
|
|
echo -e "$(date '+%Y-%m-%d %H:%M:%S')$NC\tglobalrelaunch\t$line2\tsync OK going to next"
|
|
break
|
|
fi
|
|
done
|
|
done <<< "$launchlistallcoins"
|
|
if ! isrunning $line
|
|
then
|
|
startprocess $line
|
|
fi
|
|
fi
|
|
done <<< "$launchlistall"
|
|
validateaddress
|
|
}
|
|
|
|
globalstop () {
|
|
while read line; do
|
|
if [ ! "$line" == "iguana" ]
|
|
then
|
|
if isrunning $line nolog
|
|
then
|
|
stopprocess $line
|
|
sleep 1
|
|
fi
|
|
else
|
|
if isrunning $line nolog
|
|
then
|
|
stopiguana
|
|
fi
|
|
fi
|
|
done <<< "$launchlistall"
|
|
}
|
|
|
|
shouldrun () {
|
|
while read line; do
|
|
isrunning $line
|
|
done <<< "$launchlistall"
|
|
}
|
|
|
|
validateaddress() {
|
|
searchvalidate='init'
|
|
if [ -z "$1" ]
|
|
then
|
|
searchvalidate=$launchlistallcoins
|
|
else
|
|
if [ "$(echo $launchlistallcommented | grep $1 | wc -l)" -eq 1 ]
|
|
then
|
|
searchvalidate=$1
|
|
else
|
|
if [ "$1" == "ac" ]
|
|
then
|
|
searchvalidate=$launchlistac
|
|
else
|
|
if [ "$1" == "dpow" ]
|
|
then
|
|
searchvalidate=$(echo -e "$launchlistdpow")
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ ! "$searchvalidate" == "init" ]
|
|
then
|
|
while read line; do
|
|
if isrunning $line nolog
|
|
then
|
|
inputparams $line
|
|
cd $processpath
|
|
if $($processcli validateaddress $processaddress | jq -r .isvalid)
|
|
then
|
|
if $($processcli validateaddress $processaddress | jq -r .ismine) == "true"
|
|
then
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$GREEN\tvalidateaddress\t$line\tismine$NC" | tee -a logcheckagents
|
|
else
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$RED\tvalidateaddress\t$line\tisnotmine$NC" | tee -a logcheckagents
|
|
fi
|
|
else
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$RED\tvalidateaddress\t$line\tinvalidaddress$NC" | tee -a logcheckagents
|
|
fi
|
|
else
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$RED\tvalidateaddress\t$line\tprocess not running$NC" | tee -a logcheckagents
|
|
fi
|
|
done <<< "$searchvalidate"
|
|
else
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$RED\tvalidateaddress\t$line\tis invalid coin name$NC" | tee -a logcheckagents
|
|
fi
|
|
|
|
}
|
|
|
|
utxoreporting() {
|
|
#galtmines inspired :)
|
|
while read line; do
|
|
if isrunning $line
|
|
then
|
|
inputparams $line
|
|
cd $processpath
|
|
exactutxo=$($processcli listunspent|grep amount|awk '{print $2}'|sed s/.$//|awk -v not="$notarysize" '$1 == not'|wc -l)
|
|
uselessutxo=$($processcli listunspent|grep amount|awk '{print $2}'|sed s/.$//|awk -v not="$notarysize" '$1 < not'|wc -l)
|
|
thisbalance=$($processcli getbalance)
|
|
utxocount=$($processcli listunspent|grep amount |wc -l)
|
|
if [ "$exactutxo" -ge "50" ]
|
|
then
|
|
TMPCOLOR=$GREEN
|
|
else
|
|
TMPCOLOR=$RED
|
|
fi
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$TMPCOLOR\tutxoreporting\t$line\twellsized : $exactutxo$NC" | tee -a logcheckagents
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$TMPCOLOR\tutxoreporting\t$line\tdust : $uselessutxo$NC" | tee -a logcheckagents
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tutxoreporting\t$line\tbalance : $thisbalance$NC" | tee -a logcheckagents
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tutxoreporting\t$line\tUTXO_Count : $utxocount$NC" | tee -a logcheckagents
|
|
fi
|
|
done <<< "$launchlistallcoins"
|
|
|
|
}
|
|
|
|
checknotarization () {
|
|
#I don't know who did this !
|
|
if isrunning btc nolog && isrunning kmd nolog
|
|
then
|
|
printf -- "-ASSET-%s\t-NTRZd-%s\t-UTXOs-%s\t-BAL-%s\n";
|
|
while read line; do
|
|
if isrunning $line nolog
|
|
then
|
|
inputparams $line
|
|
cd $processpath
|
|
if [ "$line" == "btc" ]
|
|
then
|
|
printf "$line%s\t-\t$($processcli listunspent | grep $notarysize | wc -l)%s\t"; $processcli getwalletinfo | grep balance -m 1
|
|
else
|
|
printf "$line%s\t$($processcli listtransactions "" 77777 | grep -- -0.00418000 | wc -l)%s\t$($processcli listunspent | grep .0005 | wc -l)%s\t"; $processcli getinfo | grep balance
|
|
fi
|
|
fi
|
|
done <<< "$launchlistallcoins"
|
|
fi
|
|
}
|
|
|
|
getdebug () {
|
|
if [ -z "$2" ]
|
|
then
|
|
tailsize='5'
|
|
else
|
|
tailsize=$2
|
|
fi
|
|
debuglist='init'
|
|
if [ -z "$1" ]
|
|
then
|
|
debuglist=$launchlistallcoins
|
|
else
|
|
if [[ $1 =~ $re ]]
|
|
then
|
|
debuglist=$launchlistallcoins
|
|
tailsize=$1
|
|
else
|
|
if [ "$(echo $launchlistallcommented | grep $1 | wc -l)" -eq 1 ]
|
|
then
|
|
debuglist=$1
|
|
else
|
|
if [ "$1" == "ac" ]
|
|
then
|
|
debuglist=$launchlistac
|
|
else
|
|
if [ "$1" == "dpow" ]
|
|
then
|
|
debuglist=$(echo -e "$launchlistdpow")
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
if [ ! "$debuglist" == "init" ]
|
|
then
|
|
while read line; do
|
|
inputparams $line
|
|
echo -e "$GREEN$debugpath$NC"
|
|
echo "$(tail -$tailsize $debugpath)"
|
|
done <<< "$debuglist"
|
|
else
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$RED\tgetdebug\t$line\tis invalid coin name$NC" | tee -a logcheckagents
|
|
fi
|
|
}
|
|
|
|
helpme () {
|
|
if [ -z "$1" ]
|
|
then
|
|
echo -e "\n\tCOMMAND LIST"
|
|
echo -e "\n\n\tcheck"
|
|
echo -e "\tutxo"
|
|
echo -e "\tvalidateaddress [' '|coinname|ac|dpow]"
|
|
echo -e "\tisrunning \"coinname|iguana\" [nolog]"
|
|
echo -e "\tstartac"
|
|
echo -e "\tcountac"
|
|
echo -e "\tstopiguana"
|
|
echo -e "\tstopprocess \"coinname\""
|
|
echo -e "\tchecksync \"coinname\""
|
|
echo -e "\tstartprocess \"coinname\""
|
|
echo -e "\tlistac"
|
|
echo -e "\tlistdpow"
|
|
echo -e "\tlistall"
|
|
echo -e "\tlistallcommented"
|
|
echo -e "\tgetdebug [' '|coinname|ac|dpow] [tailsize]"
|
|
echo -e "\tstopall"
|
|
echo -e "\tshouldrun\n"
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
launchlisting
|
|
|
|
case $1 in
|
|
"check")
|
|
globalrelaunch
|
|
;;
|
|
"stats")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1$NC"
|
|
checknotarization
|
|
;;
|
|
"utxo")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1$NC"
|
|
utxoreporting
|
|
;;
|
|
"validateaddress")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1\t$2$NC"
|
|
validateaddress $2
|
|
;;
|
|
"isrunning")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1\t$2$NC"
|
|
isrunning $2
|
|
;;
|
|
"startac")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1$NC"
|
|
startac
|
|
;;
|
|
"countac")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1$NC"
|
|
countac
|
|
echo "$notalllaunched"
|
|
;;
|
|
"stopiguana")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1$NC"
|
|
stopiguana
|
|
;;
|
|
"stopprocess")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1\t$2$NC"
|
|
stopprocess $2
|
|
;;
|
|
"checksync")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1\t$2$NC"
|
|
checksync $2
|
|
;;
|
|
"startprocess")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1\t$2$NC"
|
|
startprocess $2
|
|
;;
|
|
"listac")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1$NC"
|
|
echo "$launchlistac"
|
|
;;
|
|
"listdpow")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1$NC"
|
|
echo "$launchlistdpow"
|
|
;;
|
|
"listall")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1$NC"
|
|
echo "$launchlistall"
|
|
;;
|
|
"listallcommented")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1$NC"
|
|
echo "$launchlistallcommented"
|
|
;;
|
|
"getdebug")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1$NC"
|
|
getdebug $2 $3
|
|
;;
|
|
"stopall")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1$NC"
|
|
globalstop
|
|
;;
|
|
"shouldrun")
|
|
echo -e "$NC$(date '+%Y-%m-%d %H:%M:%S')$NC\tManual Call\t$1$NC"
|
|
shouldrun
|
|
;;
|
|
"help")
|
|
helpme
|
|
;;
|
|
*)
|
|
echo "Wtf are you doin here"
|
|
;;
|
|
esac
|
|
|