aboutsummaryrefslogtreecommitdiff
path: root/bin/zchain-rebase
diff options
context:
space:
mode:
authorkaotisk <kaotisk@arching-kaos.org>2023-02-01 04:00:45 +0200
committerkaotisk <kaotisk@arching-kaos.org>2023-02-01 04:00:45 +0200
commit0968bee52889d9c5a54959264a6cf97ee4c4749e (patch)
tree626e90cfd8761bf99b11c4dc84f22e6ae59a2833 /bin/zchain-rebase
parent324b9145f630463c45dc851971c2e476ea1a0613 (diff)
downloadarching-kaos-tools-0968bee52889d9c5a54959264a6cf97ee4c4749e.tar.gz
arching-kaos-tools-0968bee52889d9c5a54959264a6cf97ee4c4749e.tar.bz2
arching-kaos-tools-0968bee52889d9c5a54959264a6cf97ee4c4749e.zip
Added rebase tool
Diffstat (limited to 'bin/zchain-rebase')
-rwxr-xr-xbin/zchain-rebase53
1 files changed, 53 insertions, 0 deletions
diff --git a/bin/zchain-rebase b/bin/zchain-rebase
new file mode 100755
index 0000000..96a59d1
--- /dev/null
+++ b/bin/zchain-rebase
@@ -0,0 +1,53 @@
+#!/bin/bash
+PROGRAM=$(basename $0)
+usage(){
+ echo "$PROGRAM - Zchain rebase"
+ 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 rebase <zblock>"
+ exit 0
+}
+rebase (){
+ ZTARGET="$1"
+ echo "Reseting ZLATEST to ZTARGET"
+ echo $ZTARGET > $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 rebased ZLATEST"
+ CZLATEST="$(cat $ZLATEST)"
+ ipfs files cp /ipfs/$CZLATEST /zlatest
+ if [ $? != 0 ]; then exit 1; fi
+
+ echo "Publishing new (rebased) ZLATEST"
+ ipfs name publish --key=zchain /ipfs/$(cat $ZLATEST)
+ if [ $? != 0 ]; then exit 1; fi
+
+ echo "Rebase was successful"
+ exit 0
+}
+if [ ! -z $1 ] && [ ! -z $2 ]; then
+ case $1 in
+ rebase) rebase $2; exit;;
+ * ) usage;;
+ esac
+else usage
+fi
+