From 014663bbe81d1b177ee7c9ac84d760eaee87ac25 Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 26 May 2024 21:39:42 +0200 Subject: [PATCH] N1GPU G1PalPay remote command by paying it --- ASTROBOT/N1GPU.sh | 78 +++++++++++++++++++++ ME.md | 5 -- _DOCKER/ginkgo/docker-compose.yml | 110 ++++++++++++++++++++++++++++++ 3 files changed, 188 insertions(+), 5 deletions(-) create mode 100755 ASTROBOT/N1GPU.sh delete mode 100644 ME.md create mode 100644 _DOCKER/ginkgo/docker-compose.yml diff --git a/ASTROBOT/N1GPU.sh b/ASTROBOT/N1GPU.sh new file mode 100755 index 00000000..ca942974 --- /dev/null +++ b/ASTROBOT/N1GPU.sh @@ -0,0 +1,78 @@ +#!/bin/bash +######################################################################## +# Version: 0.1 +# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) +######################################################################## +[[ ! $(which ollama) ]] \ + && echo "STATION NEED TO RUN OLLAMA" \ + && exit 1 +## +######################################################################## +MY_PATH="`dirname \"$0\"`" # relative +MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized +ME="${0##*/}" + +. "${MY_PATH}/../tools/my.sh" + +echo "$ME RUNNING" +######################################################################## +## G1PalPAY incoming TX detected call +## ./ASTROBOT/${CMD}.sh ${INDEX} ${PLAYER} ${MOATS} ${TXIPUBKEY} ${TH} ${TRAIL} ${TXIAMOUNT} +######################################################################## +## TH=/ipfs/CID (mp4 source file to transcript "voice 2 text" or other depending MODE) +## TRAIL=MODE:G1PUB (what to do and where to send response) +# default: mp4TOtxt and alert back to emiter +######################################################################## +## THIS SCRIPT IS RUN WHEN A WALLET RECEIVED A TRANSACTION WITH COMMENT STARTING WITH N1GPU: +######################################################################## +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 "FATAL ERROR - G1PUB ${PLAYER} VIDE. LOCAL PLAYER ONLY." && 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 4 - MISSING COMMAND ISSUER !" && exit 1 + +TH="$5" +[[ ! ${TH} ]] && echo "ERROR 5 - MISSING COMMAND TITLE HASH ADDRESS !" && exit 1 + +TRAIL="$6" ## ::G1PUB +MODE=$(echo ${TRAIL} | cut -d ':' -f 1) +GIPUBKEY=$(echo ${TRAIL} | cut -d ':' -f 2-) +[[ ! -z ${GIPUBKEY} ]] \ + && DPUBKEY=${GIPUBKEY} \ + || DPUBKEY=${IPUBKEY} + +AMOUNT="$7" +[[ ! ${AMOUNT} ]] && echo "ERROR 7 - AMOUNT=$7 7 " && exit 1 + +echo "${PLAYER} : ${IPUBKEY} ASK FOR PROCESSING ${TH} +${TRAIL}" + +#~ ################################################################### +#~ ## CREATE APP NODE PLAYER PUBLICATION DIRECTORY +#~ ################################################################### +mkdir -p $HOME/.zen/tmp/${MOATS} && echo $HOME/.zen/tmp/${MOATS} + + +RESPIPFS="/ipfs/"$(ipfs add -q "$RESP") + + +## SENDING GCHANGE & CESIUM+ MESSAGE +$MY_PATH/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey -n ${myDATA} send -d "${DPUBKEY}" -t "N1GPU" -m "${MESSAGE}" +$MY_PATH/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey -n ${myCESIUM} send -d "${DPUBKEY}" -t "N1GPU" -m "${MESSAGE}" + diff --git a/ME.md b/ME.md deleted file mode 100644 index b93a907e..00000000 --- a/ME.md +++ /dev/null @@ -1,5 +0,0 @@ -A Ynov depuis la B1, je code en principalement Python -j'ai des compétences en Docker, git, en gestion de bdd et traitement des donné - -J'aime faire du piano - diff --git a/_DOCKER/ginkgo/docker-compose.yml b/_DOCKER/ginkgo/docker-compose.yml new file mode 100644 index 00000000..93570019 --- /dev/null +++ b/_DOCKER/ginkgo/docker-compose.yml @@ -0,0 +1,110 @@ +version: '3' + +services: + duniter: + container_name: duniter + environment: + - DEBUG_ENTRYPOINT=${DUNITER_DEBUG_ENTRYPOINT:-${DEBUG_ENTRYPOINT:-${DEBUG:-}}} + - DUNITER_AUTO_SYNC=${DUNITER_AUTO_SYNC:-true} + - DUNITER_BMA_ENABLED=${DUNITER_BMA_ENABLED:-true} + - DUNITER_BMA_IP4=${DUNITER_BMA_IP4:-0.0.0.0} + - DUNITER_BMA_REMOTE_HOST=${DUNITER_BMA_REMOTE_HOST:-duniter.localhost} + - DUNITER_BMA_REMOTE_PORT=${DUNITER_BMA_REMOTE:-443} + - DUNITER_GVA_ENABLED=${DUNITER_GVA_ENABLED:-true} + - DUNITER_GVA_PATH=${DUNITER_GVA_PATH:-gva} + - DUNITER_GVA_PORT=${DUNITER_GVA_PORT:-30901} + - DUNITER_GVA_REMOTE_HOST=${DUNITER_GVA_REMOTE_HOST:-duniter.localhost} + - DUNITER_GVA_REMOTE_PATH=${DUNITER_GVA_REMOTE_PATH:-gva} + - DUNITER_GVA_REMOTE_PORT=${DUNITER_GVA_REMOTE_PORT:-443} + - DUNITER_GVA_REMOTE_TLS=${DUNITER_GVA_REMOTE_TLS:-false} + - DUNITER_GVA_WHITELIST=${DUNITER_GVA_WHITELIST:-127.0.0.1,::1} + - DUNITER_MANUAL_CONFIG=${DUNITER_MANUAL_CONFIG:-false} + - DUNITER_POW_PREFIX=${DUNITER_POW_PREFIX:-} + - DUNITER_POW_CPU=${DUNITER_POW_CPU:-0.8} + - DUNITER_POW_NBCORES=${DUNITER_POW_NBCORES:-1} + - DUNITER_START_OPTS=${DUNITER_START_OPTS:-direct_webstart} + - DUNITER_SYNC_HOST=${DUNITER_SYNC_HOST:-g1.duniter.org:443} + - DUNITER_SYNC_OPTS=${DUNITER_SYNC_OPTS:-} + - DUNITER_WS2P_HOST=${DUNITER_WS2P_HOST:-0.0.0.0} + - DUNITER_WS2P_PORT=${DUNITER_W2SP_PORT:-20901} + - DUNITER_WS2P_PUBLIC=${DUNITER_W2SP_PUBLIC:-true} + - DUNITER_WS2P_REMOTE_HOST=${DUNITER_WS2P_REMOTE_HOST:-duniter.localhost} + - DUNITER_WS2P_REMOTE_PATH=${DUNITER_WS2P_REMOTE_PATH:-ws2p} + - DUNITER_WS2P_REMOTE_PORT=${DUNITER_WS2P_REMOTE_PORT:-443} + image: duniter/duniter:dev + networks: + - private + ports: + - 0.0.0.0:10901:10901 + - 0.0.0.0:20901:20901 + - 0.0.0.0:30901:30901 + - 0.0.0.0:9220:9220 + restart: unless-stopped + volumes: + - data:/var/lib/duniter + - etc:/etc/duniter + # Don't auto-updated duniter + labels: + - "com.centurylinklabs.watchtower.enable=false" + # We start duniter but adding g1nkgo local IP to the allow list, so we can use GVA without rate limits (in theory) + entrypoint: /bin/sh -c "while ! getent hosts g1nkgo_host > /dev/null 2>&1; do echo 'Waiting for g1nkgo_host...'; sleep 1; done && G1NKGO_IP=`getent hosts g1nkgo_host | awk '{ print $$1 }'` && export DUNITER_GVA_WHITELIST=$$G1NKGO_IP,$${DUNITER_GVA_WHITELIST:-127.0.0.1,::1} && echo $$DUNITER_GVA_WHITELIST && exec /docker-entrypoint.sh" + + g1nkgo: + # image: g1nkgo:latest + image: comunes/g1nkgo:latest + build: + context: . + container_name: g1nkgo + restart: always + hostname: g1nkgo + ports: + - "1801:80" + - "14431:443" + volumes: + - ~/.ginkgo/nginx-conf:/etc/nginx/:rw + # - ./assets:/usr/share/nginx/html/assets:rw + labels: + - "com.centurylinklabs.watchtower.enable=true" + networks: + private: + aliases: + - g1nkgo_host + + environment: + # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones + # Useful for having logs with local time + - TZ=${TZ:-Europe/Copenhagen} + # Sentry conf + # SENTRY_DSN=https://306345cb87ee4e1cbbe9023fb4afc5fc@sentry.comunes.org/6 + # Card customization + # Empty for default + - CARD_TEXT=${CARD_TEXT:-Ğ1 Wallet} + # Nodes space-separated + # The duniter nodes are only used at boot time, later it tries to calculate periodically the nodes + # that are available with the less latency + # SENTRY_DSN no tiene valor predeterminado, por lo que no se incluye aquí. + - DUNITER_NODES=${DUNITER_NODES:-https://g1.duniter.fr https://g1.le-sou.org https://g1.cgeek.fr https://g1.monnaielibreoccitanie.org https://g1.duniter.fr https://g1.le-sou.org https://g1.cgeek.fr} + - CESIUM_PLUS_NODES=${CESIUM_PLUS_NODES:-https://g1.data.le-sou.org https://g1.data.e-is.pro https://g1.data.presles.fr https://g1.data.mithril.re} + - GVA_NODES=${GVA_NODES:-https://g1v1.p2p.legal:443/gva https://g1.asycn.io:443/gva https://duniter.pini.fr:443/gva https://duniter.cuates.net:443/gva} + + watchtower: + image: containrrr/watchtower + container_name: g1nkgo-watchtower + restart: unless-stopped + volumes: + - /var/run/docker.sock:/var/run/docker.sock + # Additional watchtower args + # commmand: + networks: + - private + +networks: + private: + name: ${DOCKER_NETWORK_PRIVATE:-duniter} +# Not in use +# public: +# name: ${DOCKER_NETWORK_PUBLIC:-host} + +volumes: + data: + etc: