aboutsummaryrefslogtreecommitdiff
path: root/bin/ak-zchain-reset
diff options
context:
space:
mode:
Diffstat (limited to 'bin/ak-zchain-reset')
-rwxr-xr-xbin/ak-zchain-reset52
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
+