Hardening GeoKeys ZEN memory system
This commit is contained in:
parent
4899de4e68
commit
692f37bd4c
|
@ -377,24 +377,27 @@ for PLAYER in ${PLAYERONE[@]}; do
|
||||||
days=$((DIFF_SECONDS / 60 / 60 / 24))
|
days=$((DIFF_SECONDS / 60 / 60 / 24))
|
||||||
echo "PLAYER TW was created $days days ago"
|
echo "PLAYER TW was created $days days ago"
|
||||||
|
|
||||||
##################################
|
########################################
|
||||||
#### PLAYER ACCOUNT CLEANING #########
|
#### PLAYER ACCOUNT IS ACTIVE ? #########
|
||||||
## IF ZEN < 11
|
if [[ $(cat ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json) == "[]" ]]; then
|
||||||
## && EMPTY RSS + 30 DAYS BIRTHDATE
|
echo "RSS IS EMPTY -- COINS=$COINS / ZEN=$ZEN --"
|
||||||
## only for less 90 days TW ? && ${DIFF_SECONDS} -lt $(( 90 * 24 * 60 * 60 )) ????
|
|
||||||
## ==> UNPLUG
|
if [[ $(echo "$COINS < 2.1" | bc -l) -eq 1 ]]; then
|
||||||
[[ $(cat ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json) == "[]" ]] \
|
if [[ ${DIFF_SECONDS} -eq $(( 27 * 24 * 60 * 60 )) ]]; then
|
||||||
&& echo "RSS IS EMPTY -- COINS=$COINS / ZEN=$ZEN --" \
|
echo "<html><body><h1>WARNING.</h1> Your TW will be UNPLUGGED and stop being published..." > ~/.zen/tmp/alert
|
||||||
&& [[ $(echo "$COINS < 2.1" | bc -l) -eq 1 ]] \
|
echo "<br><h3>TW : <a href=$(myIpfsGw)/ipfs/${CURCHAIN}> ${PLAYER}</a></h3> ADD MORE ZEN ($ZEN) </body></html>" >> ~/.zen/tmp/alert
|
||||||
&& [[ ${DIFF_SECONDS} -gt $(( 27 * 24 * 60 * 60 )) ]] \
|
|
||||||
&& echo "<html><body><h1>WARNING.</h1> Your TW will be UNPLUGGED and stop being published..." > ~/.zen/tmp/alert \
|
${MY_PATH}/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/alert "TW ALERT"
|
||||||
&& echo "<br><h3>TW : <a href=$(myIpfsGw)/ipfs/${CURCHAIN}> ${PLAYER}</a></h3>ZEN=$ZEN </body></html>" >> ~/.zen/tmp/alert \
|
echo "<<<< PLAYER TW WARNING <<<< ${DIFF_SECONDS} > ${days} days"
|
||||||
&& ${MY_PATH}/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/alert "TW ALERT" \
|
fi
|
||||||
&& echo "<<<< PLAYER TW WARNING <<<< ${DIFF_SECONDS} > ${days} days" \
|
if [[ ${DIFF_SECONDS} -gt $(( 29 * 24 * 60 * 60 )) ]]; then
|
||||||
&& [[ ${DIFF_SECONDS} -gt $(( 30 * 24 * 60 * 60 )) ]] \
|
echo ">>>> PLAYER TW UNPLUG >>>>> ${days} days => BYE BYE ${PLAYER} ZEN=$ZEN"
|
||||||
&& echo ">>>> PLAYER TW UNPLUG >>>>> ${days} days => BYE BYE ${PLAYER} ZEN=$ZEN" \
|
${MY_PATH}/PLAYER.unplug.sh ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ${PLAYER}
|
||||||
&& ${MY_PATH}/PLAYER.unplug.sh ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ${PLAYER} \
|
continue
|
||||||
&& continue
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
#################################### UNPLUG ACCOUNT
|
#################################### UNPLUG ACCOUNT
|
||||||
|
|
||||||
IRSS=$(ipfs add -q ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json | tail -n 1) \
|
IRSS=$(ipfs add -q ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json | tail -n 1) \
|
||||||
|
|
|
@ -99,13 +99,13 @@ for SECTOR in ${SECTORS[@]}; do
|
||||||
start=`date +%s`
|
start=`date +%s`
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
#~ ## IPFS GET ONLINE YESTERDATE SECTORNS
|
#~ ## IPFS GET ONLINE YESTERDATE SECTORNS
|
||||||
ipfs --timeout 240s get -o ~/.zen/tmp/${MOATS}/${SECTOR}/ /ipns/${YESTERDATENS}/
|
ipfs --timeout 300s get -o ~/.zen/tmp/${MOATS}/${SECTOR}/ /ipns/${YESTERDATENS}/
|
||||||
if [[ $? != 0 ]]; then
|
if [[ $? != 0 ]]; then
|
||||||
echo "(╥☁╥ ) swarm memory empty (╥☁╥ )"
|
echo "(╥☁╥ ) swarm memory empty (╥☁╥ )"
|
||||||
# Try retieve memory from UPlanet Zen Memory
|
# Try retieve memory from UPlanet Zen Memory
|
||||||
[[ ${ZEN} -gt 0 ]] \
|
[[ ${ZEN} -gt 0 ]] \
|
||||||
&& echo "INTERCOM Refreshing from ZEN MEMORY" \
|
&& echo "INTERCOM Refreshing from ZEN MEMORY" \
|
||||||
&& ${MY_PATH}/../RUNTIME/ZEN.SECTOR.memory.sh "${SECTOR}" "${MOATS}"
|
&& ${MY_PATH}/../RUNTIME/ZEN.SECTOR.memory.sh "${SECTOR}" "${MOATS}" "${G1PUB}"
|
||||||
fi
|
fi
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
end=`date +%s`
|
end=`date +%s`
|
||||||
|
|
|
@ -96,18 +96,21 @@ for UMAP in ${unique_combined[@]}; do
|
||||||
echo "YESTERDAY : ${myIPFS}/ipns/${YESTERDATENS}"
|
echo "YESTERDAY : ${myIPFS}/ipns/${YESTERDATENS}"
|
||||||
|
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
|
start=`date +%s`
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
echo "## IPFS GET YESTERDATENS"
|
echo "## IPFS GET YESTERDATENS"
|
||||||
mkdir ~/.zen/tmp/${MOATS}/${UMAP}
|
mkdir ~/.zen/tmp/${MOATS}/${UMAP}
|
||||||
ipfs --timeout 240s get -o ~/.zen/tmp/${MOATS}/${UMAP}/ /ipns/${YESTERDATENS}/
|
ipfs --timeout 300s get -o ~/.zen/tmp/${MOATS}/${UMAP}/ /ipns/${YESTERDATENS}/
|
||||||
if [[ $? != 0 ]]; then
|
if [[ $? != 0 ]]; then
|
||||||
echo "(╥☁╥ ) swarm memory empty (╥☁╥ )"
|
echo "(╥☁╥ ) swarm memory empty (╥☁╥ )"
|
||||||
# Try retieve memory from UPlanet Zen Memory
|
# Try retieve memory from UPlanet Zen Memory
|
||||||
[[ ${ZEN} -gt 0 ]] \
|
[[ ${ZEN} -gt 0 ]] \
|
||||||
&& echo "INTERCOM Refreshing from ZEN MEMORY" \
|
&& echo "INTERCOM Refreshing from ZEN MEMORY" \
|
||||||
&& ${MY_PATH}/../RUNTIME/ZEN.UMAP.memory.sh "${UMAP}" "${MOATS}"
|
&& ${MY_PATH}/../RUNTIME/ZEN.UMAP.memory.sh "${UMAP}" "${MOATS}" "${G1PUB}"
|
||||||
fi
|
fi
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
|
end=`date +%s`
|
||||||
|
echo "_____UMAP${UMAP} GET time was "`expr $end - $start` seconds.
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
|
|
||||||
## FORMAT CONTROL WARNING
|
## FORMAT CONTROL WARNING
|
||||||
|
|
|
@ -17,6 +17,7 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
SECTOR="$1"
|
SECTOR="$1"
|
||||||
[[ $SECTOR == "" ]] && echo "MISSING SECTOR ADRESS" && exit 1
|
[[ $SECTOR == "" ]] && echo "MISSING SECTOR ADRESS" && exit 1
|
||||||
MOATS="$2"
|
MOATS="$2"
|
||||||
|
G1PUB="$3"
|
||||||
|
|
||||||
## CHECK FOR BAD PARAM
|
## CHECK FOR BAD PARAM
|
||||||
[[ ! -d ~/.zen/tmp/${MOATS-empty}/${SECTOR-empty}/ ]] \
|
[[ ! -d ~/.zen/tmp/${MOATS-empty}/${SECTOR-empty}/ ]] \
|
||||||
|
@ -40,23 +41,26 @@ COINS=$($MY_PATH/../tools/COINScheck.sh ${REGIONG1PUB} | tail -n 1)
|
||||||
echo "REGION : ${REGION} (${COINS} G1) WALLET : ${REGIONG1PUB}"
|
echo "REGION : ${REGION} (${COINS} G1) WALLET : ${REGIONG1PUB}"
|
||||||
|
|
||||||
## RETRIEVE FROM REGION UKEY
|
## RETRIEVE FROM REGION UKEY
|
||||||
${MY_PATH}/../tools/timeout.sh -t 20 ${MY_PATH}/../tools/jaklis/jaklis.py history -n 300 -p ${REGIONG1PUB} -j \
|
${MY_PATH}/../tools/timeout.sh -t 20 ${MY_PATH}/../tools/jaklis/jaklis.py history -n 100 -p ${REGIONG1PUB} -j \
|
||||||
> ~/.zen/tmp/${MOATS}/${REGION}.g1history.json
|
> ~/.zen/tmp/${MOATS}/${REGION}.g1history.json
|
||||||
|
|
||||||
## SCAN FOR UPLANET:${SECTOR} in TX
|
## SCAN FOR UPLANET:${SECTOR} in TX
|
||||||
if [[ -s ~/.zen/tmp/${MOATS}/${REGION}.g1history.json ]]; then
|
if [[ -s ~/.zen/tmp/${MOATS}/${REGION}.g1history.json ]]; then
|
||||||
|
|
||||||
intercom=$(jq -r '.[] | select(.comment | test("UPLANET:'"${SECTOR}"'")) | .comment' ~/.zen/tmp/${MOATS}/${REGION}.g1history.json)
|
intercom=$(jq -r '.[] | select(.comment | test("UPLANET:'"${SECTOR}"'")) | .comment' ~/.zen/tmp/${MOATS}/${REGION}.g1history.json | tail -n 1)
|
||||||
ipfs_pop=$(echo "$intercom" | grep -oP 'UPLANET:'"${SECTOR}"':/ipfs/\K[^"]+')
|
ipfs_pop=$(echo "$intercom" | rev | cut -d ':' -f 1 | rev)
|
||||||
todate=$(echo "$intercom" | grep -oP 'UPLANET:'"${SECTOR}"':\K[^:]*')
|
todate=$(echo "$intercom" | rev | cut -d ':' -f 2 | rev)
|
||||||
echo "SYNC ~/.zen/tmp/${MOATS}/${SECTOR} <=> /ipfs/$ipfs_pop"
|
echo "SYNC ~/.zen/tmp/${MOATS}/${SECTOR} <=> $ipfs_pop"
|
||||||
|
|
||||||
## TODO: SECURITY PATCH : check payment emitter is SECTORG1PUB
|
|
||||||
if [[ $ipfs_pop ]]; then
|
if [[ $ipfs_pop ]]; then
|
||||||
echo "from $todate memory slot"
|
echo "FOUND $todate MEMORY SLOT"
|
||||||
ipfs --timeout 90s get -o ~/.zen/tmp/${MOATS}/${SECTOR} /ipfs/$ipfs_pop
|
g1pub=$(jq -r '.[] | select(.comment | test("UPLANET:'"${SECTOR}"'")) | .g1pub' ~/.zen/tmp/${MOATS}/${REGION}.g1history.json | tail -n 1)
|
||||||
|
[[ "$g1pub" != "$G1PUB" ]] && echo "ALERT :: $g1pub Memory HIJACK" && YESTERDATE="$G1PUB" ## SECURITY BREACH
|
||||||
|
[[ "$todate" == "$YESTERDATE" ]] \
|
||||||
|
&& ipfs --timeout 90s get -o ~/.zen/tmp/${MOATS}/${SECTOR} $ipfs_pop \
|
||||||
|
|| echo "$ipfs_pop ERROR ... not from $YESTERDATE ... "
|
||||||
else
|
else
|
||||||
echo "WARNING cannot remember... scan for more TX ??!"
|
echo "WARNING cannot revover any memory !!"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
|
@ -17,6 +17,7 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
UMAP="$1"
|
UMAP="$1"
|
||||||
[[ $UMAP == "" ]] && echo "MISSING UMAP ADRESS" && exit 1
|
[[ $UMAP == "" ]] && echo "MISSING UMAP ADRESS" && exit 1
|
||||||
MOATS="$2"
|
MOATS="$2"
|
||||||
|
G1PUB="$3"
|
||||||
|
|
||||||
## CHECK FOR BAD PARAM
|
## CHECK FOR BAD PARAM
|
||||||
[[ ! -d ~/.zen/tmp/${MOATS-empty}/${UMAP-empty}/ ]] \
|
[[ ! -d ~/.zen/tmp/${MOATS-empty}/${UMAP-empty}/ ]] \
|
||||||
|
@ -43,23 +44,27 @@ COINS=$($MY_PATH/../tools/COINScheck.sh ${SECTORG1PUB} | tail -n 1)
|
||||||
echo "SECTOR : ${SECTOR} (${COINS} G1) WALLET : ${SECTORG1PUB}"
|
echo "SECTOR : ${SECTOR} (${COINS} G1) WALLET : ${SECTORG1PUB}"
|
||||||
|
|
||||||
## RETRIEVE FROM SECTOR UKEY
|
## RETRIEVE FROM SECTOR UKEY
|
||||||
${MY_PATH}/../tools/timeout.sh -t 20 ${MY_PATH}/../tools/jaklis/jaklis.py history -n 300 -p ${SECTORG1PUB} -j \
|
${MY_PATH}/../tools/timeout.sh -t 20 ${MY_PATH}/../tools/jaklis/jaklis.py history -n 100 -p ${SECTORG1PUB} -j \
|
||||||
> ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json
|
> ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json
|
||||||
|
|
||||||
## SCAN FOR UPLANET:${UMAP} in TX
|
## SCAN FOR UPLANET:${UMAP} in TX
|
||||||
if [[ -s ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json ]]; then
|
if [[ -s ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json ]]; then
|
||||||
|
|
||||||
intercom=$(jq -r '.[] | select(.comment | test("UPLANET:'"${UMAP}"'")) | .comment' ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json)
|
intercom=$(jq -r '.[] | select(.comment | test("UPLANET:'"${UMAP}"'")) | .comment' ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json | tail -n 1)
|
||||||
ipfs_pop=$(echo "$intercom" | grep -oP 'UPLANET:'"${UMAP}"':/ipfs/\K[^"]+')
|
ipfs_pop=$(echo "$intercom" | rev | cut -d ':' -f 1 | rev)
|
||||||
todate=$(echo "$intercom" | grep -oP 'UPLANET:'"${UMAP}"':\K[^:]*')
|
todate=$(echo "$intercom" | rev | cut -d ':' -f 2 | rev)
|
||||||
echo "SYNC ~/.zen/tmp/${MOATS}/${UMAP} <=> /ipfs/$ipfs_pop"
|
echo "SYNC ~/.zen/tmp/${MOATS}/${UMAP} <=> $ipfs_pop"
|
||||||
|
|
||||||
## TODO: SECURITY PATCH : check payment emitter is UMAPG1PUB
|
## TODO: SECURITY PATCH : check payment emitter is UMAPG1PUB
|
||||||
if [[ $ipfs_pop ]]; then
|
if [[ $ipfs_pop ]]; then
|
||||||
echo "from $todate memory slot"
|
echo "FOUND $todate MEMORY SLOT"
|
||||||
ipfs --timeout 90s get -o ~/.zen/tmp/${MOATS}/${UMAP} /ipfs/$ipfs_pop
|
g1pub=$(jq -r '.[] | select(.comment | test("UPLANET:'"${UMAP}"'")) | .g1pub' ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json | tail -n 1)
|
||||||
|
[[ "$g1pub" != "$G1PUB" ]] && echo "ALERT :: $g1pub Memory HIJACK" && YESTERDATE="$G1PUB" ## SECURITY BREACH
|
||||||
|
[[ "$todate" == "$YESTERDATE" ]] \
|
||||||
|
&& ipfs --timeout 90s get -o ~/.zen/tmp/${MOATS}/${UMAP} $ipfs_pop \
|
||||||
|
|| echo "$ipfs_pop ERROR ... not from $YESTERDATE ... "
|
||||||
else
|
else
|
||||||
echo "WARNING cannot remember... scan for more TX ??!"
|
echo "WARNING cannot revover any memory !!"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue