forked from STI/Astroport.ONE
Compare commits
8 Commits
2aa1186b69
...
b1ee55d196
Author | SHA1 | Date |
---|---|---|
Yann Autissier | b1ee55d196 | |
fred | b64c8eff47 | |
fred | 948bc1c79f | |
fred | 8b59816876 | |
fred | 1a6fdb1364 | |
fred | 260650ee0d | |
fred | 7911f88483 | |
fred | b8ce357d28 |
49
12345.sh
49
12345.sh
|
@ -11,13 +11,11 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
MY_PATH="`dirname \"$0\"`" # relative
|
MY_PATH="`dirname \"$0\"`" # relative
|
||||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
ME="${0##*/}"
|
|
||||||
|
|
||||||
. "${MY_PATH}/tools/my.sh"
|
. "${MY_PATH}/tools/my.sh"
|
||||||
|
|
||||||
PORT=12345
|
PORT=12345
|
||||||
|
|
||||||
YOU=$(ipfs swarm peers >/dev/null 2>&1 && echo "$USER" || ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1); ## $USER running ipfs
|
YOU=$(myIpfsApi); ## API of $USER running ipfs
|
||||||
LIBRA=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2) ## SWARM#0 ENTRANCE URL
|
LIBRA=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2) ## SWARM#0 ENTRANCE URL
|
||||||
TUBE=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 3)
|
TUBE=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 3)
|
||||||
|
|
||||||
|
@ -223,19 +221,6 @@ while true; do
|
||||||
## APPNAME SELECTION ########################
|
## APPNAME SELECTION ########################
|
||||||
########################################
|
########################################
|
||||||
|
|
||||||
##############################################
|
|
||||||
# PAY
|
|
||||||
##############################################
|
|
||||||
if [[ $APPNAME == "pay" ]]; then
|
|
||||||
echo "$APPNAME : $WHAT $OBJ $VAL"
|
|
||||||
echo "${MY_PATH}/tools/jaklis/jaklis.py -k ~/.zen/tmp/coucou/${MOATS}.secret.key -a ${WHAT} -p ${VAL} -c 'Bro'"
|
|
||||||
echo "$HTTPCORS $(${MY_PATH}/tools/jaklis/jaklis.py -k ~/.zen/tmp/coucou/${MOATS}.secret.key -a ${WHAT} -p ${VAL} -c 'Bro')" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &
|
|
||||||
end=`date +%s`
|
|
||||||
echo "(G_G ) PAYING Execution time was "`expr $end - $start` seconds.
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
##############################################
|
##############################################
|
||||||
# MESSAGING
|
# MESSAGING
|
||||||
##############################################
|
##############################################
|
||||||
|
@ -521,8 +506,40 @@ echo "" > ~/.zen/tmp/.ipfsgw.bad.twt # TODO move in 20h12.sh
|
||||||
|
|
||||||
fi ## END IF SALT
|
fi ## END IF SALT
|
||||||
|
|
||||||
|
##############################################
|
||||||
|
# /?player=PLAYER&APPNAME=WHAT&OBJ=VAL
|
||||||
|
##############################################
|
||||||
|
if [[ ${arr[0]} == "player" ]]; then
|
||||||
|
|
||||||
|
PLAYER=$(urldecode ${arr[1]} | xargs)
|
||||||
|
APPNAME=$(urldecode ${arr[2]} | xargs)
|
||||||
|
WHAT=$(urldecode ${arr[3]} | xargs)
|
||||||
|
|
||||||
|
OBJ=$(urldecode ${arr[4]} | xargs)
|
||||||
|
VAL=$(urldecode ${arr[5]} | xargs)
|
||||||
|
|
||||||
|
echo "- $PLAYER - $APPNAME : $WHAT $OBJ $VAL"
|
||||||
|
|
||||||
|
ASTRONAUTENS=$(ipfs key list -l | grep -w $PLAYER | cut -d ' ' -f1)
|
||||||
|
[[ ! $ASTRONAUTENS ]] && (echo "$HTTPCORS UNKNOWN PLAYER $PLAYER - EXIT" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && continue
|
||||||
|
|
||||||
|
##############################################
|
||||||
|
# PAY : /?player=PLAYER&pay=1&dest=G1PUB
|
||||||
|
##############################################
|
||||||
|
if [[ $APPNAME == "pay" ]]; then
|
||||||
|
echo "${MY_PATH}/tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey pay -a ${WHAT} -p ${VAL} -c 'Bro' -m"
|
||||||
|
echo "$HTTPCORS" > ~/.zen/tmp/pay.log
|
||||||
|
${MY_PATH}/tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey pay -a ${WHAT} -p ${VAL} -c 'Bro' -m 2>&1 >> ~/.zen/tmp/pay.log
|
||||||
|
cat ~/.zen/tmp/pay.log | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &
|
||||||
|
end=`date +%s`
|
||||||
|
echo "(G_G ) PAYING Execution time was "`expr $end - $start` seconds.
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
##############################################
|
||||||
|
# /?player=PLAYER&APPNAME=WHAT&OBJ=VAL
|
||||||
|
##############################################
|
||||||
|
|
||||||
###################################################################################################
|
###################################################################################################
|
||||||
###################################################################################################
|
###################################################################################################
|
||||||
|
|
|
@ -30,6 +30,8 @@ PLAYER="$2"
|
||||||
ASTONAUTENS=$(ipfs key list -l | grep -w $PLAYER | cut -d ' ' -f1)
|
ASTONAUTENS=$(ipfs key list -l | grep -w $PLAYER | cut -d ' ' -f1)
|
||||||
[[ ! $ASTONAUTENS ]] && echo "ERROR - Clef IPNS $PLAYER introuvable!" && exit 1
|
[[ ! $ASTONAUTENS ]] && echo "ERROR - Clef IPNS $PLAYER introuvable!" && exit 1
|
||||||
|
|
||||||
|
G1PUB=$(cat ~/.zen/game/players/$PLAYER/.g1pub)
|
||||||
|
|
||||||
# Extract tag=tube from TW
|
# Extract tag=tube from TW
|
||||||
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
||||||
|
|
||||||
|
@ -209,6 +211,7 @@ if [[ ! ${TIDDLER} ]]; then
|
||||||
"type": "'text/vnd.tiddlywiki'",
|
"type": "'text/vnd.tiddlywiki'",
|
||||||
"vtratio": "'${VTRATIO}'",
|
"vtratio": "'${VTRATIO}'",
|
||||||
"text": "'$TEXT'",
|
"text": "'$TEXT'",
|
||||||
|
"g1pub": "'${G1PUB}'",
|
||||||
"mime": "'${MIME}'",
|
"mime": "'${MIME}'",
|
||||||
"size": "'${FILE_BSIZE}'",
|
"size": "'${FILE_BSIZE}'",
|
||||||
"filesize": "'${FILE_SIZE}'",
|
"filesize": "'${FILE_SIZE}'",
|
||||||
|
|
|
@ -22,7 +22,7 @@ PLAYERONE="$1"
|
||||||
for PLAYER in ${PLAYERONE[@]}; do
|
for PLAYER in ${PLAYERONE[@]}; do
|
||||||
[[ ! -d ~/.zen/game/players/$PLAYER ]] && echo "BAD $PLAYERONE" && continue
|
[[ ! -d ~/.zen/game/players/$PLAYER ]] && echo "BAD $PLAYERONE" && continue
|
||||||
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
||||||
[[ $PLAYER == "user" || $PLAYER == "zen" ]] && continue
|
[[ ! $(echo "$PLAYER" | grep '@') ]] && continue
|
||||||
mkdir -p ~/.zen/tmp/${MOATS}
|
mkdir -p ~/.zen/tmp/${MOATS}
|
||||||
echo "##################################################################"
|
echo "##################################################################"
|
||||||
echo ">>>>> PLAYER : $PLAYER >>>>>>>>>>>>> REFRESHING TW STATION"
|
echo ">>>>> PLAYER : $PLAYER >>>>>>>>>>>>> REFRESHING TW STATION"
|
||||||
|
|
|
@ -91,9 +91,6 @@ Une fois votre Station Astroport démarrée (```~/.start.sh```):
|
||||||
```/?salt=${SALT}&pepper=${PEPPER}&testcraft=json&nodeid=&dataid=$QRHASH```
|
```/?salt=${SALT}&pepper=${PEPPER}&testcraft=json&nodeid=&dataid=$QRHASH```
|
||||||
|
|
||||||
|
|
||||||
* Déclencher un Payement (G1)
|
|
||||||
```/?salt=${SALT}&pepper=${PEPPER}&pay=$MONTANT&to=$G1PUB```
|
|
||||||
|
|
||||||
Redirections
|
Redirections
|
||||||
* vers Gchange
|
* vers Gchange
|
||||||
```/?salt=${SALT}&pepper=${PEPPER}&g1pub=on```
|
```/?salt=${SALT}&pepper=${PEPPER}&g1pub=on```
|
||||||
|
@ -101,6 +98,11 @@ Redirections
|
||||||
* vers TW
|
* vers TW
|
||||||
```/?salt=${SALT}&pepper=${PEPPER}&g1pub=astro```
|
```/?salt=${SALT}&pepper=${PEPPER}&g1pub=astro```
|
||||||
|
|
||||||
|
### PLAYER
|
||||||
|
|
||||||
|
* Déclencher un Payement (G1)
|
||||||
|
```/?player=${PLAYER}&pay=99&g1pub=DsEx1pS33vzYZg4MroyBV9hCw98j1gtHEhwiZ5tK7ech```
|
||||||
|
|
||||||
|
|
||||||
### PUBLIC
|
### PUBLIC
|
||||||
### ```/?qrcode=$G1PUB/$IPNS/$...```
|
### ```/?qrcode=$G1PUB/$IPNS/$...```
|
||||||
|
|
17
_12345.sh
17
_12345.sh
|
@ -8,16 +8,13 @@
|
||||||
# This script scan Swarm API layer from official bootstraps
|
# This script scan Swarm API layer from official bootstraps
|
||||||
# Then publish map of json DApp data
|
# Then publish map of json DApp data
|
||||||
#
|
#
|
||||||
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
MY_PATH="`dirname \"$0\"`" # relative
|
||||||
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
|
. "${MY_PATH}/tools/my.sh"
|
||||||
myIP=$(hostname -I | awk '{print $1}' | head -n 1)
|
|
||||||
isLAN=$(route -n |awk '$1 == "0.0.0.0" {print $2}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/")
|
|
||||||
[[ ! $myIP || $isLAN ]] && myIP="ipfs.localhost"
|
|
||||||
|
|
||||||
PORT=12345
|
PORT=12345
|
||||||
|
|
||||||
YOU=$(ipfs swarm peers >/dev/null 2>&1 && echo "$USER" || ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1); ## $USER running ipfs
|
YOU=$(myIpfsApi); ## API of $USER running ipfs
|
||||||
LIBRA=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2) ## SWARM#0 ENTRANCE URL
|
LIBRA=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2) ## SWARM#0 ENTRANCE URL
|
||||||
|
|
||||||
ncrunning=$(ps axf --sort=+utime | grep -w 'nc -l -p 12345' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 2)
|
ncrunning=$(ps axf --sort=+utime | grep -w 'nc -l -p 12345' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 2)
|
||||||
|
@ -126,11 +123,11 @@ Content-Type: application/json; charset=UTF-8
|
||||||
|
|
||||||
{
|
{
|
||||||
\"created\" : \"${MOATS}\",
|
\"created\" : \"${MOATS}\",
|
||||||
\"hostname\" : \"$(hostname)\",
|
\"hostname\" : \"$(myHostName)\",
|
||||||
\"myIP\" : \"${myIP}\",
|
\"myIP\" : \"${myIP}\",
|
||||||
\"ipfsnodeid\" : \"${IPFSNODEID}\",
|
\"ipfsnodeid\" : \"${IPFSNODEID}\",
|
||||||
\"url\" : \"http://${myIP}:8080/ipns/${IPFSNODEID}\",
|
\"url\" : \"${myIPFS}/ipns/${IPFSNODEID}\",
|
||||||
\"myswarm\" : \"http://${myIP}:8080/ipns/${CHAN}\"
|
\"myswarm\" : \"${myIPFS}/ipns/${CHAN}\"
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
|
|
@ -20,7 +20,10 @@
|
||||||
########################################################################
|
########################################################################
|
||||||
MY_PATH="`dirname \"$0\"`" # relative
|
MY_PATH="`dirname \"$0\"`" # relative
|
||||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
ME="${0##*/}"
|
. "${MY_PATH}/tools/my.sh"
|
||||||
|
|
||||||
|
[[ $IPFSNODEID == "" ]] && echo "IPFSNODEID manquant" && espeak "IPFS NODE ID Missing" && exit 1
|
||||||
|
|
||||||
start=`date +%s`
|
start=`date +%s`
|
||||||
# REMOVE GtkDialog errors for zenity
|
# REMOVE GtkDialog errors for zenity
|
||||||
shopt -s expand_aliases
|
shopt -s expand_aliases
|
||||||
|
@ -39,7 +42,7 @@ PLAYER="$2"
|
||||||
CHOICE="$3"
|
CHOICE="$3"
|
||||||
|
|
||||||
# Check who is .current PLAYER
|
# Check who is .current PLAYER
|
||||||
[[ ${PLAYER} == "" ]] && PLAYER=$(cat ~/.zen/game/players/.current/.player 2>/dev/null)
|
[[ ${PLAYER} == "" ]] && PLAYER=$(myPlayer)
|
||||||
|
|
||||||
[[ ${PLAYER} == "" ]] \
|
[[ ${PLAYER} == "" ]] \
|
||||||
&& players=($(ls ~/.zen/game/players 2>/dev/null)) \
|
&& players=($(ls ~/.zen/game/players 2>/dev/null)) \
|
||||||
|
@ -53,28 +56,18 @@ CHOICE="$3"
|
||||||
&& xdg-open "https://qo-op.com" \
|
&& xdg-open "https://qo-op.com" \
|
||||||
&& exit 1
|
&& exit 1
|
||||||
|
|
||||||
PSEUDO=$(cat ~/.zen/game/players/${PLAYER}/.pseudo 2>/dev/null)
|
PSEUDO=$(myPlayerPseudo)
|
||||||
espeak "Hello $PSEUDO"
|
espeak "Hello $PSEUDO"
|
||||||
|
|
||||||
( cd $MY_PATH && git pull ) &
|
G1PUB=$(myPlayerG1Pub)
|
||||||
|
|
||||||
G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub 2>/dev/null)
|
|
||||||
[[ $G1PUB == "" ]] && espeak "ERROR NO G 1 PUBLIC KEY FOUND - EXIT" && exit 1
|
[[ $G1PUB == "" ]] && espeak "ERROR NO G 1 PUBLIC KEY FOUND - EXIT" && exit 1
|
||||||
|
|
||||||
PLAYERNS=$(cat ~/.zen/game/players/${PLAYER}/.playerns 2>/dev/null) || ( echo "noplayerns" && exit 1 )
|
PLAYERNS=$(myPlayerNs) || ( echo "noplayerns" && exit 1 )
|
||||||
|
|
||||||
ASTRONAUTENS=$(ipfs key list -l | grep -w "${PLAYER}" | cut -d ' ' -f 1)
|
ASTRONAUTENS=$(myAstronauteKey)
|
||||||
[[ $ASTRONAUTENS == "" ]] && echo "ASTRONAUTE manquant" && espeak "Astronaut Key Missing" && exit 1
|
[[ $ASTRONAUTENS == "" ]] && echo "ASTRONAUTE manquant" && espeak "Astronaut Key Missing" && exit 1
|
||||||
|
|
||||||
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
BROWSER=$(myPlayerBrowser) ## GET cookies-from-browser
|
||||||
IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
|
|
||||||
[[ $IPFSNODEID == "" ]] && echo "IPFSNODEID manquant" && espeak "IPFS NODE ID Missing" && exit 1
|
|
||||||
|
|
||||||
BROWSER=$(xdg-settings get default-web-browser | cut -d '.' -f 1 | cut -d '-' -f 1) ## GET cookies-from-browser
|
|
||||||
|
|
||||||
myIP=$(hostname -I | awk '{print $1}' | head -n 1)
|
|
||||||
isLAN=$(route -n |awk '$1 == "0.0.0.0" {print $2}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/")
|
|
||||||
[[ ! $myIP || $isLAN ]] && myIP="ipfs.localhost"
|
|
||||||
|
|
||||||
if [ $URL ]; then
|
if [ $URL ]; then
|
||||||
echo "URL: $URL"
|
echo "URL: $URL"
|
||||||
|
@ -145,10 +138,9 @@ ISPUBLISHING=$(ps auxf --sort=+utime | grep -w 'ipfs name publish' | grep -v -E
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
espeak "restart I P F S daemon"
|
espeak "restart I P F S daemon"
|
||||||
sudo systemctl restart ipfs
|
[[ "$isLAN" ]] && sudo systemctl restart ipfs && sleep 1
|
||||||
sleep 1
|
|
||||||
## CHECK IF ASTROPORT/CRON/IPFS IS RUNNING
|
## CHECK IF ASTROPORT/CRON/IPFS IS RUNNING
|
||||||
YOU=$(ipfs swarm peers >/dev/null 2>&1 && echo "$USER" || ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
|
YOU=$(myIpfsApi)
|
||||||
[[ ! $YOU ]] && espeak "I P F S not running - EXIT" && exit 1
|
[[ ! $YOU ]] && espeak "I P F S not running - EXIT" && exit 1
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|
|
@ -6,12 +6,13 @@ HOST_ASTROPORT_SERVICE_NAME ?= astroport
|
||||||
HOST_ASTROPORT_SERVICE_1234_TAGS ?= $(call tagprefix,HOST_ASTROPORT,1234)
|
HOST_ASTROPORT_SERVICE_1234_TAGS ?= $(call tagprefix,HOST_ASTROPORT,1234)
|
||||||
HOST_ASTROPORT_UFW_UPDATE := 1234/tcp 12245:12445/tcp 45720/tcp
|
HOST_ASTROPORT_UFW_UPDATE := 1234/tcp 12245:12445/tcp 45720/tcp
|
||||||
MAKE_VARS += SSH_PORT User host
|
MAKE_VARS += SSH_PORT User host
|
||||||
PLAYER_MAKE_VARS := COMPOSE_PROJECT_NAME MAIL IPFS_UFW_DOCKER IPFS_UFW_UPDATE USER_IPFS_SERVICE_PROXY_TCP USER_IPFS_SERVICE_5001_ENVS USER_RESU_HOST
|
PLAYER_MAKE_VARS := COMPOSE_PROJECT_NAME MAIL IPFS_UFW_DOCKER IPFS_UFW_UPDATE USER_IPFS_SERVICE_PROXY_TCP USER_IPFS_SERVICE_5001_ENVS RESU_HOME RESU_HOST
|
||||||
|
RESU_HOME := mail
|
||||||
|
RESU_HOST := true
|
||||||
SERVICE := astroport
|
SERVICE := astroport
|
||||||
SSH_PORT := 45720
|
SSH_PORT := 45720
|
||||||
SSH_PUBLIC_HOSTS := git.p2p.legal
|
SSH_PUBLIC_HOSTS := git.p2p.legal
|
||||||
STACK := host
|
STACK := host
|
||||||
USER_RESU_HOST := true
|
|
||||||
User := User/ipfs
|
User := User/ipfs
|
||||||
host := host/ipfs
|
host := host/ipfs
|
||||||
ifeq ($(PLAYER_API_ONLINE),true)
|
ifeq ($(PLAYER_API_ONLINE),true)
|
||||||
|
|
|
@ -101,6 +101,14 @@ RUN set -x && buildDeps=' \
|
||||||
|
|
||||||
RUN npm install -g tiddlywiki sjcl-cli
|
RUN npm install -g tiddlywiki sjcl-cli
|
||||||
|
|
||||||
|
ARG COMPOSE_REMOTE=https://github.com/docker/compose
|
||||||
|
ARG COMPOSE_VERSION=2.5.0
|
||||||
|
|
||||||
|
RUN OS="$(echo ${DOCKER_SYSTEM} |awk '{print tolower($0)}')"; \
|
||||||
|
ARCH="$(echo ${DOCKER_MACHINE})"; \
|
||||||
|
wget -qO /usr/bin/docker-compose ${COMPOSE_REMOTE}/releases/download/v${COMPOSE_VERSION}/docker-compose-${OS}-${ARCH} \
|
||||||
|
&& chmod +x /usr/bin/docker-compose
|
||||||
|
|
||||||
ARG IPFS_VERSION=0.16.0
|
ARG IPFS_VERSION=0.16.0
|
||||||
|
|
||||||
RUN { OS="$(echo ${DOCKER_SYSTEM} |awk '{print tolower($0)}')"; \
|
RUN { OS="$(echo ${DOCKER_SYSTEM} |awk '{print tolower($0)}')"; \
|
||||||
|
|
|
@ -17,6 +17,7 @@ zen() {
|
||||||
mkdir -p /home/zen/Astroport
|
mkdir -p /home/zen/Astroport
|
||||||
sudo chown zen:users /home/zen /home/zen/.zen /home/zen/.zen/game /home/zen/.zen/game/players
|
sudo chown zen:users /home/zen /home/zen/.zen /home/zen/.zen/game /home/zen/.zen/game/players
|
||||||
[ -d "$ASTROPORT_DIR" ] && cd "$ASTROPORT_DIR" && git pull -q || git clone -q "$ASTROPORT_REPO" "$ASTROPORT_DIR"
|
[ -d "$ASTROPORT_DIR" ] && cd "$ASTROPORT_DIR" && git pull -q || git clone -q "$ASTROPORT_REPO" "$ASTROPORT_DIR"
|
||||||
|
cd "$ASTROPORT_DIR" && make
|
||||||
}
|
}
|
||||||
|
|
||||||
case "${1:-${cmd:-start}}" in
|
case "${1:-${cmd:-start}}" in
|
||||||
|
|
|
@ -178,9 +178,16 @@ echo "NEXT STYLE GW : https://ipfs.$CLYUSER$YOMAIN.$HOSTNAME"
|
||||||
NID="${myIPFSGW}" && WID="$NID/api"
|
NID="${myIPFSGW}" && WID="$NID/api"
|
||||||
[[ $isLAN ]] && NID="http://ipfs.localhost:8080" && WID="http://ipfs.localhost:5001"
|
[[ $isLAN ]] && NID="http://ipfs.localhost:8080" && WID="http://ipfs.localhost:5001"
|
||||||
|
|
||||||
|
####
|
||||||
|
[[ $USER == "zen" || $isLAN == "" ]] \
|
||||||
|
&& make player MAIL=$PLAYER PLAYER_API_ONLINE=true \
|
||||||
|
&& NID="https://ipfs.$HOSTNAME" && WID="https://ipfs.$CLYUSER$YOMAIN.$HOSTNAME/api"
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
### CREATE $NID ADDRESS FOR API & ROUND ROBIN FOR GW
|
### CREATE $NID ADDRESS FOR API & ROUND ROBIN FOR GW
|
||||||
cat ~/.zen/Astroport.ONE/templates/data/local.api.json | sed -i "s~_NID_~${WID}~g" > ~/.zen/tmp/${MOATS}/local.api.json
|
cat ~/.zen/Astroport.ONE/templates/data/local.api.json | sed "s~_NID_~${WID}~g" > ~/.zen/tmp/${MOATS}/local.api.json
|
||||||
cat ~/.zen/Astroport.ONE/templates/data/local.gw.json | sed -i "s~_NID_~${NID}~g" > ~/.zen/tmp/${MOATS}/local.gw.json
|
cat ~/.zen/Astroport.ONE/templates/data/local.gw.json | sed "s~_NID_~${NID}~g" > ~/.zen/tmp/${MOATS}/local.gw.json
|
||||||
|
|
||||||
mv ~/.zen/tmp/${MOATS}/secret.dunikey ~/.zen/game/players/$PLAYER/
|
mv ~/.zen/tmp/${MOATS}/secret.dunikey ~/.zen/game/players/$PLAYER/
|
||||||
|
|
||||||
|
@ -277,6 +284,11 @@ NID="${myIPFSGW}" && WID="$NID/api"
|
||||||
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-name","text":"'${PLAYER}_feed'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-name.json
|
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-name","text":"'${PLAYER}_feed'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-name.json
|
||||||
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key","text":"'${FEEDNS}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-key.json
|
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key","text":"'${FEEDNS}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-key.json
|
||||||
|
|
||||||
|
echo "TW IPFS GATEWAY"
|
||||||
|
cat ~/.zen/tmp/${MOATS}/local.gw.json | jq -r
|
||||||
|
echo "TW IPFS API"
|
||||||
|
cat ~/.zen/tmp/${MOATS}/local.api.json | jq -r
|
||||||
|
|
||||||
## ADD SYSTEM TW
|
## ADD SYSTEM TW
|
||||||
tiddlywiki --load ~/.zen/game/players/$PLAYER/ipfs/moa/index.html \
|
tiddlywiki --load ~/.zen/game/players/$PLAYER/ipfs/moa/index.html \
|
||||||
--import ~/.zen/tmp/${MOATS}/lightbeam-name.json "application/json" \
|
--import ~/.zen/tmp/${MOATS}/lightbeam-name.json "application/json" \
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
import sys, re, base58, base64, crypto_pb2
|
import sys, re, base58, base64
|
||||||
import cryptography.hazmat.primitives.asymmetric.ed25519 as ed25519
|
import cryptography.hazmat.primitives.asymmetric.ed25519 as ed25519
|
||||||
from cryptography.hazmat.primitives import serialization
|
from cryptography.hazmat.primitives import serialization
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
DUNIKEY=/.zen/game/players/.current/secret.dunikey
|
DUNIKEY=/.zen/game/players/.current/secret.dunikey
|
||||||
|
|
||||||
# Noeud Duniter
|
# Noeud Duniter
|
||||||
NODE=https://duniter.pini.fr/gva
|
NODE=https://g1.asycn.io/gva
|
||||||
|
|
||||||
# Adresse du pod Cesium ou Gchange à utiliser
|
# Adresse du pod Cesium ou Gchange à utiliser
|
||||||
#POD=https://g1.data.le-sou.org
|
#POD=https://g1.data.le-sou.org
|
||||||
|
|
138
tools/my.sh
138
tools/my.sh
|
@ -1,29 +1,34 @@
|
||||||
#shellcheck shell=sh disable=SC2034
|
#shellcheck shell=sh disable=SC2034
|
||||||
|
|
||||||
ipfsNodeId() {
|
|
||||||
ipfsNodeId=$(jq -r .Identity.PeerID ~/.ipfs/config)
|
|
||||||
[ -n "$ipfsNodeId" ] && echo "$ipfsNodeId"
|
|
||||||
}
|
|
||||||
|
|
||||||
isLan() {
|
isLan() {
|
||||||
isLan=$(ip route |awk '$1 == "default" {print $3}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/" \
|
isLan=$(ip route |awk '$1 == "default" {print $3}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/" \
|
||||||
|| route -n |awk '$1 == "0.0.0.0" {print $2}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/" \
|
|| route -n |awk '$1 == "0.0.0.0" {print $2}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/" \
|
||||||
|| true)
|
|| true)
|
||||||
[ -n "$isLan" ] && echo "$isLan" ||:
|
[ -n "$isLan" ] && echo "$isLan" || true
|
||||||
} 2>/dev/null
|
} 2>/dev/null
|
||||||
|
|
||||||
|
isPlayerLegal() {
|
||||||
|
isPlayerLegal=$(cat "$(myPlayerPath)"/.legal 2>/dev/null || true)
|
||||||
|
[ -n "$isPlayerLegal" ] && echo "$isPlayerLegal" || true
|
||||||
|
}
|
||||||
|
|
||||||
|
myAstronauteKey() {
|
||||||
|
myAstronauteKey=$(ipfs --api "$(myIpfsApi)" key list -l | awk '$2 == "'"$(myPlayer)"'" {print $1}')
|
||||||
|
[ -n "$myAstronauteKey" ] && echo "$myAstronauteKey"
|
||||||
|
}
|
||||||
|
|
||||||
myDomainName() {
|
myDomainName() {
|
||||||
myDomainName=$(hostname -d 2>/dev/null) && [ -z "$myDomainName" ] && myDomainName=$(domainname 2>/dev/null) && [ "$myDomainName" = "(none)" ] && myDomainName="localhost"
|
myDomainName=$(hostname -d 2>/dev/null) && [ -z "$myDomainName" ] && myDomainName=$(domainname 2>/dev/null) && [ "$myDomainName" = "(none)" ] && myDomainName="localhost"
|
||||||
[ -n "$myDomainName" ] && echo "$myDomainName"
|
[ -n "$myDomainName" ] && echo "$myDomainName"
|
||||||
}
|
}
|
||||||
|
|
||||||
myHash() {
|
myIpfsHash() {
|
||||||
[ -f ~/.zen/game/players/localhost/latest ] \
|
[ -f "$(myPath)"/localhost/latest ] \
|
||||||
&& myHash=$(cat ~/.zen/game/players/localhost/latest) \
|
&& myIpfsHash=$(cat "$(myPath)"/localhost/latest) \
|
||||||
|| myHash=$(myTmpl |ipfs add -q)
|
|| myIpfsHash=$(myTmpl |ipfs add -q)
|
||||||
[ ! -f ~/.zen/game/players/localhost/latest ] \
|
[ ! -f "$(myPath)"/localhost/latest ] \
|
||||||
&& echo "$myHash" > ~/.zen/game/players/localhost/latest
|
&& echo "$myIpfsHash" > "$(myPath)"/localhost/latest
|
||||||
[ -n "$myHash" ] && echo "$myHash"
|
[ -n "$myIpfsHash" ] && echo "$myIpfsHash"
|
||||||
}
|
}
|
||||||
|
|
||||||
myHttp() {
|
myHttp() {
|
||||||
|
@ -38,25 +43,30 @@ myHttp() {
|
||||||
}
|
}
|
||||||
|
|
||||||
myHttpContent() {
|
myHttpContent() {
|
||||||
[ -n "$(myHash)" ] \
|
[ -n "$(myIpfsHash)" ] \
|
||||||
&& myHttpContent="<html><head><title>302 Found</title></head><body><h1>Found</h1>
|
&& myHttpContent="<html><head><title>302 Found</title></head><body><h1>Found</h1>
|
||||||
<p>The document is <a href=\"ipfs/$(myHash)\">here</a> in IPFS.</p></body></html>" \
|
<p>The document is <a href=\"ipfs/$(myIpfsHash)\">here</a> in IPFS.</p></body></html>" \
|
||||||
&& echo "$myHttpContent"
|
&& echo "$myHttpContent"
|
||||||
}
|
}
|
||||||
|
|
||||||
myHttpHeader() {
|
myHttpHeader() {
|
||||||
[ -n "$(myHash)" ] \
|
[ -n "$(myIpfsHash)" ] \
|
||||||
&& myHttpHeader="HTTP/1.0 302 Found
|
&& myHttpHeader="HTTP/1.0 302 Found
|
||||||
Content-Type: text/html; charset=UTF-8
|
Content-Type: text/html; charset=UTF-8
|
||||||
Content-Length: $(myHttpContent |wc -c)
|
Content-Length: $(myHttpContent |wc -c)
|
||||||
Date: $(date -R)
|
Date: $(date -R)
|
||||||
Location: ipfs/$(myHash)
|
Location: ipfs/$(myIpfsHash)
|
||||||
Server: and"
|
Server: and"
|
||||||
[ -n "$(myKey)" ] && myHttpHeader="${myHttpHeader}
|
[ -n "$(myIpfsKey)" ] && myHttpHeader="${myHttpHeader}
|
||||||
set-cookie: AND=$(myKey); expires=$(date -R -d "+1 month"); path=/; domain=.$(myDomainName); Secure; SameSite=lax"
|
set-cookie: AND=$(myIpfsKey); expires=$(date -R -d "+1 month"); path=/; domain=.$(myDomainName); Secure; SameSite=lax"
|
||||||
[ -n "$myHttpHeader" ] && echo "$myHttpHeader"
|
[ -n "$myHttpHeader" ] && echo "$myHttpHeader"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
myHome() {
|
||||||
|
myHome=$(cd ~ && pwd -P)
|
||||||
|
[ -n "$myHome" ] && echo "$myHome"
|
||||||
|
}
|
||||||
|
|
||||||
myHostName() {
|
myHostName() {
|
||||||
myHostName=$(hostname |sed 's/\.'"$(myDomainName)"'$//')
|
myHostName=$(hostname |sed 's/\.'"$(myDomainName)"'$//')
|
||||||
[ -n "$(myDomainName)" ] && myHostName="${myHostName}.$(myDomainName)" || myDomainName=${myHostName#*.}
|
[ -n "$(myDomainName)" ] && myHostName="${myHostName}.$(myDomainName)" || myDomainName=${myHostName#*.}
|
||||||
|
@ -69,25 +79,93 @@ myIp() {
|
||||||
}
|
}
|
||||||
|
|
||||||
myIpfs() {
|
myIpfs() {
|
||||||
[ -n "$(myHash)" ] \
|
[ -n "$(myIpfsHash)" ] \
|
||||||
&& myIpfs="${myIPFS}/ipfs/$(myHash)" \
|
&& myIpfs="${myIPFS}/ipfs/$(myIpfsHash)" \
|
||||||
&& echo "$myIpfs"
|
&& echo "$myIpfs"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
myIpfsApi() {
|
||||||
|
ipfs --api "$(cat "$(myHome)"/.ipfs/api)" swarm peers >/dev/null 2>&1 \
|
||||||
|
&& myIpfsApi=$(cat "$(myHome)"/.ipfs/api) \
|
||||||
|
&& echo "$myIpfsApi"
|
||||||
|
}
|
||||||
|
|
||||||
|
myIpfsKey() {
|
||||||
|
myIpfsKey=$(ipfs --api "$(myIpfsApi)" key list -l | awk '$2 == "self" {print $1}')
|
||||||
|
[ -n "$myIpfsKey" ] && echo "$myIpfsKey"
|
||||||
|
}
|
||||||
|
|
||||||
|
myIpfsKeystore() {
|
||||||
|
myIpfsKeystore=$(cd "$(myHome)"/.ipfs/keystore && pwd -P)
|
||||||
|
[ -n "$myIpfsKeystore" ] && echo "$myIpfsKeystore"
|
||||||
|
}
|
||||||
|
|
||||||
|
myIpfsPeerId() {
|
||||||
|
myIpfsPeerId=$(jq -r .Identity.PeerID "$(myHome)"/.ipfs/config)
|
||||||
|
[ -n "$myIpfsPeerId" ] && echo "$myIpfsPeerId"
|
||||||
|
}
|
||||||
|
|
||||||
myIpns() {
|
myIpns() {
|
||||||
[ -n "$(myKey)" ] \
|
[ -n "$(myIpfsKey)" ] \
|
||||||
&& myIpns="${myIPFS}/ipns/$(myKey)" \
|
&& myIpns="${myIPFS}/ipns/$(myIpfsKey)" \
|
||||||
&& echo "$myIpns"
|
&& echo "$myIpns"
|
||||||
}
|
}
|
||||||
|
|
||||||
myKey() {
|
myPath() {
|
||||||
myKey=$(ipfs key list -l | awk '$2 == "self" {print $1}')
|
myPath=$(cd ~/.zen/game/players/ && pwd -P)
|
||||||
[ -n "$myKey" ] && echo "$myKey"
|
[ -n "$myPath" ] && echo "$myPath"
|
||||||
}
|
}
|
||||||
|
|
||||||
myPath() {
|
myPlayer() {
|
||||||
myPath=$(cd "$(dirname "$0")" 2>/dev/null && pwd -P)
|
myPlayer=$(cat "$(myPath)"/.current/.player 2>/dev/null)
|
||||||
[ -n "$myPath" ] && echo "$myPath"
|
[ -n "$myPlayer" ] && echo "$myPlayer"
|
||||||
|
}
|
||||||
|
|
||||||
|
myPlayerApi() {
|
||||||
|
ipfs --api "$(cat "$(myPlayerPath)"/.ipfs/api )" swarm peers >/dev/null 2>&1 \
|
||||||
|
&& myPlayerApi=$(cat "$(myPlayerPath)"/.ipfs/api) \
|
||||||
|
&& echo "$myPlayerApi"
|
||||||
|
}
|
||||||
|
|
||||||
|
myPlayerBrowser() {
|
||||||
|
myPlayerBrowser=$(xdg-settings get default-web-browser | cut -d '.' -f 1 | cut -d '-' -f 1)
|
||||||
|
[ -n "$myPlayerBrowser" ] && echo "$myPlayerBrowser"
|
||||||
|
}
|
||||||
|
|
||||||
|
myPlayerFeedKey() {
|
||||||
|
myPlayerFeedKey=$(ipfs --api "$(myPlayerApi)" key list -l | awk '$2 == "'"$(myPlayer)"'_feed" {print $1}')
|
||||||
|
[ -n "$myPlayerFeedKey" ] && echo "$myPlayerFeedKey"
|
||||||
|
}
|
||||||
|
|
||||||
|
myPlayerG1Pub() {
|
||||||
|
myPlayerG1Pub=$(cat "$(myPlayerPath)"/.g1pub 2>/dev/null)
|
||||||
|
[ -n "$myPlayerG1Pub" ] && echo "$myPlayerG1Pub"
|
||||||
|
}
|
||||||
|
|
||||||
|
myPlayerKey() {
|
||||||
|
myPlayerKey=$(ipfs --api "$(myPlayerApi)" key list -l | awk '$2 == "'"$(myPlayer)"'" {print $1}')
|
||||||
|
[ -n "$myPlayerKey" ] && echo "$myPlayerKey"
|
||||||
|
}
|
||||||
|
|
||||||
|
myPlayerKeystore() {
|
||||||
|
myPlayerKeystore=$(cd "$(myPlayerPath)"/.ipfs/keystore && pwd -P)
|
||||||
|
[ -n "$myPlayerKeystore" ] && echo "$myPlayerKeystore"
|
||||||
|
}
|
||||||
|
|
||||||
|
myPlayerNs() {
|
||||||
|
myPlayerNs=$(cat "$(myPlayerPath)"/.playerns 2>/dev/null)
|
||||||
|
[ -n "$myPlayerNs" ] && echo "$myPlayerNs"
|
||||||
|
}
|
||||||
|
|
||||||
|
myPlayerPath() {
|
||||||
|
[ -n "$myPlayer" ] \
|
||||||
|
&& myPlayerPath=$(cd "$(myPath)"/"$(myPlayer)" && pwd -P) \
|
||||||
|
&& echo "$myPlayerPath"
|
||||||
|
}
|
||||||
|
|
||||||
|
myPlayerPseudo() {
|
||||||
|
myPlayerPseudo=$(cat "$(myPlayerPath)"/.pseudo 2>/dev/null)
|
||||||
|
[ -n "$myPlayerPseudo" ] && echo "$myPseudo"
|
||||||
}
|
}
|
||||||
|
|
||||||
myTmpl() {
|
myTmpl() {
|
||||||
|
@ -113,7 +191,7 @@ myTs() {
|
||||||
}
|
}
|
||||||
|
|
||||||
MOATS="$(myTs)"
|
MOATS="$(myTs)"
|
||||||
IPFSNODEID="$(ipfsNodeId)"
|
IPFSNODEID="$(myIpfsPeerId)"
|
||||||
myIP="$(myIp)"
|
myIP="$(myIp)"
|
||||||
isLAN="$(isLan)"
|
isLAN="$(isLan)"
|
||||||
myHOST="astroport.$(myDomainName)" \
|
myHOST="astroport.$(myDomainName)" \
|
||||||
|
|
|
@ -330,6 +330,7 @@ then
|
||||||
"size": "'${FILE_BSIZE}'",
|
"size": "'${FILE_BSIZE}'",
|
||||||
"description": "'${DESCRIPTION}'",
|
"description": "'${DESCRIPTION}'",
|
||||||
"screenshot": "'/ipfs/${POSTER}'",
|
"screenshot": "'/ipfs/${POSTER}'",
|
||||||
|
"g1pub": "'${G1PUB}'",
|
||||||
"ipfsroot": "'/ipfs/${IPFSREPFILEID}'",
|
"ipfsroot": "'/ipfs/${IPFSREPFILEID}'",
|
||||||
"file": "'${file}'",
|
"file": "'${file}'",
|
||||||
"ipfs": "'/ipfs/${IPFSREPFILEID}/${URLENCODE_FILE_NAME}'",
|
"ipfs": "'/ipfs/${IPFSREPFILEID}/${URLENCODE_FILE_NAME}'",
|
||||||
|
|
|
@ -127,7 +127,7 @@ h1, p {
|
||||||
|
|
||||||
<header class="header">
|
<header class="header">
|
||||||
<h1>Astroport.ONE</h1>
|
<h1>Astroport.ONE</h1>
|
||||||
<a target="you" href="_ME_">ME</a> : _IFRIENDHEAD_
|
<a target="you" href="_ME_">MOA</a> : _IFRIENDHEAD_
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
Loading…
Reference in New Issue