#!/bin/bash PROGRAM=$(basename $0) source $AK_LIBDIR/_ak_ipfs 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" _ak_ipfs_files_mkdir /zarchive if [ $? != 0 ]; then echo "Folder already there"; fi echo "Archive the previous ZLATEST" _ak_ipfs_files_cp /zlatest /zarchive/$(date -u +%s)-$(_ak_ipfs_files_stat /zlatest | head -n 1) if [ $? != 0 ]; then exit 1; fi echo "Removing previous /zlatest entry" _ak_ipfs_files_rm /zlatest if [ $? != 0 ]; then exit 1; fi echo "Copying reset ZLATEST" CZLATEST="$(cat $ZLATEST)" _ak_ipfs_files_cp /ipfs/$CZLATEST /zlatest if [ $? != 0 ]; then exit 1; fi echo "Publishing new (reset) ZLATEST" _ak_ipfs_name_publish --key=zchain /ipfs/$(cat $ZLATEST) if [ $? != 0 ]; then exit 1; fi ak-config publish if [ "$?" -ne 0 ] then logit "ERROR" "Could not publish new configuration" exit 1 fi echo "Reset was successful" exit 0 } if [ ! -z $1 ]; then case $1 in reset) reset; exit;; * ) usage;; esac else usage fi