diff --git a/zen/ipns_TAG_refresh.sh b/zen/ipns_TAG_refresh.sh index bd2c337..9e2dd2b 100755 --- a/zen/ipns_TAG_refresh.sh +++ b/zen/ipns_TAG_refresh.sh @@ -27,11 +27,11 @@ IPFSNODEID=$(ipfs --timeout=20s id -f='\n') G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) ######################################################################## -echo "## FRIENDS IPFS PINGing" +echo "## FRIENDS IPFS PINGing" for g1pub in $(ls -t ~/.zen/ipfs/.$IPFSNODEID/FRIENDS/); do [[ $g1pub ]] && ipfs ping --timeout=3s -n 3 /ipfs/$(~/.zen/astrXbian/zen/tools/g1_to_ipfs.py $g1pub 2>/dev/null) 2>/dev/null; done ######################################################################## -# ACTIVATE TO CONTROL SWARM STATION SAME CODE VERSION +# ACTIVATE TO CONTROL SWARM STATION SAME CODE VERSION ######################################################################## ## myCODE is a SECURITY about code SIMILARITY ## EACH NODE CAN CHECK IF ANOTHER HAS SAME IPFS CODE HASH @@ -42,15 +42,15 @@ for g1pub in $(ls -t ~/.zen/ipfs/.$IPFSNODEID/FRIENDS/); do [[ $g1pub ]] && ipfs # echo "MyCODE = $MyCODE CODE is published # ipfs ls /ipns/k51qzi5uqu5dk1nt1pfbtgfis4bep8pcip78w30xykhgba7y7wk0xyu8nwci5m" ######################################################################## -# ACTIVATE TO CONTROL SWARM STATION SAME CODE VERSION +# ACTIVATE TO CONTROL SWARM STATION SAME CODE VERSION ######################################################################## echo " - _ _ _ _ - / \ / \ / \ / \ + _ _ _ _ + / \ / \ / \ / \ ( I | P | N | S ) - \_/ \_/ \_/ \_/ + \_/ \_/ \_/ \_/ -ZENTAG / MEDIAKEY : IPNS REFRESH +ZENTAG / MEDIAKEY : IPNS REFRESH " echo "I am /ipns/$IPFSNODEID controling and refreshing my MEDIAKEY IPNS" ######################################################################## @@ -65,59 +65,61 @@ count=0 ## TAKE CARE OF MY KEY for mediakey in $(ls ~/.zen/ipfs/.${IPFSNODEID}/KEY/); # Alternative search do + [[ "${mediakey}" == "" ]] && continue ## prevent empty mediakey + IPNSLINK=$(ipfs key list -l | grep ${mediakey} | cut -d ' ' -f 1) + [[ "${IPNSLINK}" == "" ]] && continue ## prevent empty IPNSLINK count=$((count+1)) && echo "$count) " - IPNSLINK=$(ipfs key list -l | grep ${mediakey} | cut -d ' ' -f 1) - FILE_NAME=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.ipfs.filename) - TITLE=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.title) + FILE_NAME=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.ipfs.filename) + TITLE=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.title) - source=$(echo $mediakey | cut -d '_' -f 1) - - ANNONCE=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.gchange.ad) - - ## Use natools to decrypt "/tmp/${mediakey}_filelink.txt - [[ -f ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.ipfs.filelink.natools.encrypt ]] && $MY_PATH/tools/natools.py decrypt -f pubsec -k "$HOME/.zen/secret.dunikey" -i "$HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.ipfs.filelink.natools.encrypt" -o "/tmp/${mediakey}_filelink.txt" - # file=$(cat /tmp/${mediakey}_filelink.txt | rev | cut -d '/' -f 1 | rev) - - ## TREAT OLD DATA from new_file_in_astroport.sh (LATER can be removed) + source=$(echo $mediakey | cut -d '_' -f 1) + + ANNONCE=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.gchange.ad) + + ## Use natools to decrypt "/tmp/${mediakey}_filelink.txt + [[ -f ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.ipfs.filelink.natools.encrypt ]] && $MY_PATH/tools/natools.py decrypt -f pubsec -k "$HOME/.zen/secret.dunikey" -i "$HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.ipfs.filelink.natools.encrypt" -o "/tmp/${mediakey}_filelink.txt" + # file=$(cat /tmp/${mediakey}_filelink.txt | rev | cut -d '/' -f 1 | rev) + + ## TREAT OLD DATA from new_file_in_astroport.sh (LATER can be removed) if [[ ! -f $HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/MEDIAPUBKEY ]]; then - mediakeyfile=$($MY_PATH/tools/give_me_keystore_filename.py $mediakey) + mediakeyfile=$($MY_PATH/tools/give_me_keystore_filename.py $mediakey) $MY_PATH/tools/natools.py privkey -f ipfs-keystore -k $HOME/.ipfs/keystore/$mediakeyfile -F pubsec -o /tmp/${mediakey}.dunikey # PubFromDunikey=$(cat /tmp/${mediakey}.dunikey | grep "sec" | cut -d ' ' -f2 | base58 -d | tail -c+33 | base58) PubFromDunikey=$(cat /tmp/${mediakey}.dunikey | grep "pub" | cut -d ' ' -f2) - echo "$PubFromDunikey" > $HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/MEDIAPUBKEY - fi - MEDIAPUBKEY=$(cat $HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/MEDIAPUBKEY) + echo "$PubFromDunikey" > $HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/MEDIAPUBKEY + fi + MEDIAPUBKEY=$(cat $HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/MEDIAPUBKEY) echo "MEDIA G1 WALLET = $MEDIAPUBKEY" BALANCE=$(~/.zen/astrXbian/zen/jaklis/jaklis.py balance -p ${MEDIAPUBKEY}) && [[ $BALANCE == null || "$BALANCE" == "" ]] && BALANCE=0 - ZENBALANCE=$(echo "100 * $BALANCE" | bc -l | cut -d '.' -f 1) - - TUBELINK="https://tube.copylaradio.com$(cat /tmp/${mediakey}_filelink.txt)" - LOCALTUBELINK="http://127.0.0.1:8181$(cat /tmp/${mediakey}_filelink.txt)" - - ### IPNS LINK CAN EVOLVE (REFRESH EVERY 12 H TO MAINTAIN ALIVE IN THE SWARM) # TODO : Use templating - ### This index.html is ipns link root, 1st welcome page for MEDIAKEY -> *** Redirect to CONTRACTS processing HERE *** - echo " + ZENBALANCE=$(echo "100 * $BALANCE" | bc -l | cut -d '.' -f 1) + + TUBELINK="https://tube.copylaradio.com$(cat /tmp/${mediakey}_filelink.txt)" + LOCALTUBELINK="http://127.0.0.1:8181$(cat /tmp/${mediakey}_filelink.txt)" + + ### IPNS LINK CAN EVOLVE (REFRESH EVERY 12 H TO MAINTAIN ALIVE IN THE SWARM) # TODO : Use templating + ### This index.html is ipns link root, 1st welcome page for MEDIAKEY -> *** Redirect to CONTRACTS processing HERE *** + echo " - $TITLE in Astroport - - - - + $TITLE in Astroport + + + +
-
+
Accelérez le réseau... Lancez la lecture depuis votre Station Astroport! -
-
- ASTROPORT × DEMO -
+ +
+ ASTROPORT × DEMO +

