This commit is contained in:
fred 2022-10-30 15:44:49 +01:00
parent 76066dae50
commit d44579eca7
3 changed files with 51 additions and 8 deletions

View File

@ -27,8 +27,16 @@ mkdir -p ~/.zen/tmp/123/
ncrunning=$(ps auxf --sort=+utime | grep -w 'nc -l -p 1234' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
[[ $ncrunning ]] && echo "ERROR - API Server Already Running - http://$myIP:1234/?salt=toto&pepper=toto " && exit 1
echo "_________________________________________________________"
echo "LAUNCHING Astroport API Server "
echo "TEST http://$myIP:1234/?salt=toto&pepper=toto&official"
echo "LAUNCHING Astroport API Server - TEST - "
echo
echo "CREATE GCHANGE + TW http://$myIP:1234/?salt=toto&pepper=toto&g1pub=on&email=fred@astroport.com"
echo "CREATE TW ONLY http://$myIP:1234/?salt=toto&pepper=toto&g1pub=off&email=fred@astroport.com"
echo "OPEN TW R/W http://$myIP:1234/?salt=toto&pepper=toto&official"
echo
echo "GCHANGE MESSAGING http://$myIP:1234/?salt=toto&pepper=toto&messaging"
echo "GCHANGE PLAYER URL http://$myIP:1234/?salt=toto&pepper=toto&g1pub"
echo
echo "TESTCRAFT http://$myIP:1234/?salt=toto&pepper=toto&testcraft=on&nodeid=12D3KooWK1ACupF7RD3MNvkBFU9Z6fX11pKRAR99WDzEUiYp5t8j&dataid=QmZXo87nn34i54HhuMrbuXM5fKXymhV3Zj9exeZDK6s4WD"
echo "_________________________________________________________"
# [[ $DISPLAY ]] && xdg-open "file://$HOME/.zen/Astroport.ONE/templates/instascan.html" 2>/dev/null
@ -185,7 +193,6 @@ cat ~/.zen/tmp/123/${MOATS}.messaging.json >> ~/.zen/tmp/123/${MOATS}.index.redi
fi
########################################
#TESTCRAFT=ON nodeid dataid
# 192.168.199.166:1234/?salt=toto&pepper=toto&testcraft=on&nodeid=12D3KooWK1ACupF7RD3MNvkBFU9Z6fX11pKRAR99WDzEUiYp5t8j&dataid=QmZXo87nn34i54HhuMrbuXM5fKXymhV3Zj9exeZDK6s4WD
########################################
if [[ "$TYPE" == "testcraft" ]]; then
## RECORD DATA MADE IN BROWSER (JSON)
@ -286,7 +293,7 @@ Content-Type: text/html; charset=UTF-8
# API ONE : ?salt=PHRASE%20UNE&pepper=PHRASE%20DEUX&g1pub=on&email/elastic=ELASTICID&pseudo=PROFILENAME
if [[ (${arr[6]} == "email" || ${arr[6]} == "elastic") && ${arr[7]} != "" ]]; then
[[ $TYPE != "g1pub" ]] && (echo "ERROR - BAD COMMAND TYPE" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && continue
[[ $TYPE != "g1pub" ]] && (echo "ERROR - BAD COMMAND $TYPE" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && continue
start=`date +%s`
@ -295,7 +302,7 @@ Content-Type: text/html; charset=UTF-8
WHAT=$(urldecode ${arr[7]} | xargs)
PSEUDO=$(urldecode ${arr[9]} | xargs)
[[ ! $WHAT ]] && (echo "ERROR - MISSING EMAIL FOR WHAT CONTACT" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && continue
[[ ! $WHAT ]] && (echo "ERROR - MISSING $WHAT FOR WHAT CONTACT" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && continue
if [[ ! $PSEUDO ]]; then
PSEUDO=$(echo $WHAT | cut -d '@' -f 1)

View File

@ -76,9 +76,45 @@ et des [Json](http://libra.copylaradio.com:8080/ipns/12D3KooWL2FcDJ41U9SyLuvDmA5
# API
Astroport n'utilise pas de serveur web! **netcat** publie un dcoument de bienvenu sur le port 1234... Il redirige le visiteur vers le $PORT du retour de l'exécution de l'API. Ce processus rend tout DDOS impossible. Le Round Robin DNS réparti les délégations de clefs.
## hybride et asynchrone
API du système.
Chaque appel API comporte "salt" et "pepper", correspondance NaCl de la clef en usage.
En utilisant netcat comme "serveur web minimal", la première page que renvoi le serveur est un rendez-vous vers la prochaine adresse IP et port où trouver la réponse à l'appel de l'API.
Comme un client qui commande, à qui on attribue un point relai qu'il devra contrôler lui même pour en connaitre la livraison.
chaque passerelle de l'essaim sert toujours la même page (voir "templates/index.http")
http://tube.copylaradio.com:1234, informe où trouver la suite qui permet de découvrir la suite.
ici pour informer de l'état de la commande (OK, ERROR)
```
<meta http-equiv="refresh" content="12; url='http://_ASTROIP_:_ASTROPORT_'" />
```
http://_ASTROIP_:_ASTROPORT_
ici pour récupérer les éventuels colis
```
<a href="http://_ASTROIP_:8080/ipns/_APID_" target="json">
```
http://_ASTROIP_:8080/ipns/_APID_/
_APID_ est la clef IPNS qui contient l'arborescence "json" en lecture
Exemple pour l'application "G1Voeu" http://149.102.158.67:8080/ipns/12D3KooWL2FcDJ41U9SyLuvDmA5qGzyoaj2RoEHiJPpCvY8jvx9u
Application "messaging"
http://tube.copylaradio.com:1234/?salt=toto&pepper=toto&messaging=on
Pour écrire une application utilisera "jsipfs"
https://js.ipfs.tech/
et l'appel API "testcraft" ?salt=toto&pepper=toto&testcraft=on&nodeid=_IPFDNODEID_&DATAID=_IPDSID_
http://tube.copylaradio.com:1234/?salt=toto&pepper=toto&testcraft=on&nodeid=12D3KooWK1ACupF7RD3MNvkBFU9Z6fX11pKRAR99WDzEUiYp5t8j&dataid=QmZXo87nn34i54HhuMrbuXM5fKXymhV3Zj9exeZDK6s4WD
```
# TYPE = official, g1pub, messaging, testcraft, ....

View File

@ -19,7 +19,7 @@
<center>
<b>--- Astronaute ---</b><br>
Créez votre TW sur IPFS<br>
INSCRIVEZ VOUS<br>
<h2>Astroport Ŋ1 Swarm#0</h2>
<form id="formlink" action = "http://127.0.0.1:1234" method = "GET">
<br>