diff --git a/20h12.process.sh b/20h12.process.sh
index 4533cfee..6035e56d 100755
--- a/20h12.process.sh
+++ b/20h12.process.sh
@@ -15,7 +15,9 @@ LOWMODE=$(sudo systemctl status ipfs | grep disabled) ## IPFS DISABLED - START O
[[ ! $(netstat -tan | grep 5001 | grep LISTEN) ]] && LOWMODE="NO 5001" ## IPFS IS STOPPED
[[ ! $isLAN ]] && LOWMODE="" ## LOWMODE ONLY FOR LAN STATION
# echo "$USER ALL=(ALL) NOPASSWD:/bin/systemctl" | (sudo su -c 'EDITOR="tee" visudo -f /etc/sudoers.d/systemctl')
+
sudo systemctl restart ipfs && sleep 10
+
floop=0
while [[ ! $(netstat -tan | grep 5001 | grep LISTEN) ]]; do
sleep 10
@@ -24,9 +26,14 @@ while [[ ! $(netstat -tan | grep 5001 | grep LISTEN) ]]; do
&& ${MY_PATH}/tools/mailjet.sh "support@qo-op.com" "/tmp/20h12.log" "IPFS RESTART ERROR 20H12" \
&& exit 1
done
-# espeak "CODE git pull" > /dev/null 2>&1
-## REMOVE TMP BUT KEEP SWARM
+## PING BOOSTRAP & SWARM NODES
+${MY_PATH}/ping_bootstrap.sh
+
+# show ZONE.sh cache of the day
+ls ~/.zen/tmp/ZONE_*
+
+## REMOVE TMP BUT KEEP SWARM and coucou
mv ~/.zen/tmp/swarm ~/.zen/swarm
mv ~/.zen/tmp/coucou ~/.zen/coucou
rm -Rf ~/.zen/tmp/*
@@ -39,7 +46,7 @@ mv ~/.zen/coucou ~/.zen/tmp/coucou
&& rm -Rf ~/.zen/G1BILLET/tmp/*
## UPDATE Astroport.ONE code
-cd ~/.zen/Astroport.ONE/
+cd ${MY_PATH}/
git pull
## SOON /ipns/ Address !!!
@@ -49,26 +56,32 @@ git pull
${MY_PATH}/youtube-dl.sh
sudo youtube-dl -U
-# Refresh ~/.zen/game/world/G1VOEU
-# NOW RUN FROM PLAYER.refresh.sh !! ~/.zen/Astroport.ONE/RUNTIME/VOEUX.refresh.sh
+## PING BOOSTRAP & SWARM NODES
+${MY_PATH}/ping_bootstrap.sh
+#####################################
# espeak "Players refresh" > /dev/null 2>&1
# Refresh ~/.zen/game/players/PLAYER
-~/.zen/Astroport.ONE/RUNTIME/PLAYER.refresh.sh
-
+#####################################
+${MY_PATH}/RUNTIME/PLAYER.refresh.sh
+#####################################
+#####################################
# espeak "REFRESHING UPLANET" > /dev/null 2>&1
-~/.zen/Astroport.ONE/RUNTIME/UPLANET.refresh.sh
-
+#####################################
+${MY_PATH}/RUNTIME/UPLANET.refresh.sh
+#####################################
+#####################################
# espeak "REFRESHING NODE" > /dev/null 2>&1
-~/.zen/Astroport.ONE/RUNTIME/NODE.refresh.sh
-
+#####################################
+${MY_PATH}/RUNTIME/NODE.refresh.sh
+#####################################
## if [[ ! $isLAN ]]; then
## REFRESH BOOSTRAP LIST (OFFICIAL SWARM)
espeak "bootstrap refresh" > /dev/null 2>&1
ipfs bootstrap rm --all > /dev/null 2>&1
- for bootnode in $(cat ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | grep -Ev "#") # remove comments
+ for bootnode in $(cat ${MY_PATH}/A_boostrap_nodes.txt | grep -Ev "#") # remove comments
do
ipfsnodeid=${bootnode##*/}
ipfs bootstrap add $bootnode
@@ -87,7 +100,7 @@ echo "20H12 (♥‿‿♥) Execution time was $dur seconds."
## DRAGON SSH WOT
echo "STOP DRAGONS WOT"
-${MY_PATH}/tools/DRAGON_p2p_ssh.sh off
+${MY_PATH}/RUNTIME/DRAGON_p2p_ssh.sh off
## RESTART
## MAIL LOG : support@qo-op.com ##
@@ -101,9 +114,9 @@ espeak "DURATION ${hours} hours ${minutes} minutes ${seconds} seconds" > /dev/nu
## KILL ALL REMAINING nc
killall nc 12345.sh > /dev/null 2>&1
-## OPEN API ENGINE
+## SYSTEMD OR NOT SYSTEMD
if [[ ! -f /etc/systemd/system/astroport.service ]]; then
- ~/.zen/Astroport.ONE/12345.sh > ~/.zen/tmp/12345.log &
+ ${MY_PATH}/12345.sh > ~/.zen/tmp/12345.log &
PID=$!
echo $PID > ~/.zen/.pid
else
@@ -113,18 +126,23 @@ else
fi
-echo "IPFS LOW MODE ?"
+echo "IPFS DAEMON LEVEL"
+######### IPFS DAMEON NOT RUNNING ALL DAY
## IF IPFS DAEMON DISABLED : WAIT 1H & STOP IT
[[ $LOWMODE != "" ]] \
- && echo "ON. $LOWMODE" \
- && sleep 360 \
+ && echo "STOP IPFS $LOWMODE" \
+ && sleep 3600 \
&& sudo systemctl stop ipfs \
&& exit 0
-echo "OFF. RESTART IPFS"
+echo "HIGH. RESTART IPFS"
sleep 60
sudo systemctl restart ipfs
+
+#################################
+### DRAGON WOT : SSH P2P RING OPENING
+#################################
sleep 30
-${MY_PATH}/tools/DRAGON_p2p_ssh.sh
+${MY_PATH}/RUNTIME/DRAGON_p2p_ssh.sh
exit 0
diff --git a/API/UPLANET.sh b/API/UPLANET.sh
index 9cc9dfd7..6af7321e 100755
--- a/API/UPLANET.sh
+++ b/API/UPLANET.sh
@@ -167,15 +167,14 @@ echo "UMAPNS : ${myIPFS}/ipns/${UMAPNS}"
## ALL TEST PASSED -> CREATE ZENCARD + ASTROID
NPASS=$(echo "${RANDOM}${RANDOM}${RANDOM}${RANDOM}" | tail -c-9) ## NOUVEAU PASS 8 CHIFFRES
-PPASS=$(head /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 2) ## STRONGER TW SECURITY "AlpH4nUm"
-DPASS=$(head /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 2) ## STRONGER TW SECURITY "AlpH4nUm"
+PPASS=$(head /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 4) ## STRONGER TW SECURITY "AlpH4nUm"
NPASS=$(head /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 10) ## STRONGER TW SECURITY "AlpH4nUm"
## CREATE ASTRONAUTE TW ON CURRENT ASTROPORT
(
-echo VISA.new.sh "${EMAIL}_${PPASS}_${DPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "/ipns/${UMAPNS}" "${LAT}" "${LON}"
+echo VISA.new.sh "${EMAIL}_${PPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "/ipns/${UMAPNS}" "${LAT}" "${LON}"
##### (☉_☉ ) #######
-${MY_PATH}/../RUNTIME/VISA.new.sh "${EMAIL}_${PPASS}_${DPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "/ipns/${UMAPNS}" "${LAT}" "${LON}" >> ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt
+${MY_PATH}/../RUNTIME/VISA.new.sh "${EMAIL}_${PPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "/ipns/${UMAPNS}" "${LAT}" "${LON}" >> ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt
## TO REMOVE : MONITOR
${MY_PATH}/../tools/mailjet.sh "support@qo-op.com" ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt "LOG VISA.new $EMAIL" ## Send VISA.new log to EMAIL
@@ -187,7 +186,7 @@ echo "(TW REGISTRATION) Operation time was "`expr $end - $start` seconds.
########################################
## Calculating TW IPNS ADDRESS
-TWADD=$(${MY_PATH}/../tools/keygen -t ipfs "${EMAIL}_${PPASS}_${DPASS}" "${NPASS}")
+TWADD=$(${MY_PATH}/../tools/keygen -t ipfs "${EMAIL}_${PPASS}" "${NPASS}")
## HTTP nc ON PORT RESPONSE
echo "$HTTPCORS
@@ -219,7 +218,7 @@ echo "$HTTPCORS
UPlanet Registration
Your AstroID seeds are:
- ${EMAIL}_${PPASS}_${DPASS}
+ ${EMAIL}_${PPASS}
${NPASS}
Generating account...
diff --git a/API/ZONE.sh b/API/ZONE.sh
index 48ae96b2..0e44881d 100755
--- a/API/ZONE.sh
+++ b/API/ZONE.sh
@@ -7,8 +7,7 @@
## API: ZONE
## Used by OSM2IPFS map_render.html & other UPlanet Client App
# ?zone=DEG&ulat=LAT&ulon=LON
-## Search for TW numbers in received zone
-# = json
+## Search for TW numbers in received zone # >> return json
################################################################################
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
@@ -42,103 +41,134 @@ function urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; }
## RUNNING UPLANET LAT/LON TW DETECTION
mkdir -p ~/.zen/tmp/${MOATS}/
-# GET RECEPTION : zone=0.001&ulat=0.02&ulon=0.01
-DEG=${THAT}
-[[ -z $DEG ]] && DEG=1
-# DEG=$(echo "$DEG * 10" | bc -l )
-LAT=${THIS}
-[[ -z $LAT ]] && LAT=0.00
-LON=${WHAT}
-[[ -z $LON ]] && LON=0.00
-
# PREPARE HTTP RESPONSE (application/json)
echo "${HTTPCORS}" > ~/.zen/tmp/${MOATS}.http
sed -i "s~text/html~application/json~g" ~/.zen/tmp/${MOATS}.http
-LAT=$(makecoord $LAT)
-LON=$(makecoord $LON)
+# ------------------------------------------------------------------- #
+# GET/?zone=0.001&ulat=0.02&ulon=0.01
+# ------------------------------------------------------------------- #
-echo "REQUEST $LAT / $LON / $DEG"
+DEG="${THAT}"
+[[ -z ${DEG} ]] && DEG=1
+# DEG=$(echo "${DEG} * 10" | bc -l )
-## REGION & ABOVE LEVEL
-if [[ $DEG == "0.1" || $DEG == "1" ]]; then
- LAT=$(echo ${LAT} | cut -d '.' -f 1)
- LON=$(echo ${LON} | cut -d '.' -f 1)
- ZONE="_${LAT}_${LON}"
- echo "ZONE = ${ZONE}"
- ZONEG1PUB=$(${MY_PATH}/../tools/keygen -t duniter "${UPLANETNAME}${ZONE}" "${UPLANETNAME}${ZONE}")
- ZONETW="/ipns/"$(${MY_PATH}/../tools/keygen -t ipfs "${YESTERDATE}${UPLANETNAME}${ZONE}" "${YESTERDATE}${UPLANETNAME}${ZONE}")
+LAT="${THIS}"
+[[ -z $LAT ]] && LAT=0.00
+
+LON="${WHAT}"
+[[ -z $LON ]] && LON=0.00
+
+LAT=$(makecoord ${LAT})
+LON=$(makecoord ${LON})
+JSON="ZONE_${LAT}_${LON}_${DEG}.json"
+
+[[ $(date +"%H%M") -gt 2012 ]] \
+ && THEDATE=${TODATE} \
+ || THEDATE=${YESTERDATE}
+echo "${THEDATE}"
+
+
+ ## SECTOR LEVEL
+ if [[ ${DEG} == "0.01" ]]; then
+ SECLAT="${LAT::-1}"
+ SECLON="${LON::-1}"
+ SECTOR="_${SECLAT}_${SECLON}"
+ echo "SECTOR = ${SECTOR}"
+ ZONEG1PUB=$(${MY_PATH}/../tools/keygen -t duniter "${UPLANETNAME}${SECTOR}" "${UPLANETNAME}${SECTOR}")
+ ZONEINDEX="/ipns/"$(${MY_PATH}/../tools/keygen -t ipfs "${THEDATE}${UPLANETNAME}${SECTOR}" "${THEDATE}${UPLANETNAME}${SECTOR}")"/_index.html"
+ JSON="ZONE${SECTOR}_${DEG}.json"
+
+ fi
+
+ ## REGION & ABOVE LEVEL
+ if [[ ${DEG} == "0.1" || ${DEG} == "1" ]]; then
+ LAT=$(echo ${LAT} | cut -d '.' -f 1)
+ LON=$(echo ${LON} | cut -d '.' -f 1)
+ ZONE="_${LAT}_${LON}"
+ echo "ZONE = ${ZONE}"
+ ZONEG1PUB=$(${MY_PATH}/../tools/keygen -t duniter "${UPLANETNAME}${ZONE}" "${UPLANETNAME}${ZONE}")
+ ZONEINDEX="/ipns/"$(${MY_PATH}/../tools/keygen -t ipfs "${THEDATE}${UPLANETNAME}${ZONE}" "${THEDATE}${UPLANETNAME}${ZONE}")
+ JSON="ZONE${ZONE}_${DEG}.json"
+
+ fi
+
+echo " JSON = ${JSON}"
+
+if [[ ! -s ~/.zen/tmp/${JSON} ]]; then
+
+ ## UMAP LEVEL
+ if [[ ${DEG} == "0.001" ]]; then
+
+ swarmnum=$(ls -d ~/.zen/tmp/swarm/*/UPLANET/__/_*_*/_*.?_*.?/_${LAT}*_${LON}*/TW/* 2>/dev/null | wc -l )
+ nodenum=$(ls -d ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_*.?_*.?/_${LAT}*_${LON}*/TW/* 2>/dev/null | wc -l )
+ totnum=$(( swarmnum + nodenum ))
+ echo " ## UMAP _${LAT}*_${LON}* = ${totnum} PLAYERs"
+
+ G1PUB=$(${MY_PATH}/../tools/keygen -t duniter "${UPLANETNAME}${LAT}" "${UPLANETNAME}${LON}")
+ ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${UMAP}.priv "${THEDATE}${UPLANETNAME}${LAT}" "${THEDATE}${UPLANETNAME}${LON}"
+ ipfs key rm ${G1PUB} > /dev/null 2>&1 ## AVOID ERROR ON IMPORT
+ UMAPNS=$(ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${UMAP}.priv)
+
+ echo '{ "gridNumbers": [ {"lat": '${LAT}', "lon": '${LON}', "number": "(_'${LAT}'_'${LON}') = '${totnum}'", "ipns": "'${myIPFS}/ipns/${UMAPNS}/_index.html'" } ] }' \
+ > ~/.zen/tmp/${MOATS}.http.grid
+
+ cp ~/.zen/tmp/${MOATS}.http.grid ~/.zen/tmp/${JSON}
+ cat ~/.zen/tmp/${JSON} >> ~/.zen/tmp/${MOATS}.http
+
+ cat ~/.zen/tmp/${MOATS}.http | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &
+
+ rm -Rf ~/.zen/tmp/${MOATS}/
+ end=`date +%s`
+ echo "(UMAP)_${LAT}_${LON} ${THEDATE} $UMAPNS Operation time was "`expr $end - $start` seconds.
+ exit 0
+
+ fi
+
+ ##############################################
+ ## SEARCH FOR UPLANET TW NUMBERS IN THAT ZONE
+ echo '{ "gridNumbers": [' >> ~/.zen/tmp/${MOATS}.http.grid
+
+ for i in $(seq 0 9);
+ do
+ ZLAT=$(echo "$LAT + ${DEG} * $i" | bc -l )
+ [[ -z ${ZLAT} ]] && ZLAT=0
+ # [[ ! $(echo $ZLAT | grep "\." ) ]] && ZLAT="${ZLAT}."
+ for j in $(seq 0 9); do
+ ZLON=$(echo "$LON + ${DEG} * $j" | bc -l )
+ [[ -z ${ZLON} ]] && ZLON=0
+ # [[ ! $(echo $ZLON | grep "\." ) ]] && ZLON="${ZLON}."
+ echo " ## SEARCH UPLANET/__/_*_*/_*.?_*.?/_${ZLAT}*_${ZLON}*"
+ swarmnum=$(ls -d ~/.zen/tmp/swarm/*/UPLANET/__/_*_*/_*.?_*.?/_${ZLAT}*_${ZLON}*/TW/* 2>/dev/null | wc -l )
+ nodenum=$(ls -d ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_*.?_*.?/_${ZLAT}*_${ZLON}*/TW/* 2>/dev/null | wc -l )
+ totnum=$(( swarmnum + nodenum ))
+
+ [[ $totnum -gt 9 ]] && displaynum="X" || displaynum=$totnum
+
+ [[ $displaynum != "0" ]] && echo '{"lat": '${ZLAT}', "lon": '${ZLON}', "number": "'${displaynum}'", "ipns": "'${ZONEINDEX}'" }
+ ,' >> ~/.zen/tmp/${MOATS}.http.grid \
+ && echo "${DEG} :" '{"lat": '${ZLAT}', "lon": '${ZLON}', "number": "'${totnum}'", "ipns": "'${ZONEINDEX}'" }'
+
+ done
+ done
+
+ sed -i '$ d' ~/.zen/tmp/${MOATS}.http.grid ## REMOVE LAST ','
+ echo ']}' >> ~/.zen/tmp/${MOATS}.http.grid
+
+ echo "## ADD TO CACHE ~/.zen/tmp/${JSON}"
+ cp ~/.zen/tmp/${MOATS}.http.grid ~/.zen/tmp/${JSON}
fi
-## SECTOR LEVEL
-if [[ $DEG == "0.01" ]]; then
- SECLAT="${LAT::-1}"
- SECLON="${LON::-1}"
- SECTOR="_${SECLAT}_${SECLON}"
- echo "SECTOR = ${SECTOR}"
- ZONEG1PUB=$(${MY_PATH}/../tools/keygen -t duniter "${UPLANETNAME}${SECTOR}" "${UPLANETNAME}${SECTOR}")
- ZONETW="/ipns/"$(${MY_PATH}/../tools/keygen -t ipfs "${YESTERDATE}${UPLANETNAME}${SECTOR}" "${YESTERDATE}${UPLANETNAME}${SECTOR}")
-
-fi
-
-## UMAP LEVEL
-if [[ $DEG == "0.001" ]]; then
-
- swarmnum=$(ls -d ~/.zen/tmp/swarm/*/UPLANET/__/_*_*/_*.?_*.?/_${LAT}*_${LON}*/TW/* 2>/dev/null | wc -l )
- nodenum=$(ls -d ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_*.?_*.?/_${LAT}*_${LON}*/TW/* 2>/dev/null | wc -l )
- totnum=$(( swarmnum + nodenum ))
- echo " ## UMAP _${LAT}*_${LON}* = ${totnum} PLAYERs"
-
- G1PUB=$(${MY_PATH}/../tools/keygen -t duniter "${UPLANETNAME}${LAT}" "${UPLANETNAME}${LON}")
- ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${UMAP}.priv "${YESTERDATE}${UPLANETNAME}${LAT}" "${YESTERDATE}${UPLANETNAME}${LON}"
- ipfs key rm ${G1PUB} > /dev/null 2>&1 ## AVOID ERROR ON IMPORT
- UMAPNS=$(ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${UMAP}.priv)
-
- echo '{ "gridNumbers": [ {"lat": '${LAT}', "lon": '${LON}', "number": "(_'${LAT}'_'${LON}') = '${totnum}'", "ipns": "'${myIPFS}/ipns/${UMAPNS}/_index.html'" } ] }' >> ~/.zen/tmp/${MOATS}.http
- cat ~/.zen/tmp/${MOATS}.http | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &
- rm -Rf ~/.zen/tmp/${MOATS}/
- end=`date +%s`
- echo "(UMAP)_${LAT}_${LON} ${YESTERDATE} $UMAPNS Operation time was "`expr $end - $start` seconds.
- exit 0
-
-fi
-
-## ALL OTHER DEG : SEARCH FOR UPLANET TW NUMBERS
-echo '{ "gridNumbers": [' >> ~/.zen/tmp/${MOATS}.http
-
-for i in $(seq 0 9);
-do
- ZLAT=$(echo "$LAT + $DEG * $i" | bc -l )
- [[ -z ${ZLAT} ]] && ZLAT=0
- # [[ ! $(echo $ZLAT | grep "\." ) ]] && ZLAT="${ZLAT}."
- for j in $(seq 0 9); do
- ZLON=$(echo "$LON + $DEG * $j" | bc -l )
- [[ -z ${ZLON} ]] && ZLON=0
- # [[ ! $(echo $ZLON | grep "\." ) ]] && ZLON="${ZLON}."
- echo " ## SEARCH UPLANET/__/_*_*/_*.?_*.?/_${ZLAT}*_${ZLON}*"
- swarmnum=$(ls -d ~/.zen/tmp/swarm/*/UPLANET/__/_*_*/_*.?_*.?/_${ZLAT}*_${ZLON}*/TW/* 2>/dev/null | wc -l )
- nodenum=$(ls -d ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_*.?_*.?/_${ZLAT}*_${ZLON}*/TW/* 2>/dev/null | wc -l )
- totnum=$(( swarmnum + nodenum ))
-
- [[ $totnum -gt 9 ]] && displaynum="X" || displaynum=$totnum
-
- [[ $displaynum != "0" ]] && echo '{"lat": '${ZLAT}', "lon": '${ZLON}', "number": "'${displaynum}'", "ipns": "'${ZONETW}'" }
- ,' >> ~/.zen/tmp/${MOATS}.http && echo "$DEG :" '{"lat": '${ZLAT}', "lon": '${ZLON}', "number": "'${totnum}'", "ipns": "'${ZONETW}'" }'
-
- done
-done
-
-sed -i '$ d' ~/.zen/tmp/${MOATS}.http ## REMOVE LAST ','
-
-echo ']}' >> ~/.zen/tmp/${MOATS}.http
-
### SEND RESPONSE ON PORT
-cat ~/.zen/tmp/${MOATS}.http | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &
-
+cat ~/.zen/tmp/${JSON} >> ~/.zen/tmp/${MOATS}.http
+(
+ cat ~/.zen/tmp/${MOATS}.http | nc -l -p ${PORT} -q 1 > /dev/null 2>&1
+ rm ~/.zen/tmp/${MOATS}.http.grid 2>/dev/null
+ rm ~/.zen/tmp/${MOATS}.http && echo "BLURP ${JSON}"
+) &
## CLEANING
rm -Rf ~/.zen/tmp/${MOATS}/
-
## TIMING
end=`date +%s`
echo "(ZONE) Operation time was "`expr $end - $start` seconds.
diff --git a/ASTROBOT/N1Monit.sh b/ASTROBOT/N1Monit.sh
deleted file mode 100755
index b77fc817..00000000
--- a/ASTROBOT/N1Monit.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/bash
-########################################################################
-# Version: 0.5
-# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
-########################################################################
-# PAD COCODING : https://pad.p2p.legal/s/G1Monit
-# KODI SERVICE : Publish and Merge Friends Monit Movies into RSS Stream
-########################################################################
-########################################################################
-MY_PATH="`dirname \"$0\"`" # relative
-MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
-ME="${0##*/}"
-
-. "${MY_PATH}/../tools/my.sh"
-
-echo "$ME RUNNING"
-########################################################################
-## SCAN FOR PAYMENT HISTORY
-## BUILD python NetworkX script
-## SEND MESSAGE TO SOURCEG1PUB
-########################################################################
-## THIS SCRIPT IS RUN WHEN A WALLET RECEIVED A TRANSACTION WITH COMMENT STARTING WITH N1Monit
-########################################################################
-INDEX="$1"
-[[ ! ${INDEX} ]] && INDEX="$HOME/.zen/game/players/.current/ipfs/moa/index.html"
-[[ ! -s ${INDEX} ]] && echo "ERROR - Please provide path to source TW index.html" && exit 1
-[[ ! -s ${INDEX} ]] && echo "ERROR - Fichier TW absent. ${INDEX}" && exit 1
-
-PLAYER="$2"
-[[ ! ${PLAYER} ]] && PLAYER="$(cat ~/.zen/game/players/.current/.player 2>/dev/null)"
-[[ ! ${PLAYER} ]] && echo "ERROR - Please provide PLAYER" && exit 1
-
-ASTRONAUTENS=$(ipfs key list -l | grep -w ${PLAYER} | cut -d ' ' -f1)
-[[ ! ${ASTRONAUTENS} ]] && echo "ERROR - Clef IPNS ${PLAYER} introuvable!" && exit 1
-
-G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub)
-[[ ! $G1PUB ]] && echo "ERROR - G1PUB ${PLAYER} VIDE" && exit 1
-
-# Extract tag=tube from TW
-MOATS="$3"
-[[ ! ${MOATS} ]] && MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
-
-IPUBKEY="$4"
-[[ ! ${IPUBKEY} ]] && echo "ERROR - MISSING COMMAND ISSUER !" && exit 1
-
-TH="$5"
-[[ ! ${TH} ]] && echo "ERROR - MISSING COMMAND TITLE HASH ADDRESS !" && exit 1
-
-echo "${PLAYER} : ${IPUBKEY} SEEKING FOR ${TH}
-${ASTRONAUTENS} ${G1PUB} "
-
-#~ ###################################################################
-#~ ## CREATE APP NODE PLAYER PUBLICATION DIRECTORY
-#~ ###################################################################
-mkdir -p $HOME/.zen/tmp/${MOATS} && echo $HOME/.zen/tmp/${MOATS}
-
-## EXERCICE ### TODO ###
-## USE https://networkx.org/documentation/stable/tutorial.html#
-## EXTRACT HISTORY WITH jaklis
-## CREATE A PYTHON SCRIPT CREATING the 1st level of TX
-echo "import networkx as nx
-import matplotlib.pyplot as plt
-G = nx.Graph()
-...
-G.add_node(SRCPUB)
-G.add_node(DSTPUB)
-G.edges[SRCPUB, DSTPUB]['g1'] = AMOUNT
-...
-nx.draw(G, with_labels=True, font_weight='bold')
-plt.show()
-"
-## EXTEND N1Script WITH MORE FUNCTIONS... exemples ...
-## N1Vote: permet de pratiquer le Vote Quadratique
-## N1Conf: permet de signifier la Confiance
-## ...
-
-exit 0
diff --git a/README.md b/README.md
index 0a1a4911..57f1977d 100644
--- a/README.md
+++ b/README.md
@@ -60,43 +60,21 @@ At this point, if it exists "ASTROBOT/G1Tag.sh" program will publish the data re
# INSTALLATION (Linux Mint / Ubuntu / DEBIAN)
-There is 2 methods one for server and one for Linux Mint desktop
-
-## SERVER : Using DOCKER (and MyOS)
-
-the easiest way to automaticaly deploy and host Astroport.ONE services
-
-```
-# install minimal requirements
-sudo apt install git docker make
-
-# clone Astroport.ONE repo
-git clone https://github.com/papiche/Astroport.ONE.git
-
-cd Astroport.ONE
-make
-make install
-
-```
-If your computer is running 24/24, you can join our "Boostrap list" & officially become a [TW UPlanet hoster](https://talk.tiddlywiki.org/t/uplanet-a-planet-full-of-tws/8193?u=papiche)
-
-> DOCKER MODE NOT READY TO USE !! FOLLOW AND ADAPT NEXT STEP
-
-## DESKTOP : Using install.sh script
-
Tested on "Linux Mint" (Debian like distro compatible), the **hacker way for using & buidling new blockchain services** ...
-```
-# install on system wide
-# SOURCE GIT.P2P.LEGAL
-bash <(wget -qO- https://git.p2p.legal/qo-op/Astroport.ONE/raw/branch/master/install.sh)
+INSTALL COMMAND
-# SOURCE GITHUB
+```
bash <(wget -qO- https://raw.githubusercontent.com/papiche/Astroport.ONE/master/install.sh)
```
-> PLEASE REPORT ANY ISSUES
+> TODO: MORE MODULAR INSTALL.
+> CREATE adventure explaining it
+
+## DRAGONS WOT
+
+Once you install Astroport.ONE...
If all has gone well, you should find these processes running...
@@ -113,7 +91,12 @@ If all has gone well, you should find these processes running...
```
-# LAUNCH
+> Become Official REGIONAL Station
+> - follow "PGP/SSH/IPFSNODEID" linking procedure -
+> https://pad.p2p.legal/keygen
+
+
+# DESKTOP
After installation, you should have 3 new shortcuts on your desktop
@@ -121,6 +104,10 @@ After installation, you should have 3 new shortcuts on your desktop
* REC" allows you to save your files on IPFS and publish their Capusle in your TW.
* G1BILLET" lets you create ZenCards and other useful QRCodes
+NB : If you use "Nemo" as file manager. You can "ipfs add" any file (with no space in file name) by right click it.
+
+> TODO : detect OS and FILE MANAGER to adapt desktop linking and right clic action
+
## How to manage your "Astroport"!
You need to create a "PLAYER".
@@ -131,8 +118,9 @@ It is defined by email, salt, pepper, lat, lon and PASS
```
Browse available functions
-A Station can host multiple "PLAYER and its TiddlyWiki".
+A Station can host multiple "PLAYERs and TiddlyWikis".
+---
# "BASH API" : "♥BOX"
## http://astroport.localhost:1234
diff --git a/tools/DRAGON_p2p_ssh.sh b/RUNTIME/DRAGON_p2p_ssh.sh
similarity index 99%
rename from tools/DRAGON_p2p_ssh.sh
rename to RUNTIME/DRAGON_p2p_ssh.sh
index fe9bd27d..e409382a 100755
--- a/tools/DRAGON_p2p_ssh.sh
+++ b/RUNTIME/DRAGON_p2p_ssh.sh
@@ -7,7 +7,7 @@
# Activate SUPPORT MODE: open ssh over IPFS
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
-. "$MY_PATH/my.sh"
+. "$MY_PATH/../tools/my.sh"
########################################################################
YOU=$(myIpfsApi) || er+=" ipfs daemon not running"
[[ "$YOU" == "" || "${IPFSNODEID}" == "" ]] && echo "ERROR : $er " && exit 1
diff --git a/RUNTIME/G1PalPay.sh b/RUNTIME/G1PalPay.sh
index c4a0b62d..e29014c3 100755
--- a/RUNTIME/G1PalPay.sh
+++ b/RUNTIME/G1PalPay.sh
@@ -12,29 +12,28 @@ ME="${0##*/}"
. "${MY_PATH}/../tools/my.sh"
- CESIUM=${myCESIUM}
- GCHANGE=${myGCHANGE}
+CESIUM=${myCESIUM}
+GCHANGE=${myGCHANGE}
-echo "(✜‿‿✜) G1PalPay : Receiving & Relaying payments to emails found in comment"
echo "$ME RUNNING"
########################################################################
-# PALPAY SERVICE
+# PALPAY SERVICE : MONITOR INCOMING TX & NEW TIDDLERS
########################################################################
########################################################################
-INDEX="$1"
+INDEX="$1" ## TW file
[[ ! ${INDEX} ]] && INDEX="$HOME/.zen/game/players/.current/ipfs/moa/index.html"
[[ ! -s ${INDEX} ]] && echo "ERROR - Please provide path to source TW index.html" && exit 1
[[ ! -s ${INDEX} ]] && echo "ERROR - Fichier TW absent. ${INDEX}" && exit 1
-PLAYER="$2"
+PLAYER="$2" ## PLAYER
[[ ! ${PLAYER} ]] && PLAYER="$(cat ~/.zen/game/players/.current/.player 2>/dev/null)"
[[ ! ${PLAYER} ]] && echo "ERROR - Please provide PLAYER" && exit 1
-ASTRONAUTENS=$(ipfs key list -l | grep -w ${PLAYER} | cut -d ' ' -f1)
+ASTRONAUTENS=$(ipfs key list -l | grep -w ${PLAYER} | cut -d ' ' -f1) ## TW /ipns/
[[ ! ${ASTRONAUTENS} ]] && echo "ERROR - Clef IPNS ${PLAYER} introuvable!" && exit 1
-G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub)
+G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub) ## PLAYER WALLET
[[ ! $G1PUB ]] && echo "ERROR - G1PUB ${PLAYER} VIDE" && exit 1
# Extract tag=tube from TW
@@ -47,23 +46,32 @@ MOATS="$3"
mkdir -p $HOME/.zen/tmp/${IPFSNODEID}/G1PalPay/${PLAYER}/
mkdir -p $HOME/.zen/game/players/${PLAYER}/G1PalPay/
mkdir -p $HOME/.zen/tmp/${MOATS}
-echo "=========== ( ◕‿◕) (◕‿◕ ) =============="
+echo "=========== ( ◕‿◕) (◕‿◕ ) ============== ${PLAYER}
+${INDEX}"
+echo "(✜‿‿✜) G1PalPay : CHECK LAST 10 TX comment"
# CHECK LAST 10 INCOMING PAYMENTS
~/.zen/Astroport.ONE/tools/timeout.sh -t 12 \
${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey history -n 10 -j > $HOME/.zen/game/players/${PLAYER}/G1PalPay/${PLAYER}.duniter.history.json
[[ ! -s $HOME/.zen/game/players/${PLAYER}/G1PalPay/${PLAYER}.duniter.history.json ]] \
-&& echo "NO PAYMENT HISTORY" \
+&& echo "NO PAYMENT HISTORY.......................... EXIT" \
&& exit 1
##############################
##########################################################
############# CHECK FOR N1COMMANDs IN PAYMENT COMMENT
+# TODO check amout > 0
#################################################################
+cat $HOME/.zen/game/players/${PLAYER}/G1PalPay/${PLAYER}.duniter.history.json | jq -rc .[]
+## TREAT ANY COMMENT STARTING WITH N1:
+## EXTRACT /ASTROBOT/N1ProgramNames
+ls ${MY_PATH}/../ASTROBOT/ | grep "N1" | cut -d "." -f 1 > ~/.zen/tmp/${MOATS}/N1PROG
-## TREAT ANY COMMENT STARTING WITH N1
-cat $HOME/.zen/game/players/${PLAYER}/G1PalPay/${PLAYER}.duniter.history.json | jq -rc .[] | grep 'N1' > ~/.zen/tmp/${MOATS}/myN1.json
+while read prog; do
+ cat $HOME/.zen/game/players/${PLAYER}/G1PalPay/${PLAYER}.duniter.history.json | jq -rc .[] | grep "$prog" >> ~/.zen/tmp/${MOATS}/myN1.json
+done < ~/.zen/tmp/${MOATS}/N1PROG
+# got N1 incoming TX
while read NLINE; do
## COMMENT FORMAT = N1$CMD:$TH:$TRAIL
TXIDATE=$(echo ${NLINE} | jq -r .date)
@@ -72,7 +80,10 @@ while read NLINE; do
COMMENT=$(echo ${NLINE} | jq -r .comment)
CMD=$(echo ${COMMENT} | cut -d ':' -f 1 | cut -c -12 ) # Maximum 12 characters CMD
- [[ $(cat ~/.zen/game/players/${PLAYER}/.ndate) -ge $TXIDATE ]] && echo "$CMD $TXIDATE from $TXIPUBKEY ALREADY TREATED - continue" && continue
+ # Verify last recorded acting date (avoid running twice)
+ [[ $(cat ~/.zen/game/players/${PLAYER}/.ndate) -ge $TXIDATE ]] \
+ && echo "$CMD $TXIDATE from $TXIPUBKEY ALREADY TREATED - continue" \
+ && continue
TH=$(echo ${COMMENT} | cut -d ':' -f 2)
TRAIL=$(echo ${COMMENT} | cut -d ':' -f 3-)
@@ -114,7 +125,9 @@ while read LINE; do
COMMENT=$(echo $JSON | jq -r .comment)
echo ">>> TODO CHECK TX HAPPENS LAST 24H (WHAT IS TXIDATE=$TXIDATE FORMAT ??)"
- [[ $(cat ~/.zen/game/players/${PLAYER}/.atdate) -ge $TXIDATE ]] && echo "PalPay $TXIDATE from $TXIPUBKEY ALREADY TREATED - continue" && continue
+ [[ $(cat ~/.zen/game/players/${PLAYER}/.atdate) -ge $TXIDATE ]] \
+ && echo "PalPay $TXIDATE from $TXIPUBKEY ALREADY TREATED - continue" \
+ && continue
## GET EMAILS FROM COMMENT
TXIMAILS=($(echo "$COMMENT" | grep -E -o "\b[a-zA-Z0-9.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b"))
@@ -123,9 +136,11 @@ while read LINE; do
echo "N=${#TXIMAILS[@]}"
N=${#TXIMAILS[@]}
SHARE=$(echo "scale=2; $TXIAMOUNT / $N" | bc)
+ ## SHARE is received AMOUT divided by numbers of EMAILS in comment
echo "$TXIDATE $TXIPUBKEY $TXIAMOUNT [$TXIAMOUNTUD] $TXIMAILS % $SHARE %"
+ # let's loop over TXIMAILS
for EMAIL in "${TXIMAILS[@]}"; do
[[ ${EMAIL} == $PLAYER ]] && echo "ME MYSELF" && continue
@@ -144,8 +159,8 @@ while read LINE; do
[[ ! ${ASTROG1} ]] \
&& echo "SORRY ${EMAIL} YOUR ACCOUNT IS MISSING
" \
- && echo " BRO. $PLAYER WISH TO SEND YOU SOME ẐEN
(♥‿‿♥)... Join UPlanet and receive it" > ~/.zen/tmp/palpay.bro \
- && ${MY_PATH}/../tools/mailjet.sh "${EMAIL}" ~/.zen/tmp/palpay.bro "NEED FOR ACCOUNT" \
+ && echo " BRO. $PLAYER WISH TO SEND YOU SOME ẐEN
(♥‿‿♥)... Join UPlanet to receive it