From a734b2918c824eeacf87bde862c734d3d43ba892 Mon Sep 17 00:00:00 2001 From: qo-op Date: Tue, 24 Mar 2020 01:20:10 +0100 Subject: [PATCH] ssb install ssb init --- .install/scuttlebutt.sh | 70 +++++++++++++++----- zen/ssb_INIT.sh | 133 ++++++++++++-------------------------- zen/zen_MAKE.sh | 37 +++++------ zen/zen_PASSENGER_READ.sh | 4 +- 4 files changed, 116 insertions(+), 128 deletions(-) diff --git a/.install/scuttlebutt.sh b/.install/scuttlebutt.sh index 687ddb2..c39ff0f 100755 --- a/.install/scuttlebutt.sh +++ b/.install/scuttlebutt.sh @@ -37,10 +37,46 @@ scuttlebutt() { [[ -d ~/.ssb_astroport ]] && ln -s ~/.ssb_astroport ~/.ssb # Create config (TODO: adapt if public Pub or Local Node) + # TODO: Create unique hostname in swarm !! uidna + nodename=$(cat /etc/hostname) extension=$(echo $nodename | cut -d '.' -f 2) - if [[ $extension != "" ]]; then +echo " + _ __ __ _ + _ _ .__|_o _ (_ (_ |_) +(_(_)| || |(_| __)__)|_) + _| +$nodename +" + if [[ $extension == "" ]]; then + + # LOCAL + cat > ~/.ssb/config < ~/.zen/run-ssb_$nodename.sh < ~/.zen/ssb.pid.bash +while true; do + ssb-server start 2>dev/null + echo _! > ~/.zen/ssb.pid +done +EOF + +else # PUB cat > ~/.ssb/config < ~/.zen/run-ssb_$nodename.sh < ~/.zen/ssb.pid.bash +while true; do + ssb-server start --host $nodename 2>dev/null + echo _! > ~/.zen/ssb.pid +done +EOF fi - # Store current user as sudo will change it - currentUser=$USER - [[ -f /etc/systemd/system/ssb.service ]] && sudo rm -f /etc/systemd/system/ssb.service - # Copy SYSTEMD service to correct location - cp "$BASE_DIR/ssb.service" /tmp/ssb.service - # Copy repplace __USER__ place holder to current user - sed -i "s|__USER__|${currentUser}|g" /tmp/ssb.service - sed -i "s|__SSBSERVER__|ssb-server|g" /tmp/ssb.service + sed -i s/_/\$/g ~/.zen/run-ssb_$nodename.sh + chmod 755 ~/.zen/run-ssb_$nodename.sh - sudo mv /tmp/ssb.service /etc/systemd/system/ssb.service + ~/.zen/run-ssb_$nodename.sh & - # Reload, Enable and start SSB Service - sudo systemctl daemon-reload - sudo systemctl enable ssb.service - sudo systemctl restart ssb.service - - sudo systemctl status ssb.service + echo ' + __ _ _ _ _ +(_ |_|_)\ /|_|_) o._ o_|_ +__)|_| \ \/ |_| \ || || |_ ... SCUTTLEBUTT ... OK + +' } diff --git a/zen/ssb_INIT.sh b/zen/ssb_INIT.sh index 93fea95..f83d6e1 100755 --- a/zen/ssb_INIT.sh +++ b/zen/ssb_INIT.sh @@ -31,126 +31,75 @@ echo ' ######################################################################## ' ######################################################################## -# ENVIRONEMENT DETECTION + IPFS ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_info +# 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 +ipfsnodeid=$(ipfs id -f='\n') +[[ $ipfsnodeid == "" ]] && echo "ERROR missing IPFS Node id !!" && exit 1 ######################################################################## -# 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 +[[ $ssbpub == "" ]] && echo "ERROR ssb-server NOT running !!" && exit 1 +######################################################################## [[ ! -f ~/.ssb/secret.dunikey ]] && $MY_PATH/tools/secret2dunikey.sh -NODE_G1PUBKEY=$(cat ~/.ssb/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) +g1pub=$(cat ~/.ssb/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) +######################################################################## + +# IPFS Node Identity G1 + SSB +mkdir -p ~/.zen/ipfs/.$ipfsnodeid/G1SSB echo " -$ssbpub - _____ _____ _ - (_ | /\ |_)||_| \ -oooooooo__) |/--\| \||_|_/ !!!!!!!!!!!!!! + + /\ |_ _ _|_ +/--\|_)(_)|_||_ G1SSB Identity " ## PUBLISH ABOUT MESSAGE ############################################## -# CREATE G1 wallet QRCode -qrcodefile=~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.qrcode.png -qrencode -s 5 -o $qrcodefile "$NODE_G1PUBKEY" +# IMAGE of G1 wallet QRCode +qrcodefile=~/.zen/ipfs/.$ipfsnodeid/G1SSB/_g1.qrcode.png +qrencode -s 5 -o $qrcodefile "$g1pub" -# Publish G1 Wallet PUBKEY QRCode to SSB +# Prepare QRCode File for 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 ABOUT document +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 +echo "$ssbpub" > ~/.zen/ipfs/.$ipfsnodeid/G1SSB/_ssb.whoami +echo "$g1pub" > ~/.zen/ipfs/.$ipfsnodeid/G1SSB/_g1.pubkey IWALLETS=$(ipfs add -rHq ~/.zen/ipfs | tail -n 1) NODEIPNS=$(ipfs name publish --quieter /ipfs/$IWALLETS) - - echo " +$ssbpub - - /\ |_ _ _|_ -/--\|_)(_)|_||_ message published +$g1pub -$ssbpub + ____ _ _ _ __ + / ___/ |___ ___| |__ (_)_ __ / _|___ +| | _| / __/ __| |_ \ | | _ \| |_/ __| +| |_| | \__ \__ \ |_) | | | |_) | _\__ \ + \____|_|___/___/_ __/ |_| __/|_| |___/ + |_| -http://localhost:8080/ipns/$IPFSNODEID/.$IPFSNODEID/G1SSB/ +~/.zen/ipfs/.$ipfsnodeid/G1SSB -INVITATION : $(sbotc invite.create 1) +ipfs ls /ipns/$NODEIPNS + _ _ _ _ _ +(_)_ ____ _(_) |_ __ _| |_(_) ___ _ __ +| | _ \ \ / / | __/ _| | __| |/ _ \| _ \ +| | | | \ V /| | || (_| | |_| | (_) | | | | +|_|_| |_|\_/ |_|\__\__|_|\__|_|\___/|_| |_| + + +$(sbotc invite.create 1) " diff --git a/zen/zen_MAKE.sh b/zen/zen_MAKE.sh index 95d09ce..43ebae0 100755 --- a/zen/zen_MAKE.sh +++ b/zen/zen_MAKE.sh @@ -28,11 +28,11 @@ PARK="$5" # Zen amount payed for IPFS PIN by passenger everyday ############################################## # NODE ENVIRONEMENT DETECTION ############################################## -IPFSNODEID=$(ipfs id -f='\n') +ipfsnodeid=$(ipfs id -f='\n') [[ ! -f ~/.ssb/secret.dunikey ]] && $MY_PATH/tools/secret2dunikey.sh -NODE_G1PUBKEY=$(cat ~/.ssb/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) -echo "G1SSB Wallet: $NODE_G1PUBKEY -IPFS: $IPFSNODEID +g1pub=$(cat ~/.ssb/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) +echo "G1SSB Wallet: $g1pub +IPFS: $ipfsnodeid __ __ _ _ _______ _______ _ __ | \/ | / \ | |/ / ____| |_ / _ \ '_ \ | |\/| | / _ \ | ' /| _| @@ -122,16 +122,16 @@ $AA $ZEN Zen # COPY ZENTAG TO LOCAL ~/.zen/tag echo "$AA" > ~/.zen/tag/${AAH}/_tag.uid # Nom du ZenTAG echo "$ZEN" > ~/.zen/tag/${AAH}/_tag.zen # Tag ZEN amount -echo "${IPFSNODEID}" > ~/.zen/tag/${AAH}/_ipfs.node.creator # NODE IPFS ID +echo "${ipfsnodeid}" > ~/.zen/tag/${AAH}/_ipfs.node.creator # NODE IPFS ID echo "$TXHASH" > ~/.zen/tag/${AAH}/_g1.txhash # HASH G1 TX/IN -echo "$NODE_G1PUBKEY" > ~/.zen/tag/${AAH}/_g1.node.creator # CREATOR IPFS NODE G1PUBKEY +echo "$g1pub" > ~/.zen/tag/${AAH}/_g1.node.creator # CREATOR IPFS NODE G1PUBKEY echo "$ISSUER" > ~/.zen/tag/${AAH}/_g1.issuer # TX ISSUER G1PUBKEY ######################################################################## # Create IPNS publishing key ${AA}.key # ===================================== # BB encrypted version for IRL use -# NODE_G1PUBKEY for current G1SSB Node later access... +# g1pub for current G1SSB Node later access... # Using sha512sum / openssl / natools.py (libsodium) ######################################################################## [[ ! -f ~/.ipfs/keystore/${AA}.key ]] && J=$(ipfs key gen -t rsa -s 2048 ${AA}.key) @@ -140,7 +140,7 @@ echo "$BBH" > ~/.zen/tag/${AAH}/_tag.BB.sha # BB pgp symetric publishkey openssl aes-256-cbc -pbkdf2 -k "$BB" -salt -in ~/.ipfs/keystore/${AA}.key -out ~/.zen/tag/${AAH}/_ipfs.publishkey.BB.aes # GIVE IPFS CREATOR NODE ACCESS TO ZEN TAG -$MY_PATH/tools/natools.py encrypt -p $NODE_G1PUBKEY -i ~/.ipfs/keystore/${AA}.key -o ~/.zen/tag/${AAH}/_ipfs.publishkey.crypt +$MY_PATH/tools/natools.py encrypt -p $g1pub -i ~/.ipfs/keystore/${AA}.key -o ~/.zen/tag/${AAH}/_ipfs.publishkey.crypt # LOG echo " @@ -174,7 +174,7 @@ echo " echo "$PASSENGERNAME" > ~/.zen/tag/${AAH}/_passenger.filename # G1SSB NODE ACCESS - $MY_PATH/tools/natools.py encrypt -p $NODE_G1PUBKEY -i ~/.zen/tag/${AAH}/_passenger.ipfs -o ~/.zen/tag/${AAH}/_passenger.ipfs.crypt + $MY_PATH/tools/natools.py encrypt -p $g1pub -i ~/.zen/tag/${AAH}/_passenger.ipfs -o ~/.zen/tag/${AAH}/_passenger.ipfs.crypt # BB OWNER ACCESS openssl aes-256-cbc -pbkdf2 -k "$BB" -salt -in ~/.zen/tag/${AAH}/_passenger.ipfs -out ~/.zen/tag/${AAH}/_passenger.ipfs.BB.aes # CLEAN CLEARTEXT IPFS link @@ -194,8 +194,9 @@ _passenger.ipfs : $IPASSENGER # # # ###### # # # # # # # # # # # # # # # ###### #### # # ##### ###### ##### + ################################################################## -# Decode _passenger.ipfs with BB Passphrase +# DECODE AND READ _passenger.ipfs with BB Passphrase ################################################################## openssl aes-256-cbc -pbkdf2 -k \"$BB\" -d -salt -in ~/.zen/tag/${AAH}/_passenger.ipfs.BB.aes -out /tmp/_passenger.ipfs ipfs get -o /tmp \"/ipfs/$IPASSENGER/$PASSENGERNAME\" && vlc \"/tmp/$PASSENGERNAME\" 2>/dev/null @@ -240,8 +241,8 @@ J=$(ipfs name publish -k ${AA}.key --quieter /ipfs/${I}) echo "${J}" > ~/.zen/tag/${AAH}/_ipns # INDEXING ZenTag to SWARM -mkdir -p ~/.zen/ipfs/.$IPFSNODEID/TAG/${J} -echo "${AA}" > ~/.zen/ipfs/.$IPFSNODEID/TAG/${J}/_tag.uid +mkdir -p ~/.zen/ipfs/.$ipfsnodeid/TAG/${J} +echo "${AA}" > ~/.zen/ipfs/.$ipfsnodeid/TAG/${J}/_tag.uid IWALLETS=$(ipfs add -rHq ~/.zen/ipfs | tail -n 1) NODEIPNS=$(ipfs name publish --quieter /ipfs/$IWALLETS) @@ -255,7 +256,7 @@ echo " $I ZenTAG : ipfs ls /ipns/$J -NODE index : ipfs ls /ipns/$NODEIPNS/.$IPFSNODEID +NODE index : ipfs ls /ipns/$NODEIPNS/.$ipfsnodeid " ######################################################################## @@ -272,20 +273,20 @@ qrencode -s 5 -o ~/.zen/tag/${AAH}/_QRCODE.read.png "RJ:${AA}#${J}" # WRITE QRCODE qrencode -s 5 -o ~/.zen/tag/${AAH}/_QRCODE.write.png "BJ:${BB}#${J}" -echo "DONE !! +echo "CREATED !! ${AA}" + ######################################################################## # SBOT PUBLISH ######################################################################## echo ' __ _ ____ (_ |_)/ \| -__)|_)\_/| +__)|_)\_/| POST ' -sbotc publish '{"type":"post","text":"ZenTAG created"}' - +sbotc publish '{"type":"post","text":"ZenTAG created : ipfs ls /ipns/$J"}' ######################################################################## @@ -298,7 +299,7 @@ echo " ipfs pin ls -q --type recursive | xargs ipfs pin rm && ipfs repo gc rm -f ~/.ipfs/keystore/*.key rm -Rf ~/.zen/tag/* -rm -Rf ~/.zen/ipfs/.$IPFSNODEID/TAG +rm -Rf ~/.zen/ipfs/.$ipfsnodeid/TAG ##################################################################" ######################################################################## exit 0 diff --git a/zen/zen_PASSENGER_READ.sh b/zen/zen_PASSENGER_READ.sh index 8fe6138..587951b 100755 --- a/zen/zen_PASSENGER_READ.sh +++ b/zen/zen_PASSENGER_READ.sh @@ -34,9 +34,9 @@ QWRITE="$2" ############################################## # NODE ENVIRONEMENT DETECTION ############################################## -IPFSNODEID=$(ipfs id -f='\n') +ipfsnodeid=$(ipfs id -f='\n') [[ ! -f ~/.ssb/secret.dunikey ]] && $MY_PATH/tools/secret2dunikey.sh -NODE_G1PUBKEY=$(cat ~/.ssb/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) +g1pub=$(cat ~/.ssb/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) ############################################################### # ZenTag READ Passenger with ZenTag WRITE