ssb install ssb init

This commit is contained in:
qo-op 2020-03-24 01:20:10 +01:00
parent 5c42294052
commit a734b2918c
4 changed files with 116 additions and 128 deletions

View File

@ -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 <<EOF
{
"connections": {
"incoming": {
"net": [
{ "scope": "public", "host": "0.0.0.0", "external": ["$nodename"], "transform": "shs", "port": 8008 }
]
},
"outgoing": {
"net": [{ "transform": "shs" }]
}
}
}
EOF
cat > ~/.zen/run-ssb_$nodename.sh <<EOF
#!/bin/bash
echo _$ > ~/.zen/ssb.pid.bash
while true; do
ssb-server start 2>dev/null
echo _! > ~/.zen/ssb.pid
done
EOF
else
# PUB
cat > ~/.ssb/config <<EOF
@ -65,25 +101,27 @@ scuttlebutt() {
}
EOF
cat > ~/.zen/run-ssb_$nodename.sh <<EOF
#!/bin/bash
echo _$ > ~/.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
'
}

View File

@ -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='<id>\n')
[[ $IPFSNODEID == "" ]] && echo "ERROR missing IPFSNODEID" && exit 1
mkdir -p ~/.zen/ipfs/.$IPFSNODEID/G1SSB
ipfsnodeid=$(ipfs id -f='<id>\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 <<EOF
{
"incoming": {
"net": [{ "port": 8008, "scope": "public", "transform": "shs" }]
},
"outgoing": {
"net": [{ "transform": "shs" }]
}
}
EOF
echo '
__ _ _ _ _
(_ |_|_)\ /|_|_) o._ o_|_
__)|_| \ \/ |_| \ || || |_
'
cat > ~/.zen/run-ssb-PUB_$EXTERNAL.sh <<EOF
#!/bin/bash
echo _$ > ~/.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)
"

View File

@ -28,11 +28,11 @@ PARK="$5" # Zen amount payed for IPFS PIN by passenger everyday
##############################################
# NODE ENVIRONEMENT DETECTION
##############################################
IPFSNODEID=$(ipfs id -f='<id>\n')
ipfsnodeid=$(ipfs id -f='<id>\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

View File

@ -34,9 +34,9 @@ QWRITE="$2"
##############################################
# NODE ENVIRONEMENT DETECTION
##############################################
IPFSNODEID=$(ipfs id -f='<id>\n')
ipfsnodeid=$(ipfs id -f='<id>\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