$TITLE

-
Demonstration streaming video dans 10 secondes ...
-

Vous essayez astrXbian et son BETA Live TEstNET

+
Demonstration streaming video dans 10 secondes ...
+

Vous essayez astrXbian et son BETA Live TEstNET


Service Video Club / Datacenter P2P Libre et Légal.
@@ -133,45 +135,45 @@ do # ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/index.html ######################################################################## - ## Write KEY id (provide verification) - [[ ! -f ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.id ]] && echo ${mediakey} > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.id + ## Write KEY id (provide verification) + [[ ! -f ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.id ]] && echo ${mediakey} > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.id ## THIS MAKES FRENCH COPY RIGHT LAW RESPECT ## LOCALHOST REDIRECT FOR INTERNAL KODI DEFCON 3 (swarm.key) ASTROPORT STATION MODE - # echo "" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/index.html - # echo "" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/index.html + # echo "" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/index.html + # echo "" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/index.html ## DEMO PERIOD ## NICE FINAL STREAMING PAGE # TODO ACTIVATE DOWNLOAD FOR AVI or MKV - FILETYPE="${LOCALTUBELINK##*.}" - MIMETYPE="video/$FILETYPE" && HTMLTAG="video" - [[ "$FILETYPE" == "avi" ]] && MIMETYPE="video/x-msvideo" - [[ "$FILETYPE" == "mkv" ]] && MIMETYPE="video/x-matroska" - [[ "$FILETYPE" == "mp3" ]] && MIMETYPE="audio/mpeg" && HTMLTAG="audio" - - echo " + FILETYPE="${LOCALTUBELINK##*.}" + MIMETYPE="video/$FILETYPE" && HTMLTAG="video" + [[ "$FILETYPE" == "avi" ]] && MIMETYPE="video/x-msvideo" + [[ "$FILETYPE" == "mkv" ]] && MIMETYPE="video/x-matroska" + [[ "$FILETYPE" == "mp3" ]] && MIMETYPE="audio/mpeg" && HTMLTAG="audio" + + echo " - $TITLE in Astroport - - - + $TITLE in Astroport + + +
-
+
CopyLaRadio : Retrouvez les %MAKER de Stations Astroport -
+
- astrXbian × en DEMO sur Gchange -
+ astrXbian × en DEMO sur Gchange +
- <$HTMLTAG controls> - - -

$TITLE (lien station $MIMETYPE)

