diff --git a/_chain b/_chain index a1c8920..f09e9e6 100755 --- a/_chain +++ b/_chain @@ -1 +1 @@ -QmWEyZDyn7XMM3pDFCBkDqC6XPAraTSLHbVD3h7geunNWy +QmbVfLJ9UsnyV3Si9UgZVS4srCnL1c2Gqt7XissCV4iC83 diff --git a/_comments b/_comments index 0c75af6..b7bbce3 100755 --- a/_comments +++ b/_comments @@ -178,6 +178,3 @@ OK 2019-12-20: NOW 2019-12-21: Various 2019-12-24: -2019-12-26: SWARMKEY -2019-12-26: ipfs p2p listen /x/$YOU /ip4/127.0.0.1/tcp/80 -2019-12-26: ./wallets/sha256sum(PHONE) diff --git a/_nanodate b/_nanodate index 95fdd35..506b75f 100755 --- a/_nanodate +++ b/_nanodate @@ -1 +1 @@ -1577378596986046001 +1577203467543924569 diff --git a/_publishkey.gpg b/_publishkey.gpg index 2b70499..d9c30e2 100755 Binary files a/_publishkey.gpg and b/_publishkey.gpg differ diff --git a/shell/cron_IPFS_open_SSH.sh b/shell/cron_IPFS_open_SSH.sh index 0a8cf32..2961cc7 100755 --- a/shell/cron_IPFS_open_SSH.sh +++ b/shell/cron_IPFS_open_SSH.sh @@ -9,16 +9,12 @@ MY_PATH="`dirname \"$0\"`" # relative MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized if [[ -f $MY_PATH/.install/.GPATH ]]; then source $MY_PATH/.install/.GPATH; fi if [[ -f $MY_PATH/../.install/.GPATH ]]; then source $MY_PATH/../.install/.GPATH; fi -cd $GPATH -if [[ "$USER" != "root" ]]; then echo "Hey, $USER you must at least be admin of your system (sudo $0)"; exit; fi YOU=$(ps aux --sort=+utime | grep ipfs | tail -n 1 | cut -d " " -f 1) +if [[ "$USER" != "root" ]]; then echo "Hey, $USER you must at least be admin of your system (sudo $0)"; exit; fi if [[ "$YOU" == "" || "$YOU" == "root" ]]; then echo "BAD IPFS. Aucune installation IPFS satisfaisante ici... Ciao $YOU !"; exit; fi IPFSNODEID=$(su $YOU -c "ipfs id -f='\n'") -# UIDNA NODE -[[ -f ./wallets/.$IPFSNODEID/$IPFSNODEID.uidna ]] && UIDNA=$(cat ./wallets/.$IPFSNODEID/$IPFSNODEID.uidna) || UIDNA="ssh" -su $YOU -c "ipfs p2p close --all" -su $YOU -c "ipfs p2p listen /x/$UIDNA /ip4/127.0.0.1/tcp/22" -su $YOU -c "ipfs p2p listen /x/$IPFSNODEID /ip4/127.0.0.1/tcp/80" -echo $(su $YOU -c "ipfs p2p ls") +cd $GPATH +su $YOU -c ipfs p2p close --all +su $YOU -c ipfs p2p listen /x/ssh /ip4/127.0.0.1/tcp/22 diff --git a/shell/functions.sh b/shell/functions.sh index b48b1c1..b7367e0 100755 --- a/shell/functions.sh +++ b/shell/functions.sh @@ -309,11 +309,6 @@ log "__SUB:sms_INIT_ACCOUNT: ($1=phone, $2=NOSMS)" UNKNOWN=0 # TODO Optimize GLOBAL/local variables use, use more function array output ?! # Initiate PHONE settings files and values - - # ALL CHANNEL INTO ./wallets/sha256sum(ID) - HASHLINK=$(echo $PHONE | sha256sum | cut -d ' ' -f 1) - # ALL CHANNEL INTO ./wallets/sha256sum(ID) - IPFSNODEIDFILE="./wallets/$PHONE/MASTERPHONE.ipfsid" # Contains G1sms+ NODE IPFS id SMSNODE="./wallets/$PHONE/MASTERPHONE.sms" # Contains G1sms+ SMS phone number PINFILE="./wallets/$PHONE/$PHONE.pin" # Contains phone wallet diceware password @@ -346,11 +341,7 @@ log "__SUB:sms_INIT_ACCOUNT: ($1=phone, $2=NOSMS)" ####################### # Create Account Files ####################### - [[ ! $GPATH ]] && GPATH="." - [[ -d $GPATH/wallets/$PHONE ]] && mv $GPATH/wallets/$PHONE $GPATH/wallets/$HASHLINK && ln -s $GPATH/wallets/$HASHLINK $GPATH/wallets/$PHONE - [[ ! -d $GPATH/wallets/$HASHLINK ]] && mkdir -p $GPATH/wallets/$HASHLINK && ln -s $GPATH/wallets/$HASHLINK $GPATH/wallets/$PHONE - # LINKS ARE NOT REPLICATED INTO IPFS ;) - + mkdir -p "./wallets/$PHONE/" PIN=$(./shell/diceware.sh | xargs) PUBKEY=$(./silkaj/silkaj generate_auth_file --auth-scrypt -salt="$PHONE" -password="$PIN") @@ -386,11 +377,10 @@ log "__SUB:sms_INIT_ACCOUNT: ($1=phone, $2=NOSMS)" ################ echo "$PIN" > "$PINFILE" echo "${GPGPASS}" | gpg -q --output "$GPGPINFILE" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "$PINFILE" - echo "${SWARMKEY}" | gpg -q --output "$GPGPINFILE.swarm" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "$PINFILE" PIN=$(cat "$PINFILE" | xargs) echo "" > "$PINFILE" - echo "314" > "$G1COUNTFILE" + echo "114" > "$G1COUNTFILE" echo "$PUBKEY" > "$PUBKEYFILE" echo "$COIN" > "$UNITFILE" echo "$MASTERPHONE" > "$SMSNODE" @@ -407,46 +397,39 @@ log "__SUB:sms_INIT_ACCOUNT: ($1=phone, $2=NOSMS)" ###################################################################### if [[ ! -f "$GPGPINFILE" ]] then - HASH=$(echo $PHONE | sha256sum | cut -d ' ' -f 1) - # ------------8<------------------ # WALLET MIGRATION -> CRYPT PIN (For Old G1sms clear PIN WALLETs...) - if [[ ! -s "$UIDNAFILE" ]]; then - # ADD NEW PARAMS TO WALLET - ####################### - # 4 derniers chiffres du numéro de téléphone - TAIL=${PHONE:8:4} - # No UIDNA yet. Create new - UIDNA=$(./shell/diceware.sh 1 | xargs) - # Check if already existing among all swarm wallets - while [[ $(grep -Rwl $UIDNA$TAIL ./wallets_swarm/*/*.uidna) ]]; do UIDNA=$(./shell/diceware.sh 1 | xargs); done - echo "$UIDNA$TAIL" > "$UIDNAFILE" - fi - + # ADD NEW PARAMS TO WALLET + ####################### + # 4 derniers chiffres du numéro de téléphone echo "$MASTERPHONE" > "$SMSNODE" + TAIL=${PHONE:8:4} + # No UIDNA yet. Create new + UIDNA=$(./shell/diceware.sh 1 | xargs) + # Check if already existing among all swarm wallets + while [[ $(grep -Rwl $UIDNA$TAIL ./wallets_swarm/*/*.uidna) ]]; do UIDNA=$(./shell/diceware.sh 1 | xargs); done + echo "$UIDNA$TAIL" > "$UIDNAFILE" + PIN=$(cat "$PINFILE" | xargs) log "__SUB:sms_INIT_ACCOUNT: Old G1sms wallet ;) SECURITY HOLE... Chiffrage PGP du PIN !!!" echo "${GPGPASS}" | gpg -q --output "$GPGPINFILE" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "$PINFILE"; - echo "${SWARMKEY}" | gpg -q --output "$GPGPINFILE.swarm" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "$PINFILE"; else # ------------>8------------------ log "__SUB:sms_INIT_ACCOUNT: Déchiffrage PGP PIN..." # GPG decypher PIN # TODO make decypher less stress on filesystem, use /tmp and ramdisk echo "${GPGPASS}" | gpg -d -q --output "$PINFILE" --yes --pinentry-mode loopback --passphrase-fd 0 "$GPGPINFILE" - [[ ! -f $PINFILE ]] && echo "${SWARMKEY}" | gpg -d -q --output "$PINFILE" --yes --pinentry-mode loopback --passphrase-fd 0 "$GPGPINFILE.swarm" PIN=$(cat "$PINFILE" | xargs) echo "" > "$PINFILE"; fi # CYPHER EMAIL FILE - if [[ ! -f "$GPGMAILFILE.swarm" ]]; then + if [[ ! -f "$GPGMAILFILE" ]]; then # ------------8<------------------ # NO .gpg file, CREATING it (OLD G1sms accounts) if [ -f "$MAILFILE" ]; then MAIL=$(cat "$MAILFILE"); echo "${GPGPASS}" | gpg -q --output "$GPGMAILFILE" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "$MAILFILE"; - echo "${SWARMKEY}" | gpg -q --output "$GPGMAILFILE.swarm" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "$MAILFILE"; else MAIL=""; fi @@ -454,7 +437,6 @@ log "__SUB:sms_INIT_ACCOUNT: ($1=phone, $2=NOSMS)" else # Already existing gpg DECODING IT echo "${GPGPASS}" | gpg -d -q --output "$MAILFILE" --yes --pinentry-mode loopback --passphrase-fd 0 "$GPGMAILFILE" - [[ -f "$GPGMAILFILE.swarm" ]] && echo "${SWARMKEY}" | gpg -d -q --output "$MAILFILE" --yes --pinentry-mode loopback --passphrase-fd 0 "$GPGMAILFILE.swarm" MAIL=$(cat "$MAILFILE"); echo "" > "$MAILFILE"; fi diff --git a/shell/init_keys.sh b/shell/init_keys.sh index fa9baf1..b4e1619 100755 --- a/shell/init_keys.sh +++ b/shell/init_keys.sh @@ -21,10 +21,6 @@ YOU=$(ps aux --sort=+utime | grep ipfs | tail -n 1 | cut -d " " -f 1) export GPGPASS=$(cat "/home/$YOU/.ipfs/config" | jq '.Identity.PrivKey' | sed s/\"//g) if [ ! $GPGPASS ]; then echo "FATAL ERROR:: IPFS Node.Identity.PrivKey GPGPASS EMPTY"; exit; fi -# GET SWARM KEY G1sms+ .ipfs/swarm.key -export SWARMKEY=$(cat "/home/$YOU/.ipfs/swarm.key" | tail -n 1) -if [ ! $SWARMKEY ]; then echo "FATAL ERROR:: .ipfs/swarm.key EMPTY"; exit; fi - ################################################################## # G1sms+ Swarm KEYS ################################################################## @@ -35,8 +31,8 @@ if [[ -f "${GPATH}/g1sms.pub.key" && -f "${GPATH}/g1sms.priv.key" ]]; then export NODE_G1PUBKEY=$(cat "${GPATH}/g1sms.pub.key") export NODE_G1PRIVKEYFILE="${GPATH}/g1sms.priv.key" else - echo "ATTENTION!! Vous devez installer une clef de G1 Wallet!!" - ./shell/parle.sh "Il manque les Clefs du portefeuille G1 de votre noeud. Au revoir." + echo "ATTENTION!! Vous devez posséder la clef du G1 Wallet utilisé par le SWARM G1sms!!" + ./shell/parle.sh "Les clefs du portefeuille essaim G1 SMS sont absente. Au revoir." echo "Fichiers manquants:" echo "${GPATH}/g1sms.pub.key" echo "${GPATH}/g1sms.priv.key" diff --git a/shell/sms_AIDE.sh b/shell/sms_AIDE.sh index 7c182dd..0bd21ad 100755 --- a/shell/sms_AIDE.sh +++ b/shell/sms_AIDE.sh @@ -10,21 +10,21 @@ log "X sms_AIDE.sh ($1=phone)" sms_INIT_ACCOUNT "$1" "NOSMS" -MESS="N Pseudo : Création Portefeuille rattaché à Pseudo -S : Synchro Solde -P 06nnnnnnnn 300 : Payer 300 à 06nnnnnnnn +MESS="[Aide] +N Pseudo (membre ou nom de portefeuille) : Création portefeuille U G1/DU/LOVE : Unité -" +S : Solde +P 06nnnnnnnn 300 : Payer 300 à 06nnnnnnnn" # Send response SMS sms_SEND "$1" "$MESS" -MESS="EMAIL moi@email : Email pour commande G1Billets -BILL n : Recevoir 6 G1Billets remplis de n LOVE" +MESS="EMAIL moi@email : Indiquer son email +VIR 50 Pseudo : Virer 50 à Pseudo (membre ou Portefeuille SMS)" sms_SEND "$1" "$MESS" -MESS="VIR 50 Pseudo : Virer 50 à Pseudo (membre ou Portefeuille SMS) -REC 50 Dest S 4 : Virer 50 à Dest, 4 Semaines (J/S/M/A) -Contact : $ADMINPSEUDO ($ADMINPHONE) - https://g1sms.fr" +MESS="REC 50 Dest S 4 : Virer 50 à Dest pendant 4 Semaines (J/S/M/A) +BILL n : Recevoir 6 G1Billets remplis de n LOVE par email! +https://g1sms.fr - $ADMINPSEUDO ($ADMINPHONE)" sms_SEND "$1" "$MESS" log "END sms_AIDE.sh" diff --git a/shell/sms_PAY.sh b/shell/sms_PAY.sh index f2add6a..3edb8c2 100755 --- a/shell/sms_PAY.sh +++ b/shell/sms_PAY.sh @@ -17,8 +17,6 @@ pin=$PIN if [[ $UNKNOWN == "unknown" ]]; then sms_ERROR "$phone" "Porte-monnaie inconnu. Envoyez N (suivi de votre Pseudo membre) pour le créer." exit -else - log "PIN: $pin" fi ########################################################### @@ -42,10 +40,8 @@ if [[ -f "./wallets_swarm/$PHONEDEST/$PHONEDEST.pub" ]] then PUBKEYDEST=$(cat "./wallets_swarm/$PHONEDEST/$PHONEDEST.pub") UNITDEST=$(cat "./wallets_swarm/$PHONEDEST/$PHONEDEST.unit") - log "__SUB:sms_PAY.sh: PUBKEYDEST found in swarn... $PUBKEYDEST" else # NO, then create NEW Wallet - log "__SUB:sms_PAY.sh: Creating Account for... $PHONEDEST" sms_INIT_ACCOUNT "$PHONEDEST" # Refreshed new values PUBKEYDEST="$PUBKEY" @@ -53,13 +49,11 @@ else fi # Payement -log "./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$VIR" --output="$PUBKEYDEST"" -PAY=$(./shell/timeout.sh -t 30 ./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$VIR" --output="$PUBKEYDEST" --comment="[G1sms+] PAY $AMOUNT $UNIT" -y) +PAY=$(./shell/timeout.sh -t 20 ./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$VIR" --output="$PUBKEYDEST" --comment="[G1sms+] PAY $AMOUNT $UNIT" -y) if [[ "$(echo $PAY | cut -d '|' -f 1)" == "KO" || "$PAY" == "" ]]; then - sms_ERROR "$phone" "PIN : $PAY ? Voyez vous votre code secret: $pin? -NON, Reinitaliser Compte. Envoyer: RAZ -OUI, Bourage Blockchain. Envoyer: S"; - log "__SUB:sms_PAY.sh: Problème de payement avec silkaj : $PAY" + new=$(./shell/checknodes.sh "BAN") + sms_ERROR "$phone" "Problème de payement avec silkaj (changement de serveur $new): $PAY"; + log "__SUB:sms_PAY.sh: Problème de payement avec silkaj $new : $PAY" exit else # OK: Sync g1cents TODO check move_g1cents function and generalize on all silkaj transactions @@ -70,11 +64,11 @@ fi sleep 2 # + G1SMS Commission -log "./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$PERCENT" --output="$NODE_G1PUBKEY"" -COM=$(./shell/timeout.sh -t 30 ./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$PERCENT" --output="$NODE_G1PUBKEY" --comment="[G1sms+] P Commission" -y) -if [[ "$(echo $COM | cut -d '|' -f 1)" == "KO" || "$COM" == "" ]]; then - sms_ERROR "$phone" "Problème de bourrage blockchain : $COM"; - log "__SUB:sms_PAY.sh: Problème de payement avec silkaj : $COM" +COM=$(./shell/timeout.sh -t 20 ./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$PERCENT" --output="$NODE_G1PUBKEY" --comment="[G1sms+] Commission" -y) +if [[ "$(echo $COM | cut -d '|' -f 1)" == "KO" || "$PAY" == "" ]]; then + new=$(./shell/checknodes.sh "BAN") + sms_ERROR "$phone" "Problème de payement avec silkaj (changement de serveur $new): $COM"; + log "__SUB:sms_PAY.sh: Problème de payement avec silkaj $new : $COM" exit else # OK: Sync g1cents