rewriting
This commit is contained in:
parent
47967fb199
commit
fe1a6a28fe
|
@ -2,7 +2,7 @@
|
||||||
########################################################################
|
########################################################################
|
||||||
# Author: Fred (support@qo-op.com)
|
# Author: Fred (support@qo-op.com)
|
||||||
# Version: 0.3
|
# Version: 0.3
|
||||||
# License: GPL (http://www.google.com/search?q=GPL)
|
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
||||||
########################################################################
|
########################################################################
|
||||||
# ASTROPORT COMMAND RECEIVER & DISPACHER
|
# ASTROPORT COMMAND RECEIVER & DISPACHER
|
||||||
# Rise Up by unid@chan && Run corresponding command.sh
|
# Rise Up by unid@chan && Run corresponding command.sh
|
||||||
|
|
2
iptubes
2
iptubes
|
@ -1 +1 @@
|
||||||
Subproject commit 028b6e139da0ce455415622c2595540690e4ce9a
|
Subproject commit 2d1a73c225ef577d6716adaf56e7f714c702198e
|
|
@ -1,17 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
MOTS=$(echo "$1" | grep -E "^\-?[0-9]+$")
|
|
||||||
# Default to 6 words passphrase
|
|
||||||
if [[ "$MOTS" == "" ]]; then MOTS=6; fi
|
|
||||||
WORDCOUNT=${1-$MOTS}
|
|
||||||
# Download the wordlist
|
|
||||||
# wget -nc -O ~/.diceware-wordlist http://world.std.com/%7Ereinhold/diceware.wordlist.asc 2> /dev/null
|
|
||||||
# print a list of the diceware words
|
|
||||||
cat ./diceware-wordlist.txt |
|
|
||||||
awk '/[1-6][1-6][1-6][1-6][1-6]/{ print $2 }' |
|
|
||||||
# randomize the list order
|
|
||||||
shuf --random-source=/dev/urandom |
|
|
||||||
# pick the first n words
|
|
||||||
head -n ${WORDCOUNT} |
|
|
||||||
# pretty print
|
|
||||||
tr '\n' ' '
|
|
||||||
echo
|
|
|
@ -1,11 +1,19 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
########################################################################
|
########################################################################
|
||||||
# Author: Fred (support@qo-op.com)
|
# Author: Fred (support@qo-op.com)
|
||||||
# Version: 0.3
|
# Version: 2020.03.18
|
||||||
# License: GPL (http://www.google.com/search?q=GPL)
|
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
||||||
########################################################################
|
########################################################################
|
||||||
MY_PATH="`dirname \"$0\"`" # relative
|
MY_PATH="`dirname \"$0\"`" # relative
|
||||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
|
########################################################################
|
||||||
|
# \\///
|
||||||
|
# qo-op
|
||||||
|
#############
|
||||||
|
##########################
|
||||||
|
#######################################
|
||||||
|
####################################################
|
||||||
|
########################################################################
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# check /tmp/cmd_received_$SOURCEH and /tmp/cmd_SPAM_$SOURCEH within 1mn
|
# check /tmp/cmd_received_$SOURCEH and /tmp/cmd_SPAM_$SOURCEH within 1mn
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
################################################################################
|
|
||||||
# Author: Fred (support@qo-op.com)
|
|
||||||
# Version: 1.0
|
|
||||||
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
|
||||||
###########################################################################################
|
|
||||||
# ipfs_TASK.sh SYNC SWARM PEERS AND RUN TASKS
|
|
||||||
me=`basename "$0"`
|
|
||||||
IPFSNODEID=$(ipfs id -f='<id>\n')
|
|
||||||
|
|
||||||
########################################################################
|
|
||||||
### IPFS ADD ~/.zen/wallets
|
|
||||||
IWALLETS=$(ipfs add -rHq '~/.zen/wallets' | tail -n 1)
|
|
||||||
|
|
||||||
# CHAIN STATE FOR $IPFSNODEID
|
|
||||||
if [[ -f ~/.zen/wallets/.$IPFSNODEID.chain ]]; then
|
|
||||||
cat ~/.zen/wallets/.$IPFSNODEID.chain > ~/.zen/wallets/.$IPFSNODEID.chain.prev
|
|
||||||
INC=$(cat ~/.zen/wallets/.$IPFSNODEID.n)
|
|
||||||
((INC++))
|
|
||||||
echo $INC > ~/.zen/wallets/.$IPFSNODEID.n
|
|
||||||
else
|
|
||||||
echo "" > ~/.zen/wallets/.$IPFSNODEID.chain.prev
|
|
||||||
echo "0" > ~/.zen/wallets/.$IPFSNODEID.n
|
|
||||||
fi
|
|
||||||
### IPFS ADD ~/.zen/wallets
|
|
||||||
echo $IWALLETS > ~/.zen/wallets/.$IPFSNODEID.chain
|
|
||||||
|
|
||||||
IWALLETS=$(ipfs add -rHq '~/.zen/wallets' | tail -n 1)
|
|
||||||
# PUBLISH IPNS NODE WALLETS
|
|
||||||
NODEWALLETS=$(ipfs name publish --quieter /ipfs/$IWALLETS)
|
|
||||||
echo $IWALLETS
|
|
|
@ -1,38 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
################################################################################
|
|
||||||
# Author: Fred (support@qo-op.com)
|
|
||||||
# Version: 1.0
|
|
||||||
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
|
||||||
###########################################################################################
|
|
||||||
# ipfs_TASK.sh SYNC SWARM PEERS AND RUN TASKS
|
|
||||||
IPFSNODEID=$(ipfs id -f='<id>\n')
|
|
||||||
|
|
||||||
########################################################################
|
|
||||||
### SYNC IPFS SWARM PEERS
|
|
||||||
count=0
|
|
||||||
for id in $(ipfs swarm peers | awk -F '/' '{print $7}');
|
|
||||||
do
|
|
||||||
count=$((count+1))
|
|
||||||
id=$(echo $id | cut -d '.' -f 3 | cut -d '/' -f 1)
|
|
||||||
echo "REFRESH ~/.zen/wallets_swarm/.$id ..."
|
|
||||||
rm -Rf ~/.zen/wallets_swarm/.$id
|
|
||||||
./timeout.sh -t 10 ipfs get --output=~/.zen/wallets_swarm/ /ipns/$id > /dev/null 2>&1
|
|
||||||
done
|
|
||||||
echo "~/.zen/wallets_swarm/ RENEW from $count peers .........FINISH!!!"
|
|
||||||
|
|
||||||
########################################################################
|
|
||||||
# MAKE LOCAL ~/.zen/wallets/.$IPFSNODEID/TASK/ directory
|
|
||||||
[[ ! -d ~/.zen/wallets/.$IPFSNODEID/TASK/ ]] && mkdir -p ~/.zen/wallets/.$IPFSNODEID/TASK/
|
|
||||||
### SEARCH FOR RECEIVED TASK .todo FROM SWARM
|
|
||||||
for todo in $(ls ~/.zen/wallets_swarm/.$IPFSNODEID/TASK/*.todo 2>/dev/null);
|
|
||||||
do
|
|
||||||
|
|
||||||
TODO=$(cat $todo)
|
|
||||||
CMD=$(echo $TODO | cut -d ':' -f 1)
|
|
||||||
SUB=$(echo $TODO | cut -d ':' -f 2)
|
|
||||||
ACTION=$(echo $TODO | cut -d ':' -f 3)
|
|
||||||
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
# ./ipfs_PUBLISH.sh
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
#!/bin/bash
|
||||||
|
########################################################################
|
||||||
|
# Author: Fred (support@qo-op.com)
|
||||||
|
# Version: 2020.03.18
|
||||||
|
# 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
|
||||||
|
########################################################################
|
||||||
|
# \\///
|
||||||
|
# qo-op
|
||||||
|
#############
|
||||||
|
##########################
|
||||||
|
#######################################
|
||||||
|
####################################################
|
||||||
|
########################################################################
|
||||||
|
|
||||||
|
MOTS=$(echo "$1" | grep -E "^\-?[0-9]+$")
|
||||||
|
# Default is 6 words passphrase
|
||||||
|
if [[ "$MOTS" == "" ]]; then MOTS=6; fi
|
||||||
|
WORDCOUNT=${1-$MOTS}
|
||||||
|
# Download the wordlist
|
||||||
|
# wget -nc -O ~/.diceware-wordlist http://world.std.com/%7Ereinhold/diceware.wordlist.asc 2> /dev/null
|
||||||
|
# print a list of the diceware words
|
||||||
|
cat $MY_PATH/diceware-wordlist.txt |
|
||||||
|
awk '/[1-6][1-6][1-6][1-6][1-6]/{ print $2 }' |
|
||||||
|
# randomize the list order
|
||||||
|
shuf --random-source=/dev/urandom |
|
||||||
|
# pick the first n words
|
||||||
|
head -n ${WORDCOUNT} |
|
||||||
|
# pretty print
|
||||||
|
tr '\n' ' '
|
||||||
|
echo
|
|
@ -5,7 +5,7 @@
|
||||||
# Version: 0.1
|
# Version: 0.1
|
||||||
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
||||||
################################################################################
|
################################################################################
|
||||||
# Checks the current block number of /tmp/zen/duniter_nodes.txt (is run in parallel)
|
# Checks the current block number of $DIR/duniter_nodes.txt (is run in parallel)
|
||||||
# and output random (from last synchronized) node
|
# and output random (from last synchronized) node
|
||||||
|
|
||||||
checkonenode()
|
checkonenode()
|
||||||
|
@ -55,18 +55,18 @@ DIR=/tmp/zen/gnodewatch
|
||||||
export DIR
|
export DIR
|
||||||
mkdir -p $DIR/chains
|
mkdir -p $DIR/chains
|
||||||
|
|
||||||
### /tmp/zen/duniter_nodes.txt REFRESH
|
##### $DIR/duniter_nodes.txt REFRESH after 20 minutes #####
|
||||||
find /tmp/zen/ -cmin +20 -type f -name "duniter_*" -exec rm -f '{}' \;
|
find $DIR/ -cmin +20 -type f -name "duniter_*" -exec rm -f '{}' \;
|
||||||
if [[ ! -f /tmp/zen/duniter_nodes.txt ]]; then
|
if [[ ! -f $DIR/duniter_nodes.txt ]]; then
|
||||||
[[ -f /tmp/zen/good.nodes.txt ]] && DUNITER=$(shuf -n 1 /tmp/zen/good.nodes.txt) || DUNITER="g1.duniter.org:443"
|
# Get New BMAS known Nodes list from shuffle one $DIR/good.nodes.txt
|
||||||
# echo "___ REFRESH /tmp/zen/duniter_nodes.txt from $DUNITER ___"
|
[[ -f $DIR/good.nodes.txt ]] && DUNITER=$(shuf -n 1 $DIR/good.nodes.txt) || DUNITER="duniter-g1.p2p.legal:443"
|
||||||
curl -s https://$DUNITER/network/peers | jq '.peers[] | .endpoints' | grep BMAS | awk '{print $2,$3}' | sed s/\"//g | sed s/\,//g | sed s/\ /:/g > /tmp/zen/duniter_nodes.txt
|
curl -s https://$DUNITER/network/peers | jq '.peers[] | .endpoints' | grep BMAS | awk '{print $2,$3}' | sed s/\"//g | sed s/\,//g | sed s/\ /:/g > $DIR/duniter_nodes.txt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Grab the nodes we are actively watching - they will be in bold in the final output
|
# Grab the nodes we are actively watching - they will be in bold in the final output
|
||||||
watched=`grep -v "#" /tmp/zen/duniter_nodes.txt|egrep "\!$"|awk '{print "#" $1 "#"}'`
|
watched=`grep -v "#" $DIR/duniter_nodes.txt|egrep "\!$"|awk '{print "#" $1 "#"}'`
|
||||||
# All nodes we are watching
|
# All nodes we are watching
|
||||||
nodes=`grep -v "#" /tmp/zen/duniter_nodes.txt|awk '{print $1}'`
|
nodes=`grep -v "#" $DIR/duniter_nodes.txt|awk '{print $1}'`
|
||||||
# The index to generate separate file names
|
# The index to generate separate file names
|
||||||
index=0
|
index=0
|
||||||
# Wipe out the output directory
|
# Wipe out the output directory
|
||||||
|
@ -101,6 +101,6 @@ do
|
||||||
done
|
done
|
||||||
|
|
||||||
longchain=$(ls -S $DIR/chains/ | head -n 1)
|
longchain=$(ls -S $DIR/chains/ | head -n 1)
|
||||||
cp $DIR/chains/$longchain /tmp/zen/good.nodes.txt
|
cp $DIR/chains/$longchain $DIR/good.nodes.txt
|
||||||
# WRITE OUT shuffle Duniter Node Sync with longest chain
|
# WRITE OUT shuffle Duniter Node Sync with longest chain
|
||||||
echo $(shuf -n 1 /tmp/zen/good.nodes.txt)
|
echo $(shuf -n 1 $DIR/good.nodes.txt)
|
|
@ -4,11 +4,15 @@
|
||||||
# Version: 1.0
|
# Version: 1.0
|
||||||
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
||||||
########################################################################
|
########################################################################
|
||||||
# This script creates ~/.ssb/secret.dunikey from your scuttlebutt secret
|
# This script creates ~/.ssb/secret.dunikey from SSB secret
|
||||||
# You can use it https://cesium.app / https://silkaj.duniter.org/
|
|
||||||
# Python API https://pypi.org/project/duniterpy/
|
|
||||||
########################################################################
|
########################################################################
|
||||||
[[ ! -f ~/.ssb/secret ]] && echo "Your SSB secret is missing... EXIT" && exit 1
|
MY_PATH="`dirname \"$0\"`" # relative
|
||||||
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
|
########################################################################
|
||||||
|
# \\///
|
||||||
|
# qo-op
|
||||||
|
#############
|
||||||
|
[[ ! -f ~/.ssb/secret ]] && echo "ERROR Your SSB secret is missing... EXIT" && exit 1
|
||||||
rm -f ~/.ssb/secret.dunikey
|
rm -f ~/.ssb/secret.dunikey
|
||||||
ssbpub=$(cat ~/.ssb/secret | grep public\" | cut -d ' ' -f 4 | cut -d '.' -f 1 | sed s/\"//g)
|
ssbpub=$(cat ~/.ssb/secret | grep public\" | cut -d ' ' -f 4 | cut -d '.' -f 1 | sed s/\"//g)
|
||||||
ssbpriv=$(cat ~/.ssb/secret | grep private\" | cut -d ' ' -f 4 | cut -d '.' -f 1 | sed s/\"//g)
|
ssbpriv=$(cat ~/.ssb/secret | grep private\" | cut -d ' ' -f 4 | cut -d '.' -f 1 | sed s/\"//g)
|
||||||
|
@ -20,8 +24,4 @@ Version: 1
|
||||||
pub: $g1pub
|
pub: $g1pub
|
||||||
sec: $g1priv
|
sec: $g1priv
|
||||||
EOF
|
EOF
|
||||||
echo "Your G1 Wallet PubKey is :
|
echo "$g1pub"
|
||||||
$g1pub
|
|
||||||
|
|
||||||
Your KEY is located in ~/.ssb/secret.dunikey
|
|
||||||
Use it with https://cesium.app "
|
|
|
@ -19,7 +19,12 @@
|
||||||
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
# [ASTROPORT](https://astroport.com)
|
# [ASTROPORT](https://astroport.com)
|
||||||
########################################################################
|
########################################################################
|
||||||
me=`basename "$0"`
|
MY_PATH="`dirname \"$0\"`" # relative
|
||||||
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
|
########################################################################
|
||||||
|
# \\///
|
||||||
|
# qo-op
|
||||||
|
#############
|
||||||
|
|
||||||
if [[ ! $(which silkaj) ]]; then
|
if [[ ! $(which silkaj) ]]; then
|
||||||
echo "$USER please Install SILKAJ !!" && exit 1
|
echo "$USER please Install SILKAJ !!" && exit 1
|
||||||
|
|
257
zen/zen_MAKE.sh
257
zen/zen_MAKE.sh
|
@ -1,137 +1,138 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
###########################################################################################
|
########################################################################
|
||||||
# Script appelé depuis zen_G1TXIN pour créer des QRCode IPNS + Clef associé à un ZenTag
|
# Author: Fred (support@qo-op.com)
|
||||||
# rempli des centimes de June reçues.#
|
# Version: 2020.03.18
|
||||||
###########################################################################################
|
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
||||||
###########################################################################################
|
########################################################################
|
||||||
# ZenTag Draft Format
|
MY_PATH="`dirname \"$0\"`" # relative
|
||||||
# fred@ONELOVE:~/workspace/ZEN$ ipfs ls /ipns/QmZxwgScLyLjitE1mrUFqpTw27gk6tMdfKQ7QTEo28dE2u
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
# QmVkur97Pqpgt7cy71FCNacPd5Z1eD9QVfw5tu4LdXHavk 47 _chain
|
########################################################################
|
||||||
# QmUQcSjQx2bg4cSe2rUZyQi6F8QtJFJb74fWL7D784UWf9 2 _chain.n
|
# \\///
|
||||||
# QmRPdapkSVeYeRcC6X7freVo8vrGYjKcGsa96V5GsMg36p 20 _chain.nanodate
|
# qo-op
|
||||||
# Qmc5m94Gu7z62RC8waSKkZUrCCBJPyHbkpmGzEePxy2oXJ 1 _chain.prev
|
#############
|
||||||
# Qmb8gYFmno4QeEpaPTi969qQNyVJK9VyfBbsXtyMA3PMow 45 _g1.creator
|
##########################
|
||||||
# QmQo6ghBGdkGCnGoB22cYmraR76q44K1mjVXqQQ3UVn2T1 45 _g1.issuer
|
########################################################################
|
||||||
# QmfUFk27ZvHaGfEwBeqResw2qQ9SCu4tsY69SkVuCdWAxB 65 _g1.txhash
|
# ./zen_MAKE.sh $ZEN $TXHASH
|
||||||
# QmaKa7FGwmMshE7RACrWAFCsWETu1HcHnV1eak7HcUk6Cs 47 _ipfs.creator
|
# Create ~/.zen/tag/... & IPNS key publish
|
||||||
# QmfCL14hnVnm3mrYT7fRjveMRTEoSp2axqCVp3JYoxXXgn 1300 _ipfs.publishkey.B.gpg
|
########################################################################
|
||||||
# QmUQ7WsACNYYWAw4QW8hKTCq8MM8oYGV7HJuxW7QTGj9qS 1243 _ipfs.publishkey.crypt
|
########################################################################
|
||||||
# QmdvRknZWSZUyS9SfmFWcvySv1tgi2PTF711rsGPN6ftL1 65 _tag.B.sha
|
# ZenTag is an IPFS/IPNS datastructure put into IPFS, publish
|
||||||
# QmXA1zSxA3dh1dxFtkKaH5iomN3BsKMSAo2qhruA58AU81 34 _tag.uid
|
# ~~~ Draft ~~~~
|
||||||
# QmPrumas2N5DuwcqUz9mayAU6oDL2bLjhpkVZ8hCRq9rpx 5 _tag.zen
|
# _chain # ZenTag IPFS Hash
|
||||||
###########################################################################################
|
# _chain.n # Sequence Number
|
||||||
# Symetric Encrypt and Decrypt
|
# _chain.nanodate # Current nanodate
|
||||||
# openssl aes-256-cbc -k "$BB" -salt -in file -out file.aes
|
# _chain.prev # Previous IPFS Hash
|
||||||
# openssl aes-256-cbc -k "$BB" -d -salt -in file.aes -out file
|
# _g1.node.creator # G1SSB wallet pubkey
|
||||||
# tar zip and encrypt a whole directory
|
# _g1.issuer # G1TX ISSUER pubkey
|
||||||
|
# _g1.txhash # G1TX HASH
|
||||||
|
# _ipfs.node.creator # NODE IPFS ID
|
||||||
|
# _ipfs.publishkey.B.gpg # B cyphered IPNS publish key
|
||||||
|
# _ipfs.publishkey.crypt # G1SSB cyphered IPNS publish key
|
||||||
|
# _tag.B.sha # B sha256sum
|
||||||
|
# _tag.uid # ZenTag UID
|
||||||
|
# _tag.zen # ZentTag balance
|
||||||
|
# TODO: Could be converted into yaml or json if you like
|
||||||
|
########################################################################
|
||||||
|
########################################################################
|
||||||
|
# Clean IPFS repo # ipfs pin ls -q --type recursive | xargs ipfs pin rm
|
||||||
|
########################################################################
|
||||||
|
ZEN="$1" # Zen amount
|
||||||
|
TXHASH="$2" # G1 TX HASH
|
||||||
|
PASSENGER="$3" # /path/file.ext to include into ZenTag (add to IPFS datastructure)
|
||||||
|
|
||||||
|
# G1TX HASH CONTROL
|
||||||
|
[[ ! -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
|
||||||
|
|
||||||
|
# IPFSNODEID
|
||||||
|
########################################################################
|
||||||
|
IPFSNODEID=$(ipfs id -f='<id>\n')
|
||||||
|
########################################################################
|
||||||
|
|
||||||
|
# ~/.ssb/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)
|
||||||
|
########################################################################
|
||||||
|
|
||||||
|
# CREATE ZEN TAG : name AA + key BB
|
||||||
|
########################################################################
|
||||||
|
AA=$($MY_PATH/tools/diceware.sh 6 | xargs); # ZenTag Name = Diceware 6 words
|
||||||
|
AAH=$(echo -n ${AA} | sha256sum | cut -d ' ' -f 1) # ZenTag Name SHA256
|
||||||
|
|
||||||
|
RR=$(echo ${AA} | sed s/\ //g ); # Name without space = IPNS key name
|
||||||
|
|
||||||
|
# TODO CHECK UNIQUE AA
|
||||||
|
# Create Unique Zentag in all IPFS SWARM!
|
||||||
|
# $(grep -Rwl "$AAH" ./wallets_swarm/.*/_zentag.list)
|
||||||
|
# AA=$(./diceware.sh 6 | xargs);
|
||||||
|
# AAH=$(echo -n ${AA} | sha256sum | cut -d ' ' -f 1)
|
||||||
|
# RR=$(echo ${AA} | sed s/\ //g );
|
||||||
|
# PR=$(echo ${AA} | cut -d ' ' -f 1 );
|
||||||
|
#done
|
||||||
|
|
||||||
|
# PASSWORD FOR HUMAN ACTION
|
||||||
|
BB=$($MY_PATH/tools/diceware.sh 4 | xargs);
|
||||||
|
BBH=$(echo -n "$BB" | sha256sum | cut -d ' ' -f 1)
|
||||||
|
##################################################################################
|
||||||
|
# CREATE ZENTAG FILES DATA STRUCTURE
|
||||||
|
mkdir -p ~/.zen/tag/${AAH}
|
||||||
|
echo "CREATING ZenTag, Value = $ZEN Zen (ls -al ~/.zen/tag/${AAH})"
|
||||||
|
echo "Name: $AA | Key: $BB"
|
||||||
|
|
||||||
|
# ZenTag Create files
|
||||||
|
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 "$TXHASH" > ~/.zen/tag/${AAH}/_g1.txhash # HASH G1 TX/IN
|
||||||
|
echo "$NODE_G1PUBKEY" > ~/.zen/tag/${AAH}/_g1.node.creator # CREATOR IPFS NODE G1PUBKEY
|
||||||
|
echo "$ISSUER" > ~/.zen/tag/${AAH}/_g1.issuer # TX ISSUER G1PUBKEY
|
||||||
|
|
||||||
|
####################################################
|
||||||
|
# ${RR} IPNS publishkey CYPHER *BB & **NODE_G1PUBKEY
|
||||||
|
[[ ! -f ~/.ipfs/keystore/${RR} ]] && J=$(ipfs key gen -t rsa -s 2048 ${RR})
|
||||||
|
# WRITE BBH for QRCode BB verification
|
||||||
|
echo "$BBH" > ~/.zen/tag/${AAH}/_tag.B.sha
|
||||||
|
# BB pgp symetric publishkey
|
||||||
|
echo "${BB}" | gpg -q --output ~/.zen/tag/${AAH}/_ipfs.publishkey.B.gpg --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 ~/.ipfs/keystore/${RR}
|
||||||
|
# GIVE IPFS CREATOR NODE ACCESS TO ZEN TAG
|
||||||
|
$MY_PATH/tools/natools.py encrypt -p $NODE_G1PUBKEY -i ~/.ipfs/keystore/${RR} -o ~/.zen/tag/${AAH}/_ipfs.publishkey.crypt
|
||||||
|
#######################################################################
|
||||||
|
# TODO 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 -salt -out directory.tar.gz.aes # Encrypt
|
# tar -zcf - directory | openssl aes-128-cbc -salt -out directory.tar.gz.aes # Encrypt
|
||||||
# openssl aes-128-cbc -d -salt -in directory.tar.gz.aes | tar -xz -f - # Decrypt
|
# openssl aes-128-cbc -d -salt -in directory.tar.gz.aes | tar -xz -f - # Decrypt
|
||||||
###########################################################################################
|
#######################################################################
|
||||||
# To clean your IPFS repo:
|
[[ -f $PASSENGER ]] && openssl aes-256-cbc -k "$BB" -salt -in $PASSENGER -out ~/.zen/tag/${AAH}/passenger.aes
|
||||||
# ipfs pin ls -q --type recursive | xargs ipfs pin rm
|
[[ -d $PASSENGER ]] && tar -zcf - $PASSENGER | openssl aes-128-cbc -k "$BB" -salt -out ~/.zen/tag/${AAH}/passenger.tar.gz.aes
|
||||||
###########################################################################################
|
|
||||||
me=`basename "$0"` # Script name
|
|
||||||
ZEN="$1" # Initial Zen amount
|
|
||||||
TXhash="$2" # Contains G1 TX HASH
|
|
||||||
File="$3" # Contains G1 TX HASH
|
|
||||||
|
|
||||||
[[ ! -f ~/.zen/scan/zen.$TXhash ]] && echo "ERROR Unknown TX... EXIT" && exit 1
|
###########################################################
|
||||||
ISSUER=$(cat ~/.zen/scan/zen.$TXhash) # Get G1 wallet issuer pubkey
|
# TAG IPFS STORAGE & G1Tag IPNS PUBLISHING
|
||||||
[[ $ISSUER == "" ]] && echo "# NO SCANNED TX.... PLEASE USE ./zen_G1TXtoZenTag.sh" && exit 1
|
###########################################################
|
||||||
|
NANODATE=$(date -u +%s%N)
|
||||||
|
echo "0" > ~/.zen/tag/${AAH}/_chain.n # Tag modification number (0 first)
|
||||||
|
echo "$NANODATE" > ~/.zen/tag/${AAH}/_chain.nanodate # Nanodate notification
|
||||||
|
|
||||||
#########################################################################################################
|
# Activate ZenTag CHAIN
|
||||||
IPFSNODEID=$(ipfs id -f='<id>\n')
|
I=$(ipfs add -qr ~/.zen/tag/${AAH} | tail -n 1)
|
||||||
#########################################################################################################
|
echo "${I}" > ~/.zen/tag/${AAH}/_chain
|
||||||
|
cp -f ~/.zen/tag/${AAH}/_chain ~/.zen/tag/${AAH}/_chain.prev
|
||||||
#########################################################################################################
|
|
||||||
if [[ -f ~/.ssb/secret.dunikey ]]; then
|
|
||||||
NODE_G1PUBKEY=$(cat ~/.ssb/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
|
|
||||||
else
|
|
||||||
echo "MISSING your G1 KEY ~/.ssb/secret.dunikey ... Please run ./secret2dunikey.sh ... Ciao"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
#########################################################################################################
|
|
||||||
|
|
||||||
#########################################################################################################
|
|
||||||
# CREATE ZEN TAG
|
|
||||||
# ZenTag NAMES
|
|
||||||
AA=$(./diceware.sh 6 | xargs); # ZenTag Name = Diceware 6 words
|
|
||||||
SHAA=$(echo -n $AA | sha256sum | cut -d ' ' -f 1) # ZenTag Name SHA256
|
|
||||||
RR=$(echo ${AA} | sed s/\ //g ); # Name without space
|
|
||||||
PR=$(echo ${AA} | cut -d ' ' -f 1 ); # ZenTag short name
|
|
||||||
|
|
||||||
# Create Unique Zentag in all IPFS SWARM! TODO CHANGE METHOD
|
|
||||||
while [[ -f ~/.zen/tag/${SHAA} ]]; do
|
|
||||||
AA=$(./diceware.sh 6 | xargs);
|
|
||||||
SHAA=$(echo -n $AA | sha256sum | cut -d ' ' -f 1)
|
|
||||||
RR=$(echo ${AA} | sed s/\ //g );
|
|
||||||
PR=$(echo ${AA} | cut -d ' ' -f 1 );
|
|
||||||
done
|
|
||||||
|
|
||||||
# PASSWORD FOR HUMAN ACTION
|
# IPFS Hash for Immutable G1tag data
|
||||||
BB=$(./diceware.sh 4 | xargs);
|
J=$(ipfs name publish -k ${RR} --quieter /ipfs/${I})
|
||||||
SHABB=$(echo -n "$BB" | sha256sum | cut -d ' ' -f 1)
|
echo "${J}" > ~/.zen/tag/${AAH}/_ipns
|
||||||
##################################################################################
|
|
||||||
# CREATE ZENTAG FILES DATA STRUCTURE (TODO: Convert into yaml or json if you like)
|
|
||||||
mkdir -p ~/.zen/tag/${SHAA}
|
|
||||||
echo "CREATING ZenTag, Value = $ZEN Zen (ls -al ~/.zen/tag/${SHAA})"
|
|
||||||
echo "Name: $AA | Key: $BB"
|
|
||||||
# ZenTag Create files
|
|
||||||
echo "$AA" > ~/.zen/tag/${SHAA}/_tag.uid # Nom du ZenTAG
|
|
||||||
echo "$ZEN" > ~/.zen/tag/${SHAA}/_tag.zen # Tag ZEN amount
|
|
||||||
echo "${IPFSNODEID}" > ~/.zen/tag/${SHAA}/_ipfs.node.creator # NODE IPFS ID
|
|
||||||
echo "$TXhash" > ~/.zen/tag/${SHAA}/_g1.txhash # HASH G1 TX/IN
|
|
||||||
echo "$NODE_G1PUBKEY" > ~/.zen/tag/${SHAA}/_g1.node.creator # CREATOR IPFS NODE G1PUBKEY
|
|
||||||
echo "$ISSUER" > ~/.zen/tag/${SHAA}/_g1.issuer # TX ISSUER G1PUBKEY
|
|
||||||
|
|
||||||
####################################################
|
|
||||||
# ${RR} IPNS publishkey CYPHER *BB & **NODE_G1PUBKEY
|
|
||||||
[[ ! -f ~/.ipfs/keystore/_${RR} ]] && J=$(ipfs key gen -t rsa -s 2048 _${RR})
|
|
||||||
# WRITE SHABB for QRCode BB verification
|
|
||||||
echo "$SHABB" > ~/.zen/tag/${SHAA}/_tag.B.sha
|
|
||||||
# BB pgp symetric publishkey
|
|
||||||
echo "${BB}" | gpg -q --output ~/.zen/tag/${SHAA}/_ipfs.publishkey.B.gpg --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 ~/.ipfs/keystore/_${RR}
|
|
||||||
# GIVE IPFS CREATOR NODE ACCESS TO ZEN TAG
|
|
||||||
./natools.py encrypt -p $NODE_G1PUBKEY -i ~/.ipfs/keystore/_${RR} -o ~/.zen/tag/${SHAA}/_ipfs.publishkey.crypt
|
|
||||||
|
|
||||||
###########################################################
|
echo "ZenTag Done check it with :: ipfs ls /ipns/${J}"
|
||||||
# TAG IPFS STORAGE & G1Tag IPNS PUBLISHING
|
|
||||||
###########################################################
|
|
||||||
# TAG CHAIN DATA
|
|
||||||
echo "0" > ~/.zen/tag/${SHAA}/_chain.n # Tag modification number (0 first)
|
|
||||||
NANODATE=$(date -u +%s%N)
|
|
||||||
echo "$NANODATE" > ~/.zen/tag/${SHAA}/_chain.nanodate # Nanodate notification
|
|
||||||
|
|
||||||
echo "" > ~/.zen/tag/${SHAA}/_chain.prev
|
|
||||||
I=$(ipfs add -qr ~/.zen/tag/${SHAA} | tail -n 1)
|
|
||||||
# MEMORIZE FOR CHAINING FUTURE CHANGES
|
|
||||||
echo "${I}" > ~/.zen/tag/${SHAA}/_chain
|
|
||||||
# Activate chain
|
|
||||||
I=$(ipfs add -qr ~/.zen/tag/${SHAA} | tail -n 1)
|
|
||||||
|
|
||||||
# IPFS Hash for Immutable G1tag data
|
|
||||||
J=$(ipfs name publish -k _${RR} --quieter /ipfs/${I})
|
|
||||||
echo "${J}" > ~/.zen/tag/${SHAA}/_ipns
|
|
||||||
|
|
||||||
echo "ZENTAG MADE: ipfs ls /ipns/${J}"
|
|
||||||
ipfs ls /ipns/${J}
|
|
||||||
####################################################################################
|
|
||||||
### G1TAG PRINT TYPE:DATA:IPNS
|
### G1TAG PRINT TYPE:DATA:IPNS
|
||||||
# QR CODE LECTURE
|
####################################################################################
|
||||||
qrencode -s 5 -o ~/.zen/tag/${SHAA}/.QRCODE.pub.png "RJ:${SHAA}#${J}"
|
# READ QRCODE
|
||||||
# QR CODE ECRITURE + ISSUER CYPHER (TODO : SHABB ou BB?)
|
qrencode -s 5 -o ~/.zen/tag/${AAH}/_QRCODE.read.png "RJ:${AAH}#${J}"
|
||||||
qrencode -s 5 -o ~/.zen/tag/${SHAA}/.QRCODE.priv.png "BJ:${BB}#${J}"
|
# WRITE QRCODE
|
||||||
|
qrencode -s 5 -o ~/.zen/tag/${AAH}/_QRCODE.write.png "BJ:${BB}#${J}"
|
||||||
##############################################################################
|
|
||||||
# TODO: PRINT LOCAL OR SEND "PRINT TASK" TO DAB MACHINE $ISSUER PREFERING ...
|
exit 0
|
||||||
# DESTNODE=$(grep -Rwl "$ISSUER" ~/.zen/wallets_swarm/*/_pub)
|
|
||||||
# [[ $DESTNODE != "" ]] && DESNODEIPFSFILE=$(echo $DESTNODE | cut -d '_' -f 1)_ipfsid || exit
|
|
||||||
# DESTIPFS=$(cat $DESNODEIPFSFILE)
|
|
||||||
# ./natools.py encrypt -p $DESTIPFS -i ~/.zen/tag/${SHAA}/.QRCODE.priv.png -o ~/.zen/tag/${SHAA}/.QRCODE.crypt.png && rm ~/.zen/tag/${SHAA}/.QRCODE.priv.png
|
|
||||||
|
|
||||||
# CREATE TASK
|
|
||||||
# mkdir -p ~/.zen/wallets/.$DESTIPFS/TASK/
|
|
||||||
# echo "PRINT:ZENTAG:${J}" > ~/.zen/wallets/.$DESTIPFS/TASK/$NANODATE.$IPFSNODEID.todo
|
|
||||||
# ./ipfs_PUBLISH.sh
|
|
||||||
|
|
||||||
###
|
|
||||||
|
|
Loading…
Reference in New Issue