2
2
3
3
set -e
4
4
5
+ check_requirements () {
6
+ which ab > /dev/null ||
7
+ error " It seems 'ab' is not installed or not in the path." ;
8
+
9
+ }
10
+
11
+ error () {
12
+ echo
13
+ echo " ERROR: $1 " ;
14
+ exit 1;
15
+ }
16
+
17
+ display_help () {
18
+ echo
19
+ if [ -n " ${1-" " } " ]; then echo " ERROR: ${1} " ; echo ; fi
20
+ echo " HELP"
21
+ echo " $0 "
22
+ echo
23
+ echo " Benchmark a Mithril aggregator prover route"
24
+ echo
25
+ echo " Usage: $0 "
26
+ echo
27
+ echo " Available configuration environment variables:"
28
+ echo " - DEBUG: activate debug output"
29
+ echo " - AGGREGATOR_ENDPOINT: the aggregator endpoint"
30
+ echo " - TRANSACTIONS_FILE: the file containing the transactions hashes"
31
+ echo " - TRANSACTIONS_PER_REQUEST_MIN: the minimum number of transactions per request"
32
+ echo " - TRANSACTIONS_PER_REQUEST_MAX: the maximum number of transactions per request"
33
+ echo " - TRANSACTIONS_PER_REQUEST_STEP: the step between each number of transactions per request"
34
+ echo " - AB_TOTAL_REQUESTS: the total number of requests"
35
+ echo " - AB_CONCURRENCY_MIN: the minimum concurrency level"
36
+ echo " - AB_CONCURRENCY_MAX: the maximum concurrency level"
37
+ echo " - AB_CONCURRENCY_STEP: the step between each concurrency level"
38
+ echo
39
+ exit 1;
40
+ }
41
+
42
+ echo " "
43
+ echo " MITHRIL AGGREGATOR PROVER ROUTE BENCHMARK"
44
+
45
+ check_requirements
46
+
5
47
# Debug mode
6
48
if [ -v DEBUG ]; then
7
49
set -x
@@ -11,13 +53,11 @@ AGGREGATOR_PROVER_ROUTE="/proof/cardano-transaction"
11
53
12
54
# Check if all env vars are set
13
55
if [ -z " ${AGGREGATOR_ENDPOINT} " ]; then
14
- echo " Missing environment variable: AGGREGATOR_ENDPOINT" > /dev/stderr
15
- exit 1
56
+ display_help " Missing environment variable: AGGREGATOR_ENDPOINT"
16
57
fi
17
58
18
59
if [ -z " ${TRANSACTIONS_FILE} " ]; then
19
- echo " Missing environment variable: TRANSACTIONS_FILE" > /dev/stderr
20
- exit 1
60
+ display_help " Missing environment variable: TRANSACTIONS_FILE"
21
61
fi
22
62
23
63
if [ -z " ${TRANSACTIONS_PER_REQUEST_MIN} " ]; then
58
98
if [ -z " ${OUT_FILE} " ]; then
59
99
OUT_FILE=" benchmark.csv"
60
100
rm -f $OUT_FILE
61
- echo " Using the default OUT_FILE: $OUT_FILE "
62
101
fi
63
102
mkdir -p " $( dirname " $OUT_FILE " ) "
64
103
@@ -100,8 +139,7 @@ AB_CONCURRENCY_RANGE=$(seq -s ' ' "$AB_CONCURRENCY_MIN" "$AB_CONCURRENCY_STEP" "
100
139
TRANSACTIONS_PER_REQUEST_RANGE_LENGTH=$(( $(echo "$TRANSACTIONS_PER_REQUEST_RANGE " | grep - o " " | wc - l) + 1 ))
101
140
AB_CONCURRENCY_RANGE_LENGTH=$(( $(echo "$AB_CONCURRENCY_RANGE " | grep - o " " | wc - l) + 1 ))
102
141
TOTAL_RUN=$(( TRANSACTIONS_PER_REQUEST_RANGE_LENGTH * AB_CONCURRENCY_RANGE_LENGTH ))
103
- echo " "
104
- echo " Run aggregator prover benchmark with:"
142
+ echo
105
143
echo " >> Aggregator endpoint: $AGGREGATOR_ENDPOINT "
106
144
echo " >> Aggregator route: $AGGREGATOR_PROVER_ROUTE "
107
145
echo " >> Transactions file: $TRANSACTIONS_FILE "
@@ -111,7 +149,7 @@ echo ">> AB concurrency range: [$AB_CONCURRENCY_RANGE]"
111
149
echo " >> AB total requests per run: [$AB_TOTAL_REQUESTS ]"
112
150
echo " >> AB total runs: $TOTAL_RUN "
113
151
echo " >> Output file: $OUT_FILE "
114
- echo " "
152
+ echo
115
153
116
154
INDEX_RUN=1
117
155
for TRANSACTIONS_PER_REQUEST in $TRANSACTIONS_PER_REQUEST_RANGE ; do
0 commit comments