#!/bin/bash ######################################################################## # Author: Fred (support@qo-op.com) # Version: 2020.03.21 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ######################################################################## MY_PATH="`dirname \"$0\"`" # relative MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized ME="${0##*/}" echo ' ######################################################################## # \\/// # qo-op ############# '$MY_PATH/$ME' ######################################################################## # ex: ./'$ME' # Initialize SSB + G1SSB about + IPFS Node publish ######################################################################## o__ __o __o o__ __o o__ __o o__ __o /v v\ __|> /v v\ /v v\ <| v\ /> <\ | /> <\ /> <\ / \ <\ o/ _\o____ _\o____ \o/ o/ <| _\__o__ | \_\__o__ \_\__o__ |__ _<| \\ | < > \ \ | \ \ / | \ / \ / / o o o o o o o | o <\__ __/> __|>_ <\__ __/> <\__ __/> / \ __/> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # [ASTROPORT](https://astroport.com) ######################################################################## ' ######################################################################## # ENVIRONEMENT DETECTION + IPFS ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_info ######################################################################## IPFSNODEID=$(ipfs id -f='\n') [[ $IPFSNODEID == "" ]] && echo "ERROR missing IPFSNODEID" && exit 1 mkdir -p ~/.zen/ipfs/.$IPFSNODEID/G1SSB ######################################################################## # TODO: Create unique hostname in swarm !! uidna EXTERNAL=$(cat /etc/hostname).local [[ "$1" == "KILL" ]] && cp -f ~/.ssb/config.save && kill -9 $(cat ~/.zen/ssb.pid.bash) && killall node && echo " _ _ _ _ | | (_) | | | | ___| | | | |/ / | | | | <| | | | |_|\_\_|_|_|ed " ssbpub=$(sbotc whoami 2>/dev/null | jq -r .id) if [[ $ssbpub == "" ]]; then # ssb-server not running [[ "$1" == "RESET" ]] && rm ~/.ssb # REMOVE BACKUP [[ -d ~/.ssb.$USER ]] && echo "Backup already exists for $USER. MANUAL CHECK : rm -Rf ~/.ssb.$USER " && exit 1 [[ -d ~/.ssb ]] && mv ~/.ssb ~/.ssb.$USER && rm -Rf ~/.ssb # BACKUP ~/.ssb mkdir -p ~/.ssb echo " _ __ __ _ _ _ .__|_o _ (_ (_ |_) (_(_)| || |(_| __)__)|_) _| $EXTERNAL " [[ -f ~/.ssb/config ]] && cp -f ~/.ssb/config ~/.ssb/config.bkp cat > ~/.ssb/config < ~/.zen/run-ssb-PUB_$EXTERNAL.sh < ~/.zen/ssb.pid.bash while true; do ssb-server start --host $EXTERNAL 2>/tmp/ssb.debug echo _! > ~/.zen/ssb.pid done EOF [[ $1 == "PROD" ]] && sed -i s/tmp/dev/g ~/.zen/run-ssb-PUB_$EXTERNAL.sh && sed -i sed -i s/ssb\.debug/null/g ~/.zen/run-ssb-PUB_$EXTERNAL.sh # PROD=/dev/null sed -i s/_/\$/g ~/.zen/run-ssb-PUB_$EXTERNAL.sh chmod 755 ~/.zen/run-ssb-PUB_$EXTERNAL.sh ~/.zen/run-ssb-PUB_$EXTERNAL.sh & sleep 5 [[ -f ~/.ssb/secret.dunikey ]] && cp ~/.ssb/secret.dunikey ~/.zen/secret.dunikey.$(date -u +%s%N | cut -b1-13) ssbpub=$(sbotc whoami 2>/dev/null | jq -r .id) fi # secret.dunikey ? NODE_G1PUBKEY [[ ! -f ~/.ssb/secret.dunikey ]] && $MY_PATH/tools/secret2dunikey.sh NODE_G1PUBKEY=$(cat ~/.ssb/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) echo " $ssbpub _____ _____ _ (_ | /\ |_)||_| \ oooooooo__) |/--\| \||_|_/ !!!!!!!!!!!!!! " ## PUBLISH ABOUT MESSAGE ############################################## # CREATE G1 wallet QRCode qrcodefile=~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.qrcode.png qrencode -s 5 -o $qrcodefile "$NODE_G1PUBKEY" # Publish G1 Wallet PUBKEY QRCode to SSB name=${qrcodefile##*/} id="$(sbotc blobs.add < $qrcodefile)" type="$(file -b --mime-type $qrcodefile)" size="$(wc -c < $qrcodefile)" # Publish ABOUT sbot publish --type about --about $ssbpub --description "Welcome to [Astroport](https://astroport.com) G1SSB/IPFS Station [$IPFSNODEID](http://localhost:8080/ipns/$IPFSNODEID)" --name "$USER@$(cat /etc/hostname)" --image "$id" # Publish QRCode FILE post sbotc publish '{"type":"post","text":"[G1SSB_Wallet.png]('"$id"')\nUse https://cesium.app to send payment.\nComment your transaction with '"'Zen'"' to order ZenTag...","mentions":[{"link":"'"$id"'","name":"'"$name"'","size":'"$size"',"type":"'"$type"'"}]}' # COPY NODE G1SSB ID to IPFS echo "$ssbpub" > ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_ssb.whoami echo "$NODE_G1PUBKEY" > ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.pubkey IWALLETS=$(ipfs add -rHq ~/.zen/ipfs | tail -n 1) NODEIPNS=$(ipfs name publish --quieter /ipfs/$IWALLETS) echo " /\ |_ _ _|_ /--\|_)(_)|_||_ message published $ssbpub http://localhost:8080/ipns/$IPFSNODEID/.$IPFSNODEID/G1SSB/ INVITATION : $(sbotc invite.create 1) "