#!/bin/bash # TODO CLEAN IPFS: ipfs pin ls -q --type recursive | xargs ipfs pin rm ########################################################################################### # Script appelé depuis zen_G1TXIN pour créer des QRCode IPNS + Clef associé à un ZenTag # rempli des centimes de June reçues.# ########################################################################################### ########################################################################################### # ZenTag Draft Format # fred@ONELOVE:~/workspace/ZEN$ ipfs ls /ipns/QmZxwgScLyLjitE1mrUFqpTw27gk6tMdfKQ7QTEo28dE2u # QmVkur97Pqpgt7cy71FCNacPd5Z1eD9QVfw5tu4LdXHavk 47 _chain # QmUQcSjQx2bg4cSe2rUZyQi6F8QtJFJb74fWL7D784UWf9 2 _chain.n # QmRPdapkSVeYeRcC6X7freVo8vrGYjKcGsa96V5GsMg36p 20 _chain.nanodate # Qmc5m94Gu7z62RC8waSKkZUrCCBJPyHbkpmGzEePxy2oXJ 1 _chain.prev # Qmb8gYFmno4QeEpaPTi969qQNyVJK9VyfBbsXtyMA3PMow 45 _g1.creator # QmQo6ghBGdkGCnGoB22cYmraR76q44K1mjVXqQQ3UVn2T1 45 _g1.issuer # QmfUFk27ZvHaGfEwBeqResw2qQ9SCu4tsY69SkVuCdWAxB 65 _g1.txhash # QmaKa7FGwmMshE7RACrWAFCsWETu1HcHnV1eak7HcUk6Cs 47 _ipfs.creator # QmfCL14hnVnm3mrYT7fRjveMRTEoSp2axqCVp3JYoxXXgn 1300 _ipfs.publishkey.B.gpg # QmUQ7WsACNYYWAw4QW8hKTCq8MM8oYGV7HJuxW7QTGj9qS 1243 _ipfs.publishkey.crypt # QmdvRknZWSZUyS9SfmFWcvySv1tgi2PTF711rsGPN6ftL1 65 _tag.B.sha # QmXA1zSxA3dh1dxFtkKaH5iomN3BsKMSAo2qhruA58AU81 34 _tag.uid # QmPrumas2N5DuwcqUz9mayAU6oDL2bLjhpkVZ8hCRq9rpx 5 _tag.zen ########################################################################################### ########################################################################################### me=`basename "$0"` ZEN=$1 TXhash=$2 [[ ! -f ~/.zen/scan/zen.$TXhash ]] && echo "TX/IN NON RECONNUE... ARRET" && exit ISSUER=$(cat ~/.zen/scan/zen.$TXhash) ######################################################################################################### IPFSNODEID=$(ipfs id -f='\n') if [[ -f ~/.ipfs/g1.pubsec.dunikey ]]; then NODE_G1PUBKEY=$(cat ~/.ipfs/g1.pubsec.dunikey | grep 'pub:' | cut -d ' ' -f 2) else echo "MISSING NODE_G1PUBKEY ~/.ipfs/g1.pubsec.dunikey ... Ciao" exit fi ######################################################################################################### # CREATE ZEN TAG # ZenTag NAMES AA=$(./diceware.sh 6 | xargs); # Nom = Diceware de 6 mots SHAA=$(echo -n $AA | sha256sum | cut -d ' ' -f 1) RR=$(echo ${AA} | sed s/\ //g ); # Nom concaténé PR=$(echo ${AA} | cut -d ' ' -f 1 ); # Prénom du G1Tag # Create Unique G1tag in all SWARM! TODO BETTER 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 BB=$(./diceware.sh 4 | xargs); SHABB=$(echo -n "$BB" | sha256sum | cut -d ' ' -f 1) #################### # WRITE ZENTAG mkdir -p ~/.zen/tag/${SHAA} echo "CREATING ZenTag ($ZEN zen): ls -al ~/.zen/tag/${SHAA}" echo "$AA | $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.creator # NODE IPFS ID echo "$TXhash" > ~/.zen/tag/${SHAA}/_g1.txhash # HASH G1 TX/IN echo "$NODE_G1PUBKEY" > ~/.zen/tag/${SHAA}/_g1.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 ########################################################### # 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 # QR CODE LECTURE qrencode -s 5 -o ~/.zen/tag/${SHAA}/.QRCODE.pub.png "RJ:${SHAA}#${J}" # QR CODE ECRITURE + ISSUER CYPHER (TODO : SHABB ou BB?) qrencode -s 5 -o ~/.zen/tag/${SHAA}/.QRCODE.priv.png "BJ:${SHABB}#${J}" ############################################################################## # TODO: PRINT LOCAL OR SEND "PRINT TASK" TO DAB MACHINE $ISSUER PREFERING ... # 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 ###