g1_TX2ZEN.sh zen_MAKE.sh zen_READ.sh
This commit is contained in:
parent
0e9374677c
commit
9d9172b4b6
2
iptubes
2
iptubes
|
@ -1 +1 @@
|
|||
Subproject commit 0f2cf9f36d5653f3b7c836c6b2ceb9a09b737216
|
||||
Subproject commit 06e1a72d039d478a3fcf1341c1f7db1cae75b0e9
|
|
@ -4,12 +4,17 @@
|
|||
# Version: 1.0
|
||||
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
||||
########################################################################
|
||||
# == Transform incoming G1 TX into IPFS ZenTAG ==
|
||||
# SCAN NODE G1 Wallet FOR "ZEN" Command received (or pending) TX/IN
|
||||
MY_PATH="`dirname \"$0\"`" # relative
|
||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||
ME="${0##*/}"
|
||||
echo "
|
||||
########################################################################
|
||||
# \\///
|
||||
# qo-op
|
||||
#############
|
||||
############# $ME DELAY
|
||||
########################################################################
|
||||
# ex: ./$ME \"10 days\"
|
||||
# SCAN NODE G1 Wallet FOR ZEN Command received (or pending) TX/IN
|
||||
########################################################################
|
||||
# _(_)_ _(_)_
|
||||
# @@@@ (_)@(_) @@@@ (_)@(_) @@@@
|
||||
|
@ -21,17 +26,12 @@
|
|||
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
# [ASTROPORT](https://astroport.com)
|
||||
########################################################################
|
||||
MY_PATH="`dirname \"$0\"`" # relative
|
||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||
ME="${0##*/}"
|
||||
########################################################################
|
||||
|
||||
if [[ ! $(which silkaj) ]]; then
|
||||
echo "$USER please Install SILKAJ !!" && exit 1
|
||||
fi
|
||||
"
|
||||
DELAY="$1"
|
||||
|
||||
# GET DUNITER SERVER
|
||||
DUNITERURL="https://$($MY_PATH/tools/duniter_getnode.sh)"
|
||||
DUNITERNODE=$($MY_PATH/tools/duniter_getnode.sh)
|
||||
DUNITERURL="https://$DUNITERNODE"
|
||||
|
||||
IPFSNODEID=$(ipfs id -f='<id>\n')
|
||||
[[ $IPFSNODEID == "" ]] && echo "$USER Please Install IPFS !!" && exit 1
|
||||
|
@ -41,7 +41,6 @@ IPFSNODEID=$(ipfs id -f='<id>\n')
|
|||
|
||||
#########################################################################################################
|
||||
# GET G1 PUBKEY FROM SCUTTLEBUTT or $2 (DEBUG)
|
||||
DELAY=$1
|
||||
[[ $DELAY == "" ]] && DELAY="30 days" && echo "*** HELP ***" && echo "./$ME \"duration\" (default $DELAY)" && echo "************" && echo
|
||||
DELAYUNIT=$(echo $DELAY | cut -d ' ' -f 2)
|
||||
|
||||
|
@ -64,14 +63,17 @@ fi
|
|||
[[ "$NODE_G1PUBKEY" == "" ]] && echo "$USER Missing ~/.ssb/secret : Please Install Scuttlebutt server !" && exit 1;
|
||||
|
||||
#########################################################################################################
|
||||
echo "CHECKING G1WALLET LAST TX/IN ($DELAY)"
|
||||
echo "======================================="
|
||||
echo "DUNITER URL = $DUNITERURL"
|
||||
echo "IPFS ID = $IPFSNODEID"
|
||||
|
||||
echo "G1 PUBKEY = $NODE_G1PUBKEY"
|
||||
echo "SSB ID = %$ssbpub.ed25519"
|
||||
echo "IPFS ID = $IPFSNODEID"
|
||||
# SPECIAL ONE LINE BASH BONUS
|
||||
# HOW MUCH = silkaj -p $($MY_PATH/tools/duniter_getnode.sh) balance $(cat ~/.ssb/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)"
|
||||
echo "
|
||||
#############################################
|
||||
# GET G1 WALLET AMOUNT
|
||||
silkaj -p $DUNITERNODE balance $NODE_G1PUBKEY
|
||||
#############################################"
|
||||
echo "Checking G1 Wallet received TX ($DELAY) for ZEN command"
|
||||
|
||||
# PREPARE TIMESTAMP LIMITS
|
||||
TIMEBEFORE=$(date -u --date="-$DELAY" +"%s")
|
||||
|
@ -109,11 +111,9 @@ if [[ $DELAYUNIT != "minutes" && $DELAYUNIT != "minute" ]]; then
|
|||
###### CREATE ZEN VALUE IN IPFS #########
|
||||
[[ $CMD == "ZEN" ]] && $MY_PATH/zen_MAKE.sh $ZEN $TXhash $ISSUER
|
||||
############################################
|
||||
echo "DEBUG! $MY_PATH/zen_MAKE.sh $ZEN $TXhash $ISSUER"
|
||||
############################################
|
||||
else
|
||||
# else
|
||||
# STILL OLD TX
|
||||
[[ $TXhash != "" ]] && echo "ALREADY TREATED TX/IN: $TXhash $(cat ~/.zen/scan/zen.$TXhash)" || echo "NO TX"
|
||||
# [[ $TXhash != "" ]] && echo "ALREADY TREATED TX/IN: $TXhash $(cat ~/.zen/scan/zen.$TXhash)" || echo "NO TX"
|
||||
fi
|
||||
((line++))
|
||||
done
|
||||
|
@ -142,12 +142,12 @@ else
|
|||
###### CREATE ZEN VALUE IN IPFS #########
|
||||
[[ $CMD == "ZEN" ]] && $MY_PATH/zen_MAKE.sh $ZEN $TXhash $ISSUER
|
||||
############################################
|
||||
echo "DEBUG! $MY_PATH/zen_MAKE.sh $ZEN $TXhash $ISSUER"
|
||||
############################################
|
||||
else
|
||||
# else
|
||||
# STILL OLD TX
|
||||
[[ $TXhash != "" ]] && echo "ALREADY TREATED TX/IN: $TXhash $(cat ~/.zen/scan/zen.$TXhash)" || echo "NO TX"
|
||||
# [[ $TXhash != "" ]] && echo "ALREADY TREATED TX/IN: $TXhash $(cat ~/.zen/scan/zen.$TXhash)" || echo "NO TX"
|
||||
fi
|
||||
((line++))
|
||||
done
|
||||
fi
|
||||
echo "FINISH"
|
||||
exit 0
|
|
@ -6,15 +6,35 @@
|
|||
########################################################################
|
||||
MY_PATH="`dirname \"$0\"`" # relative
|
||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||
ME="${0##*/}"
|
||||
echo "
|
||||
########################################################################
|
||||
# \\///
|
||||
# qo-op
|
||||
#############
|
||||
##########################
|
||||
############# $ME ZEN TXHASH PASSENGER READZEN PARKZEN
|
||||
########################################################################
|
||||
# ./zen_MAKE.sh $ZEN $TXHASH
|
||||
# Create ~/.zen/tag/... & IPNS key publish
|
||||
# ex: ./$ME 1000 TEST ./myfile.wav 1 10
|
||||
# IPFS DATASTRUCTURE ~/.zen/tag/sha256sum(_tag.uid)
|
||||
########################################################################
|
||||
# _(_)_ _(_)_
|
||||
# @@@@ (_)@(_) @@@@ (_)@(_) @@@@
|
||||
# @@()@@ wWWWw (_)\ @@()@@ wWWWw (_)\ @@()@@ wWWWw
|
||||
# @@@@ (___) \|/ @@@@ (___) \|/ @@@@ (___)
|
||||
# / Y \| / Y \| / Y
|
||||
# \ | \ |/ | / \ | \ |/ | / \ | \ |/
|
||||
# \\|// \\|/// \\\|// \\|// \\|/// \\\|// \\|// \\|///
|
||||
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
# [ASTROPORT](https://astroport.com)
|
||||
########################################################################
|
||||
"
|
||||
ZEN="$1" # Zen amount
|
||||
TXHASH="$2" # G1 TX HASH
|
||||
PASSENGER="$3" # /path/file.ext to include into ZenTag (add to IPFS datastructure)
|
||||
READ="$4" # Zen amount asked to allow passenger reading
|
||||
PARK="$5" # Zen amount payed for IPFS PIN by passenger everyday
|
||||
[[ $READ == "" ]] && READ=1
|
||||
[[ $PARK == "" ]] && PARK=10
|
||||
|
||||
########################################################################
|
||||
# ZenTag is an IPFS/IPNS datastructure put into IPFS, publish
|
||||
# ~~~ Draft ~~~~
|
||||
|
@ -25,25 +45,23 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
|||
# _g1.node.creator # G1SSB wallet pubkey
|
||||
# _g1.issuer # G1TX ISSUER pubkey
|
||||
# _g1.txhash # G1TX HASH
|
||||
# _ipfs.node.creator # NODE IPFS ID
|
||||
# _ipfs.node.creatorcat /dev/ttyACM0 | while read line; do # NODE IPFS ID
|
||||
# _ipfs.publishkey.BB.aes # BB SYMcypher of IPNS publish key
|
||||
# _ipfs.publishkey.crypt # G1SSB ASYMcypher of IPNS publish key
|
||||
# _tag.BB.sha # BB sha256sum
|
||||
# _tag.BB.sha # BB sha512sum
|
||||
# _tag.uid # ZenTag UID
|
||||
# _tag.zen # ZentTag balance
|
||||
# _ipns # /ipns/ address
|
||||
# _passenger.filename # Passenger filename
|
||||
# _passenger.ipfs.crypt # G1SSB cyphered IPFS Passenger link
|
||||
# _passenger.read # Zen value asked for READING
|
||||
# _passenger.park # Zen value paid for PARKING
|
||||
# TODO: Could be converted into yaml or json if you like
|
||||
########################################################################
|
||||
ZEN="$1" # Zen amount
|
||||
TXHASH="$2" # G1 TX HASH
|
||||
PASSENGER="$3" # /path/file.ext to include into ZenTag (add to IPFS datastructure)
|
||||
|
||||
# ACTIVATE G1 <=> ZEN STRICT RELATION
|
||||
# G1TX HASH CONTROL
|
||||
|
||||
# UNCOMMENT TO ACTIVATE (G1 <=> ZEN) STRICT RELATION
|
||||
#[[ ! -f ~/.zen/scan/zen.$TXHASH ]] && echo "ERROR# UNKNOWN TX $TXHASH !!" && exit 1
|
||||
# G1TX ISSUER CONTROL
|
||||
#ISSUER=$(cat ~/.zen/scan/zen.$TXHASH)
|
||||
#[[ $ISSUER == "" ]] && echo "ERROR# NO ISSUER FOUND FOR TX $TXHASH !!" && exit 1
|
||||
|
||||
|
@ -72,7 +90,7 @@ done
|
|||
|
||||
# PASSWORD FOR WRITE ACTION
|
||||
BB=$($MY_PATH/tools/diceware.sh 4 | xargs);
|
||||
BBH=$(echo -n "$BB" | sha256sum | cut -d ' ' -f 1)
|
||||
BBH=$(echo -n "$BB" | sha512sum | cut -d ' ' -f 1)
|
||||
|
||||
########################################################################
|
||||
# CREATE ZENTAG FILES DATA STRUCTURE
|
||||
|
@ -103,11 +121,11 @@ $MY_PATH/tools/natools.py encrypt -p $NODE_G1PUBKEY -i ~/.ipfs/keystore/${AA}.ke
|
|||
|
||||
#######################################################################
|
||||
# Symetric Encrypt and Decrypt with openssl
|
||||
# openssl aes-256-cbc -k "$BB" -salt -in file -out file.aes # Encrypt
|
||||
# openssl aes-256-cbc -k "$BB" -d -salt -in file.aes -out file # Decrypt
|
||||
# tar zip and encrypt a whole directory #
|
||||
# tar -zcf - directory | openssl aes-128-cbc -k "$BB" -salt -out directory.tar.gz.aes # Encrypt
|
||||
# openssl aes-128-cbc -k "$BB" -d -salt -in directory.tar.gz.aes | tar -xz -f - # Decrypt
|
||||
# openssl aes-256-cbc -pbkdf2 -k "$BB" -salt -in file -out file.aes # Encrypt
|
||||
# openssl aes-256-cbc -pbkdf2 -k "$BB" -d -salt -in file.aes -out file # Decrypt
|
||||
# tar.gz and encrypt a whole directory #
|
||||
# tar -zcf - directory | openssl aes-128-cbc -pbkdf2 -k "$BB" -salt -out directory.tar.gz.aes # Encrypt
|
||||
# openssl aes-128-cbc -pbkdf2 -k "$BB" -d -salt -in directory.tar.gz.aes | tar -xz -f - # Decrypt
|
||||
#######################################################################
|
||||
# [[ -f $PASSENGER ]] && openssl aes-256-cbc -k "$BB" -salt -in $PASSENGER -out ~/.zen/tag/${AAH}/passenger.aes
|
||||
# [[ -d $PASSENGER ]] && tar -zcf - $PASSENGER | openssl aes-128-cbc -k "$BB" -salt -out ~/.zen/tag/${AAH}/passenger.tgz.aes
|
||||
|
@ -123,11 +141,14 @@ if [[ -f $PASSENGER ]]; then
|
|||
openssl aes-256-cbc -pbkdf2 -k "$BB" -salt -in ~/.zen/tag/${AAH}/_passenger.ipfs -out ~/.zen/tag/${AAH}/_passenger.ipfs.BB.aes
|
||||
# Delete cleartext _passenger.ipfs
|
||||
rm -r ~/.zen/tag/${AAH}/_passenger.ipfs
|
||||
# FILE ZEN ECONOMY
|
||||
echo "$READ" > ~/.zen/tag/${AAH}/_passenger.read
|
||||
echo "$PARK" > ~/.zen/tag/${AAH}/_passenger.park
|
||||
fi
|
||||
|
||||
echo "
|
||||
##################################################################
|
||||
# READ PASSENGER $PASSENGERNAME
|
||||
# READ PASSENGER $PASSENGERNAME :: READ=$READ, PARK=$PARK Zen
|
||||
# Get _passenger.ipfs with NODE CREATOR secret.dunikey
|
||||
$MY_PATH/tools/natools.py decrypt --pubsec -k ~/.ssb/secret.dunikey -i ~/.zen/tag/${AAH}/_passenger.ipfs.crypt -o /tmp/_passenger.ipfs
|
||||
|
||||
|
@ -135,7 +156,8 @@ $MY_PATH/tools/natools.py decrypt --pubsec -k ~/.ssb/secret.dunikey -i ~/.zen/ta
|
|||
openssl aes-256-cbc -pbkdf2 -k \"$BB\" -d -salt -in ~/.zen/tag/${AAH}/_passenger.ipfs.BB.aes -out /tmp/_passenger.ipfs
|
||||
|
||||
# IPFS get file and read with VLC
|
||||
ipfs get -o /tmp /ipfs/$(cat /tmp/_passenger.ipfs)/$(cat ~/.zen/tag/${AAH}/_passenger.filename) && vlc /tmp/$(cat ~/.zen/tag/${AAH}/_passenger.filename) 2>/dev/null
|
||||
ipfs get -o /tmp /ipfs/$IPASSENGER/$PASSENGERNAME && vlc /tmp/$PASSENGERNAME 2>/dev/null
|
||||
# ipfs get -o /tmp /ipfs/$(cat /tmp/_passenger.ipfs)/$(cat ~/.zen/tag/${AAH}/_passenger.filename) && vlc /tmp/$(cat ~/.zen/tag/${AAH}/_passenger.filename) 2>/dev/null
|
||||
##################################################################"
|
||||
|
||||
###########################################################
|
||||
|
|
|
@ -1,50 +1,44 @@
|
|||
#!/bin/bash
|
||||
################################################################################
|
||||
########################################################################
|
||||
# Author: Fred (support@qo-op.com)
|
||||
# Version: 0.1
|
||||
# Version: 2020.03.20
|
||||
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
||||
###########################################################################################
|
||||
###########################################################################################
|
||||
# Lit les données reçues depuis un lecteur de QR Code branché en USB/SERIE (/dev/ttyACM0)
|
||||
# Interpète les G1QRcodes et les G1Tag (R/W)
|
||||
# Saisie du montant à transférer par pavé numérique
|
||||
###########################################################################################
|
||||
echo "__SUB:tag_READ_XY.sh: QRCODE READER : START"
|
||||
function log () {
|
||||
echo "$line
|
||||
$1" >> /tmp/tag_READ_XY.log
|
||||
}
|
||||
#############################################
|
||||
# No external dependance !!!!
|
||||
#source ./shell/init.sh
|
||||
#source ./shell/functions.sh
|
||||
########################################################################
|
||||
MY_PATH="`dirname \"$0\"`" # relative
|
||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||
ME="${0##*/}"
|
||||
echo "
|
||||
########################################################################
|
||||
# \\///
|
||||
# qo-op
|
||||
############# $ME QREAD QWRITE
|
||||
########################################################################
|
||||
# ex: ./$ME RJ:AAH#J1 BJ:BB#J2
|
||||
# Apply READ value before allow PASSENGER ipfs decoding
|
||||
########################################################################
|
||||
# _(_)_ _(_)_
|
||||
# @@@@ (_)@(_) @@@@ (_)@(_) @@@@
|
||||
# @@()@@ wWWWw (_)\ @@()@@ wWWWw (_)\ @@()@@ wWWWw
|
||||
# @@@@ (___) \|/ @@@@ (___) \|/ @@@@ (___)
|
||||
# / Y \| / Y \| / Y
|
||||
# \ | \ |/ | / \ | \ |/ | / \ | \ |/
|
||||
# \\|// \\|/// \\\|// \\|// \\|/// \\\|// \\|// \\|///
|
||||
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
# [ASTROPORT](https://astroport.com)
|
||||
########################################################################
|
||||
"
|
||||
QREAD="$1"
|
||||
QWRITE="$2"
|
||||
|
||||
|
||||
##############################################
|
||||
# NODE ENVIRONEMENT DETECTION
|
||||
##############################################
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1);
|
||||
IPFSNODEID=$(su $YOU -c "ipfs id -f='<id>\n'")
|
||||
NODE_UIDNA=$(cat "./wallets/.$IPFSNODEID/_uidna")
|
||||
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)
|
||||
|
||||
MY_PATH="`dirname \"$0\"`" # relative
|
||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||
|
||||
SWARM_G1PUBKEY=$(cat "${GPATH}/g1sms.pub.key")
|
||||
SWARM_G1AUTHFILE="${GPATH}/g1sms.priv.key"
|
||||
if [[ ! -f $SWARM_G1AUTHFILE ]]; then echo "ERREUR CLEF DECHIFFRAGE!"; exit; fi
|
||||
|
||||
## INIT NODE G1 PUB & PRIV KEY
|
||||
NODE_G1PUBKEY=$(cat "${GPATH}/g1sms.preoni.pub.key")
|
||||
NODE_G1AUTHFILE="${GPATH}/g1sms.preoni.priv.key"
|
||||
|
||||
|
||||
if [[ ! -e "/dev/ttyACM0" ]]; then echo "Branchez votre lecteur de QR code!"; exit; fi
|
||||
##############################################
|
||||
|
||||
# DOUCHETTE ES TU LA?
|
||||
./shell/tools/4LETTER.scroll.py "G1TX START"
|
||||
./shell/tools/4LETTER.clock.py &
|
||||
clockpid=$!
|
||||
|
||||
# TABLEAU MEMOIRE DE SCAN
|
||||
declare -a act
|
||||
declare -a obj
|
||||
|
|
Loading…
Reference in New Issue