+ <$HTMLTAG controls> + + +

$TITLE (lien station $MIMETYPE)


Ce media possède un G1 portefeuille avec lequel il paye son hébergement. @@ -183,53 +185,53 @@ do " > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/index.html - if [[ "$source" == "YOUTUBE" ]] - then - echo "$source" - # mutiTUBE - activate .views.counter - # echo "" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/index.html - # TODO go/index.php from nginx proxy acting act as gateway (= Easy Round robin DNS tube.copylaradio.com is dynamic IP swap swarm nodes from node performance...) - fi - # ln -s /$HOME/.zen/astrXbian/www /var/www/astrxbian - # Testez vos application à même la blockchain en la copiant dans ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/go/ - # Proposez de l'ajouter au dépot des applications web2.0 dans ../www/ + if [[ "$source" == "YOUTUBE" ]] + then + echo "$source" + # mutiTUBE - activate .views.counter + # echo "" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/index.html + # TODO go/index.php from nginx proxy acting act as gateway (= Easy Round robin DNS tube.copylaradio.com is dynamic IP swap swarm nodes from node performance...) + fi + # ln -s /$HOME/.zen/astrXbian/www /var/www/astrxbian + # Testez vos application à même la blockchain en la copiant dans ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/go/ + # Proposez de l'ajouter au dépot des applications web2.0 dans ../www/ ######################################################################## - # EXAMPLE TO ACTIVATE SECURITY : FORCE SIGNATURE VERIFICATION for each sensible file + # EXAMPLE TO ACTIVATE SECURITY : FORCE SIGNATURE VERIFICATION for each sensible file ######################################################################## - echo "~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.views.counter" - if [[ ! -f ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.views.counter.sign ]]; then - echo "0" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.views.counter - $MY_PATH/tools/natools.py sign -f pubsec -k "$HOME/.zen/secret.dunikey" -i ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.views.counter -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.views.counter.sign - fi + echo "~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.views.counter" + if [[ ! -f ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.views.counter.sign ]]; then + echo "0" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.views.counter + $MY_PATH/tools/natools.py sign -f pubsec -k "$HOME/.zen/secret.dunikey" -i ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.views.counter -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.views.counter.sign + fi - $MY_PATH/tools/natools.py verify -p "${G1PUB}" -i "$HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.views.counter.sign" -o "/tmp/verified_msg" && echo "c'est bon" || echo "c'est pas bon" - # Each time a station modify .views.counter it signs, log and timestamp then publish new IPNS to swarm. - # If a "faulty" blockchain appears (Mediakey collision)... - # Message are sent to warn friends they have to manualy validate data conflict and merge back their mutual chain. + $MY_PATH/tools/natools.py verify -p "${G1PUB}" -i "$HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/.views.counter.sign" -o "/tmp/verified_msg" && echo "c'est bon" || echo "c'est pas bon" + # Each time a station modify .views.counter it signs, log and timestamp then publish new IPNS to swarm. + # If a "faulty" blockchain appears (Mediakey collision)... + # Message are sent to warn friends they have to manualy validate data conflict and merge back their mutual chain. ######################################################################## ## CHAIN & IPNS REFRESH ######################################################################## - # ipfs nanochain progression - I=$(ipfs add -qrH ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/ | tail -n 1) + # ipfs nanochain progression + I=$(ipfs add -qrH ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/ | tail -n 1) echo "CHAIN: $I" - OLDCHAIN=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/.chain) + OLDCHAIN=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/.chain) echo "OLDCHAIN: $OLDCHAIN" - if [[ "$OLDCHAIN" != "$I" ]] # MODIFY CHAIN only if something was changed - then - echo "UPDATING CHAIN" - echo "$(date -u +%s%N | cut -b1-13)" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/.timestamp - echo $I > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/.chain - fi - echo "${mediakey} NAME PUBLISHING " + if [[ "$OLDCHAIN" != "$I" ]] # MODIFY CHAIN only if something was changed + then + echo "UPDATING CHAIN" + echo "$(date -u +%s%N | cut -b1-13)" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/.timestamp + echo $I > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/.chain + fi + echo "${mediakey} NAME PUBLISHING " # KEY ZenTag IPNS name publish J=$(ipfs name publish --quieter -k ${mediakey} /ipfs/${I}) echo "$id REFRESHED https://tube.copylaradio.com/ipns/$J" ######################################################################## ######################################################################## - + done ######################################################################## @@ -242,7 +244,7 @@ for ipnslink in $(ls ~/.zen/PIN/*/IPNSLINK); do ipnsid=$(cat $ipnslink) ipfsid=$(echo $ipnslink | cut -d '/' -f 6) mediakey=$(cat ~/.zen/PIN/${ipfsid}/MEDIAKEY) - + [[ ! $(ipfs key list | grep ${mediakey}) ]] && echo "ERROR MISSING MEDIAKEY" && continue ## GET ACTUAL IPNS .chain VALUE