From c6bce9a13bd4a562ee870bcb564f46e8a6dd6e5f Mon Sep 17 00:00:00 2001 From: fred Date: Mon, 26 Feb 2024 12:52:21 +0100 Subject: [PATCH] INTERCOM="UPLANET:${UMAP}:${TODATE}:/ipfs/${UMAPROOT}" --- RUNTIME/UPLANET.refresh.sh | 37 ++++++++++++++++-- RUNTIME/ZEN.SECTOR.memory.sh | 8 ++-- RUNTIME/ZEN.UMAP.memory.sh | 72 ++++++++++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+), 7 deletions(-) create mode 100755 RUNTIME/ZEN.UMAP.memory.sh diff --git a/RUNTIME/UPLANET.refresh.sh b/RUNTIME/UPLANET.refresh.sh index 3c5ebd7b..915baa0a 100755 --- a/RUNTIME/UPLANET.refresh.sh +++ b/RUNTIME/UPLANET.refresh.sh @@ -34,6 +34,9 @@ combined=("${MEMAPS[@]}" "${SWARMMAPS[@]}") unique_combined=($(echo "${combined[@]}" | tr ' ' '\n' | sort -u)) echo "ACTIVATED UMAPS : ${unique_combined[@]}" # "_LAT_LON" directories +###################################################### +### LEVEL 1 ########################################### +###################################################### for UMAP in ${unique_combined[@]}; do start=`date +%s` @@ -57,7 +60,9 @@ for UMAP in ${unique_combined[@]}; do G1PUB=$(${MY_PATH}/../tools/keygen -t duniter "${UPLANETNAME}${LAT}" "${UPLANETNAME}${LON}") [[ ! ${G1PUB} ]] && echo "ERROR generating WALLET" && exit 1 COINS=$($MY_PATH/../tools/COINScheck.sh ${G1PUB} | tail -n 1) - echo "UMAP (${COINS} G1) WALLET : ${G1PUB}" + ZEN=$(echo "($COINS - 1) * 10" | bc | cut -d '.' -f 1) + + echo "UMAP (${COINS} G1) ${ZEN} ZEN : ${G1PUB}" ## ORIGIN ########################################################## ## CALCULATE INITIAL UMAP GEOSPACIAL IPNS KEY @@ -84,6 +89,13 @@ for UMAP in ${unique_combined[@]}; do echo "## IPFS GET YESTERDATENS" mkdir ~/.zen/tmp/${MOATS}/${UMAP} ipfs --timeout 240s get -o ~/.zen/tmp/${MOATS}/${UMAP}/ /ipns/${YESTERDATENS}/ + if [[ $? != 0 ]]; then + echo "(╥☁╥ ) swarm memory empty (╥☁╥ )" + # Try retieve memory from UPlanet Zen Memory + [[ ${ZEN} -gt 0 ]] \ + && echo "INTERCOM Refreshing from ZEN MEMORY" \ + && ${MY_PATH}/../RUNTIME/ZEN.UMAP.memory.sh "${UMAP}" "${MOATS}" + fi # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -402,6 +414,17 @@ for UMAP in ${unique_combined[@]}; do && cp ~/.zen/tmp/${MOATS}/${UMAP}/${G1PUB}:ZEN/_chain ~/.zen/tmp/${MOATS}/${UMAP}/${G1PUB}:ZEN/_chain.${ZMOATS} \ && echo "UPDATING MOATS" +###################################################### + ## ZEN CHAINING + # Send 1 Zen to UPlanet SECTORG1PUB Wallet containing REGION TW HASH + INTERCOM="UPLANET:${UMAP}:${TODATE}:/ipfs/${UMAPROOT}" + echo "> INTERCOM ${INTERCOM} (${ZEN} ZEN)" + if [[ ${ZEN} -gt 11 ]]; then + echo "---ZZZ-- UMAP 2 SECTOR ZEN CHAINING ---ZZZ------ZZZ----" + ${MY_PATH}/../tools/PAY4SURE.sh ~/.zen/tmp/${MOATS}/${UMAP}.priv "0.1" "${SECTORG1PUB}" "${INTERCOM}" + rm ~/.zen/tmp/${MOATS}/${UMAP}.dunikey + fi + ## MICRO LEDGER CHAIN CHANGED or INIT ? [[ ${ZCHAIN} != ${UMAPROOT} || ${ZCHAIN} == "" ]] \ && echo "${MOATS}:${IPFSNODEID}:${UMAPROOT}" > ~/.zen/tmp/${MOATS}/${UMAP}/${G1PUB}:ZEN/_chain \ @@ -418,11 +441,19 @@ for UMAP in ${unique_combined[@]}; do done - +###################################################### +### LEVEL 2 ########################################### +###################################################### ### SECTOR = 0.1° Planet Slice ${MY_PATH}/SECTOR.refresh.sh "${unique_combined[@]}" +###################################################### +### LEVEL 3 ########################################### +###################################################### ### REGION = 1° Planet Slice ${MY_PATH}/REGION.refresh.sh "${unique_combined[@]}" +###################################################### - +###################################################### +exit 0 +###################################################### diff --git a/RUNTIME/ZEN.SECTOR.memory.sh b/RUNTIME/ZEN.SECTOR.memory.sh index d57bf5ef..06dc1e1c 100755 --- a/RUNTIME/ZEN.SECTOR.memory.sh +++ b/RUNTIME/ZEN.SECTOR.memory.sh @@ -33,8 +33,8 @@ REGLAT=$(echo ${LAT} | cut -d '.' -f 1) REGLON=$(echo ${LON} | cut -d '.' -f 1) REGION="_${REGLAT}_${REGLON}" - -REGIONG1PUB=$(${MY_PATH}/../tools/keygen -t duniter -o ~/.zen/tmp/${MOATS}/${REGION}.priv "${UPLANETNAME}${REGION}" "${UPLANETNAME}${REGION}") +${MY_PATH}/../tools/keygen -t duniter -o ~/.zen/tmp/${MOATS}/${REGION}.priv "${UPLANETNAME}${REGION}" "${UPLANETNAME}${REGION}" +REGIONG1PUB=$(cat ~/.zen/tmp/${MOATS}/${REGION}.priv | grep "pub:" | cut -d ' ' -f 2) [[ ! ${REGIONG1PUB} ]] && echo "ERROR generating REGION WALLET" && exit 1 COINS=$($MY_PATH/../tools/COINScheck.sh ${REGIONG1PUB} | tail -n 1) echo "REGION : ${REGION} (${COINS} G1) WALLET : ${REGIONG1PUB}" @@ -54,8 +54,6 @@ if [[ -s ~/.zen/tmp/${MOATS}/${REGION}.g1history.json ]]; then if [[ $ipfs_pop ]]; then echo "from $todate memory slot" ipfs --timeout 90s get -o ~/.zen/tmp/${MOATS}/${SECTOR} /ipfs/$ipfs_pop - end=`date +%s` - echo "(${SECTOR}) ${todate} get time : "`expr $end - $start` seconds. else echo "WARNING cannot remember... scan for more TX ??!" fi @@ -65,6 +63,8 @@ else exit 1 fi +end=`date +%s` +echo "(${SECTOR}.memory) ${todate} get time : "`expr $end - $start` seconds. #~ ## EXTRACT WORLDG1PUB HISTORY #~ ${MY_PATH}/timeout.sh -t 20 $MY_PATH/jaklis/jaklis.py history -n 300 -p ${WORLDG1PUB} -j \ diff --git a/RUNTIME/ZEN.UMAP.memory.sh b/RUNTIME/ZEN.UMAP.memory.sh new file mode 100755 index 00000000..3939ca54 --- /dev/null +++ b/RUNTIME/ZEN.UMAP.memory.sh @@ -0,0 +1,72 @@ +################################################################################ +# Author: Fred (support@qo-op.com) +# Version: 0.1 +# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) +################################################################################ +#~ ZEN.UMAP.memory.sh +#~ Search for last "UPLANET:$1:..." in UPLANETG1PUB wallet history +#~ INTERCOM="UPLANET:${UMAP}:${TODATE}:/ipfs/${IPFSPOP}" TX COMMENT are made during UPLANET.refresh.sh +#~ ~/.zen/tmp/${MOATS}/${UMAP} <=> "/ipfs/$ipfs_pop" +################################################################################ +################################################################################ +MY_PATH="`dirname \"$0\"`" # relative +MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized +. "${MY_PATH}/../tools/my.sh" +################################################################################ + +UMAP="$1" +[[ $UMAP == "" ]] && echo "MISSING UMAP ADRESS" && exit 1 +MOATS="$2" + +## CHECK FOR BAD PARAM +[[ ! -d ~/.zen/tmp/${MOATS-empty}/${UMAP-empty}/ ]] \ + && echo "BAD ~/.zen/tmp/${MOATS}/${UMAP}" \ + && exit 1 + +## STARTING +start=`date +%s` + +## CORRESPONDING SECTOR UKEY +LAT=$(echo ${UMAP} | cut -d '_' -f 2) +LON=$(echo ${UMAP} | cut -d '_' -f 3) + +## SECTOR COORD +SECLAT="${LAT::-1}" +SECLON="${LON::-1}" + +SECTOR="_${SECLAT}_${SECLON}" + +${MY_PATH}/../tools/keygen -t duniter -o ~/.zen/tmp/${MOATS}/${SECTOR}.priv "${UPLANETNAME}${SECTOR}" "${UPLANETNAME}${SECTOR}" +SECTORG1PUB=$(cat ~/.zen/tmp/${MOATS}/${SECTOR}.priv | grep "pub:" | cut -d ' ' -f 2) +[[ ! ${SECTORG1PUB} ]] && echo "ERROR generating SECTOR WALLET" && exit 1 +COINS=$($MY_PATH/../tools/COINScheck.sh ${SECTORG1PUB} | tail -n 1) +echo "SECTOR : ${SECTOR} (${COINS} G1) WALLET : ${SECTORG1PUB}" + +## RETRIEVE FROM SECTOR UKEY +${MY_PATH}/timeout.sh -t 20 $MY_PATH/jaklis/jaklis.py history -n 300 -p ${SECTORG1PUB} -j \ + > ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json + +## SCAN FOR UPLANET:${UMAP} in TX +if [[ -s ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json ]]; then + + intercom=$(jq -r '.[] | select(.comment | test("UPLANET:'"${UMAP}"'")) | .comment' ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json) + ipfs_pop=$(echo "$intercom" | grep -oP 'UPLANET:'"${UMAP}"':/ipfs/\K[^"]+') + todate=$(echo "$intercom" | grep -oP 'UPLANET:'"${UMAP}"':\K[^:]*') + echo "SYNC ~/.zen/tmp/${MOATS}/${UMAP} <=> /ipfs/$ipfs_pop" + + if [[ $ipfs_pop ]]; then + echo "from $todate memory slot" + ipfs --timeout 90s get -o ~/.zen/tmp/${MOATS}/${UMAP} /ipfs/$ipfs_pop + else + echo "WARNING cannot remember... scan for more TX ??!" + fi + +else + echo "FATAL ERROR cannot access to SECTORG1PUB history" + exit 1 +fi + +end=`date +%s` +echo "(${UMAP}.memory) ${todate} get time : "`expr $end - $start` seconds. + +exit 0