2020-05-01 15:19:51 +02:00
|
|
|
#!/bin/bash
|
|
|
|
################################################################################
|
|
|
|
# Author: Fred (support@qo-op.com)
|
|
|
|
# Version: 0.1
|
|
|
|
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
|
|
|
###########################################################################################
|
|
|
|
# cron_G1TAG_REFRESH.sh
|
|
|
|
# Scan all TAG created by current $IPFSNODEID
|
|
|
|
# Update local and Publish it
|
|
|
|
# Remove too old or empty ones
|
|
|
|
##################################################################
|
|
|
|
YOU=$(ps aux --sort=+utime | grep ipfs | tail -n 1 | cut -d " " -f 1)
|
|
|
|
IPFSNODEID=$(su $YOU -c "ipfs id -f='<id>\n'")
|
|
|
|
NANODATE=$(date -u +%s%N) #1569692075385428020
|
|
|
|
|
|
|
|
# PROTECT from null HASH
|
2020-05-03 23:37:47 +02:00
|
|
|
for tag in ~/.zen/ipfs/.$IPFSNODEID/TAG/*; do
|
2020-05-01 15:19:51 +02:00
|
|
|
function rmtag () {
|
2020-05-03 23:37:47 +02:00
|
|
|
echo "__SUB:cron_G1TAG_REFRESH.sh: rm -Rf ~/.zen/ipfs/.$IPFSNODEID/TAG/${tagj}"
|
2020-05-01 15:19:51 +02:00
|
|
|
rm -Rf ./TAG/${tagj}
|
2020-05-03 23:37:47 +02:00
|
|
|
rm -f ~/.zen/ipfs/.$IPFSNODEID/TAG/${tagj}
|
|
|
|
rm -f ~/.zen/ipfs_swarm/.$IPFSNODEID/TAG/${tagj}
|
2020-05-05 04:41:17 +02:00
|
|
|
rm -f ~/.ipfs/keystore/${tagj}
|
2020-05-01 15:19:51 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
# Refresh G1Tag created by this NODE
|
|
|
|
tagj=$(echo $tag | cut -d '/' -f 5)
|
|
|
|
if [[ "${tagj}" == "" ]]; then echo "__SUB:cron_G1TAG_REFRESH.sh: EMPTY"; continue; fi
|
|
|
|
echo "__SUB:cron_G1TAG_REFRESH.sh: WORKING ON ${tagj}"
|
|
|
|
RR=$($YOU -c "ipfs cat /ipns/${tagj}/TAG_id | sed s/\ //g");
|
|
|
|
if [[ "$RR" == "" ]]; then
|
|
|
|
echo "__SUB:cron_G1TAG_REFRESH.sh: G1Tag Destroyed !!!??";
|
|
|
|
|
|
|
|
rmtag
|
|
|
|
continue;
|
|
|
|
fi
|
|
|
|
|
|
|
|
# RE-SYNC LOCAL & SWARM G1TAG - TODO Check for G1Tag chain corruption
|
|
|
|
mv ./TAG/${RR} ./TAG/${RR}.old
|
|
|
|
mkdir -p ./TAG/${RR}
|
|
|
|
chown -R $YOU ./TAG/${RR}
|
|
|
|
su $YOU -c "ipfs get --output=./TAG/${RR} /ipns/${tagj}"
|
|
|
|
oldtagval=$(cat ./TAG/${RR}.old/TAG_amount)
|
|
|
|
curtagval=$(cat ./TAG/${RR}/TAG_amount)
|
|
|
|
oldtagn=$(cat ./TAG/${RR}.old/TAG_n)
|
|
|
|
curtagn=$(cat ./TAG/${RR}/TAG_n)
|
|
|
|
oldtagchain=$(cat ./TAG/${RR}.old/TAG_chain)
|
|
|
|
curtagchain=$(cat ./TAG/${RR}/TAG_chain)
|
|
|
|
echo "__SUB:cron_G1TAG_REFRESH.sh: ./TAG/$RR VALUE: ($oldtagn) $oldtagval ZEN -> ($curtagn) $curtagval ZEN"
|
|
|
|
echo "__SUB:cron_G1TAG_REFRESH.sh: $oldtagchain -> $curtagchain"
|
|
|
|
|
|
|
|
rm -Rf ./TAG/${RR}.old
|
|
|
|
if [[ $curtagval -eq 0 || "$curtagval" == "" ]]; then rmtag; continue; fi
|
|
|
|
|
|
|
|
# SHOULD PUBLISH ONLY MORE THAN 6h NO USE G1TAG
|
|
|
|
last=$(cat ./TAG/${RR}/TAG_nanodate)
|
|
|
|
timediff=$( echo "${NANODATE} - ${last}" | bc -l )
|
|
|
|
# G1TAG TIME SYNC 21600 milliards de nanosecondes = 6h
|
|
|
|
if [[ $timediff -gt 21600000000000 ]]; then
|
|
|
|
|
|
|
|
# GET PUBLISHKEY for that G1TAG
|
2020-05-05 04:41:17 +02:00
|
|
|
if [[ ! -f ~/.ipfs/keystore/${RR} ]]; then
|
2020-05-01 15:19:51 +02:00
|
|
|
echo "__SUB:cron_G1TAG_REFRESH.sh: GET PUBLISHKEY for that G1TAG";
|
2020-05-05 04:41:17 +02:00
|
|
|
su $YOU -c "ipfs get -o ~/.ipfs/keystore/${RR}.crypt /ipns/$tagj/TAG_publishkey.MASTER.crypt"
|
|
|
|
if [[ ! -f ~/.ipfs/keystore/${RR}.crypt ]]; then log "__SUB:cron_MINUTE.sh: error getting publishkey"; continue; fi
|
|
|
|
./natools.py decrypt -k "$NODE_G1AUTHFILE" -i ~/.ipfs/keystore/${RR}.crypt -o ~/.ipfs/keystore/$RR
|
|
|
|
rm ~/.ipfs/keystore/${RR}.crypt
|
2020-05-01 15:19:51 +02:00
|
|
|
fi
|
2020-05-05 04:41:17 +02:00
|
|
|
echo "__SUB:cron_G1TAG_REFRESH.sh: G1Tag PUBLISHKEY OK : ~/.ipfs/keystore/${RR}"
|
2020-05-01 15:19:51 +02:00
|
|
|
echo ${NANODATE} > ./TAG/${RR}/TAG_nanodate
|
|
|
|
# PUBLISH VERIFIED G1Tag VERSION
|
|
|
|
I=$(su $YOU -c "ipfs add -qr ./TAG/${RR} | tail -n 1")
|
|
|
|
# RECORD TAG_chain And HASH again
|
|
|
|
echo "$I" > "./TAG/${JDESTRR}/TAG_chain"
|
|
|
|
I=$(su $YOU -c "ipfs add -qr ./TAG/${RR} | tail -n 1")
|
|
|
|
# IPNS $JDESTRR PUBLISH
|
|
|
|
J=$(su $YOU -c "ipfs name publish -k ${RR} --quieter /ipfs/${I}")
|
|
|
|
echo "__SUB:cron_G1TAG_REFRESH.sh: G1Tag IPNS PUBLISH"
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
done
|
|
|
|
##################################################################
|