blob: 2ff56eb6116a9bc8de0f8c67926bfda525207155 (
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
#!/bin/bash
AK_SCHAINSDIR=$AK_WORKDIR/schains
GENESIS="00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
_ak_schain_latest_cached(){
if [ ! -f $AK_WORKDIR/schain.latest ]
then
ak-find-latest-mined-sblock > $AK_WORKDIR/schain.latest
fi
cat $AK_WORKDIR/schain.latest
}
_ak_schain_tidy(){
SLATEST=$(ak-find-latest-mined-sblock | jq -r '.latest_block')
if [ ! -d $AK_SCHAINSDIR ]
then
mkdir $AK_SCHAINSDIR
fi
}
_ak_schain_block_latest_block_hash(){
ak-find-latest-mined-sblock | jq -r '.latest_block'
}
_ak_schain_crawl(){
if [ ! -z $1 ] && [ -n "$1" ]
then
CUR_TARGET="$1"
else
_ak_log_warning "No next target found. So long for $1"
exit 1
fi
if [ $counter -eq 0 ]
then
echo '['
counter=$(($counter + 1))
else
_ak_log_info "Counter: $counter, LIMIT_ENABLED: $LIMIT_ENABLED, LIMIT: $LIMIT"
if [ "$LIMIT_ENABLED" == "yes" ]
then
if [ $counter -eq $LIMIT ]
then
echo ']'
exit 0
fi
fi
echo ','
counter=$(($counter + 1))
fi
if [ "$1" == "$GENESIS" ]
then
echo '{"genesis":"genesis"}' | jq
echo ']'
_ak_log_warning "Looks like genesis. Exiting with 0"
exit 0
fi
if [ ! -f "$AK_MINEDBLOCKSDIR/$CUR_TARGET" ]
then
_ak_log_warning "Could not find $CUR_TARGET"
else
( echo -n '{"sblock":"'$1'",' &&
ak-sblock-show $CUR_TARGET | sed -e 's/^{//g') | jq
NEXT_TARGET="$(ak-sblock-show $CUR_TARGET | jq -r '.previous')"
_ak_log_info "Found previous: $NEXT_TARGET"
_ak_schain_crawl "$NEXT_TARGET"
fi
}
_ak_schain_crawl_interface(){
LIMIT_ENABLED="no"
LIMIT=0
counter=0
if [ -z $1 ] || [ ! -n "$1" ]
then
_ak_schain_crawl `_ak_schain_block_latest_block_hash`
else
while [ "$#" ]; do
case "$1" in
-l)
LIMIT_ENABLED="yes"
LIMIT=$2
shift 2
;;
*)
_ak_schain_crawl "$1"
;;
esac
done
fi
}
|