aboutsummaryrefslogtreecommitdiff
path: root/bin/ak-mine
diff options
context:
space:
mode:
Diffstat (limited to 'bin/ak-mine')
-rwxr-xr-xbin/ak-mine52
1 files changed, 52 insertions, 0 deletions
diff --git a/bin/ak-mine b/bin/ak-mine
new file mode 100755
index 0000000..bf0eef7
--- /dev/null
+++ b/bin/ak-mine
@@ -0,0 +1,52 @@
+#!/bin/bash
+PROGRAM="$(basename $0)"
+gather_zblocks(){
+ if [ "$(cat $AK_ZBLOCKSFILE | jq -r '.[].zblock' | wc -l)" -ne 0 ]
+ then
+ cat $AK_ZBLOCKSFILE | \
+ jq | \
+ grep -e 'Qm.\{44\}' | \
+ sed -e 's/\"zblock\"://g; s/ //g;' | \
+ tr -d '\n'| \
+ sed -e 's/""/","/g;
+ s/^/[&/g; s/$/&]/g;
+ s/^/{"zblocks":&/;
+ s/$/&,/g'
+ else
+ echo -ne '{'
+ fi
+}
+
+proofofwork(){
+ TEST="$(gather_zblocks)"
+ MINER="$(ak-gpg --get-key-self-as-ipfs)"
+ PRE="$(ak schain --get-latest | jq -r '.latest_block' | tr -d $'\n')"
+ i=1
+ l=1; while [ $l = 1 ]
+ do
+ TIMESTAMP="$(date -u +%s)"
+ SHA="$(echo -n $TEST'"nonce":"'$i'","previous":"'$PRE'","timestamp":"'$TIMESTAMP'","miner":"'$MINER'","reward":"40"}' | sha512sum | awk '{ print $1 }')"
+ # Static difficulty for securing the sblock
+ echo $SHA | grep -e '^000'
+ if [ $? -eq 0 ]
+ then
+ echo "SHA512 is $SHA"
+ echo "Mined block:"
+ echo -n $TEST'"nonce":"'$i'","previous":"'$PRE'","timestamp":"'$TIMESTAMP'","miner":"'$MINER'","reward":"40"}' | jq --compact-output > $AK_MINEDBLOCKSDIR/$SHA
+ cat $AK_MINEDBLOCKSDIR/$SHA | jq
+ # exit 0
+ # Instead of exiting, we will now sleep for 60 seconds
+ # after that we continue mining on top of the just mined
+ # block.
+ sleep 10
+ proofofwork
+ fi
+ i=$(expr $i + 1);
+ done
+}
+
+proofofwork
+
+exit
+
+