#!/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='\n'") NANODATE=$(date -u +%s%N) #1569692075385428020 # PROTECT from null HASH for tag in ./wallets/.$IPFSNODEID/TAG/*; do function rmtag () { echo "__SUB:cron_G1TAG_REFRESH.sh: rm -Rf ./wallets/.$IPFSNODEID/TAG/${tagj}" rm -Rf ./TAG/${tagj} rm -f ./wallets/.$IPFSNODEID/TAG/${tagj} rm -f ./wallets_swarm/.$IPFSNODEID/TAG/${tagj} rm -f /home/$YOU/.ipfs/keystore/${tagj} } # 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 if [[ ! -f /home/$YOU/.ipfs/keystore/${RR} ]]; then echo "__SUB:cron_G1TAG_REFRESH.sh: GET PUBLISHKEY for that G1TAG"; su $YOU -c "ipfs get -o /home/$YOU/.ipfs/keystore/${RR}.crypt /ipns/$tagj/TAG_publishkey.MASTER.crypt" if [[ ! -f /home/$YOU/.ipfs/keystore/${RR}.crypt ]]; then log "__SUB:cron_MINUTE.sh: error getting publishkey"; continue; fi ./shell/natools.py decrypt -k "$NODE_G1AUTHFILE" -i /home/$YOU/.ipfs/keystore/${RR}.crypt -o /home/$YOU/.ipfs/keystore/$RR rm /home/$YOU/.ipfs/keystore/${RR}.crypt fi echo "__SUB:cron_G1TAG_REFRESH.sh: G1Tag PUBLISHKEY OK : /home/$YOU/.ipfs/keystore/${RR}" 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 ##################################################################