aboutsummaryrefslogtreecommitdiff
path: root/bin/ak-miner-script
blob: ae9f7a875f524f17d4478f15d26e5b50936a7c0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/bash
PROGRAM="$(basename $0)"
gather_zblocks(){
    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'
}

proofofwork(){
    TEST="$1"
    PRE="$2"
    MINER="$3"
    i=1
    l=1; while [ $l = 1 ]
    do
        TIMESTAMP="$(date -u +%s)"
        SHA="$(echo $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 $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 60
            proofofwork "$1" "$SHA" "$MINER"
        fi
        i=$(expr $i + 1);
    done
}

usage(){
    echo "$PROGRAM <somethings> <previous> <miner_address>"
    echo " hit 'ak-zchain --crawl' after that."
}

if [ -z "$1" ] ;
then
    usage
    exit;
elif [ ! -z "$1" ] && [ ! -z "$2" ] && [ ! -z "$3" ]
then
    proofofwork "$1" "$2" "$3";
else
    usage
fi

exit