Repository navigation
Expand file tree
/
Copy pathrun-fabric.sh
More file actions
88 lines (86 loc) · 2.87 KB
/
Copy pathrun-fabric.sh
File metadata and controls
88 lines (86 loc) · 2.87 KB
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
#!/bin/bash
rm -rf logs/fabric
mkdir -p logs/fabric
docker stack rm fabric
bash runall.sh "bash clean.sh"
# e2e tps and latency
bash create_artifact.sh fabric
all=9
round=0
rm log.log
send_rates=(2000 4000 6000 8000 10000 16000)
len=${#send_rates[@]}
curi=0
while [ $curi -lt $len ]; do
# for send_rate in 1000 2000 3000 4000 5000 8000 16000; do
send_rate=${send_rates[$curi]}
echo "send_rate:$send_rate"
i=8
j=4
k=40
echo $i $j $round
log=round_${round}_e2e_${send_rate}.log
phase1=round_${round}_phase1_${send_rate}.log
phase2=round_${round}_phase2_${send_rate}.log
docker stack deploy --resolve-image never --compose-file=docker-compose-fabric.yaml fabric
cnt=0
while true; do
wait=$(docker service list | grep 1/1 | wc -l)
if [ $wait == $all ]; then
break;
fi
sleep 2
let cnt=cnt+1
echo "waiting... $cnt"
if [ $cnt -gt 30 ]; then
let cnt=-1
break
fi
done
if [ $cnt -eq -1 ]; then
docker stack rm fabric
bash runall.sh "bash clean.sh"
echo "something failed, rerun round$round "
sleep 10
continue
fi
sleep 2
cli=$(docker ps | grep fabric_cli | awk '{print $1}')
while [ ! $cli ]; do
echo "fatal error, please rerun this script:)"
exit 1
done
echo $cli
timeout 120 docker exec $cli bash scripts/script.sh
if [ $? -ne 0 ]; then
docker stack rm fabric
bash runall.sh "bash clean.sh"
echo "something failed, rerun round$round "
sleep 10
continue
fi
# create 50000 accounts
# docker exec $(docker ps | grep fabric_tape | awk '{print $1}') tape --no-e2e -n 50000 --burst 50 --num_of_conn $p1i --client_per_conn $p1j --groups 5 --config config.yaml > $phase1 2>&1
docker exec $(docker ps | grep fabric_tape | awk '{print $1}') tape --e2e -n 50000 --burst 50000 --num_of_conn $i --client_per_conn $j --send_rate $send_rate --orderer_client $k --groups 5 --config config.yaml > $log 2>&1
for id in 0 1 2 3 4 5; do
docker service logs fabric_peer$id > logs/fabric/round_${round}_peer$id.log 2>&1
done
docker service logs fabric_orderer > logs/fabric/round_${round}_orderer.log 2>&1
docker stack rm fabric
bash runall.sh "bash clean.sh"
# echo "latency (endorse): " >> log.log
# cat $phase1 | python3 latency_p1.py >> log.log
# echo "latency (commit): " >> log.log
cat $log | python3 latency_p2.py >> log.log
echo latency conn=$i client=$j orderer_client=$k >> log.log
bash process-latency.sh logs/fabric/ $round >> log.log
echo "tps: " >> log.log
cat $log | python3 tput.py 500 VALID >> log.log
# TODO latency breakdown
# mv $phase1 logs/fabric/
mv $log logs/fabric/
let curi=curi+1
let round=round+1
sleep 10
done
mv log.log logs/fabric