diff options
Diffstat (limited to 'bin/ak-zchain-reset')
-rwxr-xr-x | bin/ak-zchain-reset | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/bin/ak-zchain-reset b/bin/ak-zchain-reset new file mode 100755 index 0000000..813dc33 --- /dev/null +++ b/bin/ak-zchain-reset @@ -0,0 +1,52 @@ +#!/bin/bash +PROGRAM=$(basename $0) +usage(){ + echo "$PROGRAM - Zchain reset" + echo "" + echo "Description:" + echo "Backs up your latest block into IPFS filesystem, replaces it with an empty file (GENESIS hardcode) and pushes its IPFS link as your chain's latest block." + echo "" + echo "Disclaimer:" + echo "This program, does NOT delete anything from your IPFS repository, neither denies access to previously created blocks." + echo "" + echo "Usage:" + echo " $PROGRAM reset" + exit 0 +} +reset (){ + echo "Reseting ZLATEST to ZGENESIS" + cp $ZGENESIS $ZLATEST + if [ $? != 0 ]; then exit 1; fi + + echo "Make sure /zarchive folder exists within IPFS FS" + ipfs files mkdir /zarchive + if [ $? != 0 ]; then echo "Folder already there"; fi + + echo "Archive the previous ZLATEST" + ipfs files cp /zlatest /zarchive/$(date -u +%s)-$(ipfs files stat /zlatest | head -n 1) + if [ $? != 0 ]; then exit 1; fi + + echo "Removing previous /zlatest entry" + ipfs files rm /zlatest + if [ $? != 0 ]; then exit 1; fi + + echo "Copying reset ZLATEST" + CZLATEST="$(cat $ZLATEST)" + ipfs files cp /ipfs/$CZLATEST /zlatest + if [ $? != 0 ]; then exit 1; fi + + echo "Publishing new (reset) ZLATEST" + ipfs name publish --key=zchain /ipfs/$(cat $ZLATEST) + if [ $? != 0 ]; then exit 1; fi + + echo "Reset was successful" + exit 0 +} +if [ ! -z $1 ]; then + case $1 in + reset) reset; exit;; + * ) usage;; + esac +else usage +fi + |