2016-04-07 14:37:39 -07:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
2016-04-11 09:15:48 -07:00
|
|
|
DATADIR=./benchmark-datadir
|
|
|
|
|
2016-04-07 14:37:39 -07:00
|
|
|
function zcash_rpc {
|
2016-04-11 07:05:13 -07:00
|
|
|
./src/zcash-cli -rpcwait -rpcuser=user -rpcpassword=password -rpcport=5983 "$@"
|
2016-04-07 14:37:39 -07:00
|
|
|
}
|
|
|
|
|
2016-06-07 16:28:12 -07:00
|
|
|
function zcashd_generate {
|
|
|
|
zcash_rpc generate 101 > /dev/null
|
|
|
|
}
|
|
|
|
|
2016-04-07 14:37:39 -07:00
|
|
|
function zcashd_start {
|
2016-04-11 09:15:48 -07:00
|
|
|
rm -rf "$DATADIR"
|
|
|
|
mkdir -p "$DATADIR"
|
|
|
|
./src/zcashd -regtest -datadir="$DATADIR" -rpcuser=user -rpcpassword=password -rpcport=5983 &
|
2016-04-07 14:37:39 -07:00
|
|
|
ZCASHD_PID=$!
|
|
|
|
}
|
|
|
|
|
|
|
|
function zcashd_stop {
|
|
|
|
zcash_rpc stop > /dev/null
|
|
|
|
wait $ZCASH_PID
|
|
|
|
}
|
|
|
|
|
|
|
|
function zcashd_massif_start {
|
2016-04-11 09:15:48 -07:00
|
|
|
rm -rf "$DATADIR"
|
|
|
|
mkdir -p "$DATADIR"
|
2016-04-07 14:37:39 -07:00
|
|
|
rm -f massif.out
|
2016-04-11 09:15:48 -07:00
|
|
|
valgrind --tool=massif --time-unit=ms --massif-out-file=massif.out ./src/zcashd -regtest -datadir="$DATADIR" -rpcuser=user -rpcpassword=password -rpcport=5983 &
|
2016-04-07 14:37:39 -07:00
|
|
|
ZCASHD_PID=$!
|
|
|
|
}
|
|
|
|
|
|
|
|
function zcashd_massif_stop {
|
|
|
|
zcash_rpc stop > /dev/null
|
|
|
|
wait $ZCASHD_PID
|
|
|
|
ms_print massif.out
|
|
|
|
}
|
|
|
|
|
2016-05-18 17:03:43 -07:00
|
|
|
function zcashd_valgrind_start {
|
|
|
|
rm -rf "$DATADIR"
|
|
|
|
mkdir -p "$DATADIR"
|
|
|
|
rm -f valgrind.out
|
2016-05-18 17:49:59 -07:00
|
|
|
valgrind --leak-check=yes -v --error-limit=no --log-file="valgrind.out" ./src/zcashd -regtest -datadir="$DATADIR" -rpcuser=user -rpcpassword=password -rpcport=5983 &
|
2016-05-18 17:03:43 -07:00
|
|
|
ZCASHD_PID=$!
|
|
|
|
}
|
|
|
|
|
|
|
|
function zcashd_valgrind_stop {
|
|
|
|
zcash_rpc stop > /dev/null
|
|
|
|
wait $ZCASHD_PID
|
|
|
|
cat valgrind.out
|
|
|
|
}
|
|
|
|
|
2016-07-19 14:49:11 -07:00
|
|
|
# Precomputation
|
|
|
|
case "$1" in
|
|
|
|
*)
|
|
|
|
case "$2" in
|
|
|
|
verifyjoinsplit)
|
|
|
|
zcashd_start
|
|
|
|
RAWJOINSPLIT=$(zcash_rpc zcsamplejoinsplit)
|
|
|
|
zcashd_stop
|
|
|
|
esac
|
|
|
|
esac
|
|
|
|
|
2016-04-11 09:54:55 -07:00
|
|
|
case "$1" in
|
|
|
|
time)
|
|
|
|
zcashd_start
|
|
|
|
case "$2" in
|
|
|
|
sleep)
|
|
|
|
zcash_rpc zcbenchmark sleep 10
|
|
|
|
;;
|
|
|
|
parameterloading)
|
|
|
|
zcash_rpc zcbenchmark parameterloading 10
|
|
|
|
;;
|
|
|
|
createjoinsplit)
|
|
|
|
zcash_rpc zcbenchmark createjoinsplit 10
|
|
|
|
;;
|
|
|
|
verifyjoinsplit)
|
2016-07-19 14:49:11 -07:00
|
|
|
zcash_rpc zcbenchmark verifyjoinsplit 1000 "$RAWJOINSPLIT"
|
2016-04-11 09:54:55 -07:00
|
|
|
;;
|
|
|
|
solveequihash)
|
|
|
|
zcash_rpc zcbenchmark solveequihash 10
|
|
|
|
;;
|
|
|
|
verifyequihash)
|
|
|
|
zcash_rpc zcbenchmark verifyequihash 1000
|
|
|
|
;;
|
2016-06-07 16:28:12 -07:00
|
|
|
validatelargetx)
|
2016-07-06 11:07:50 -07:00
|
|
|
zcash_rpc zcbenchmark validatelargetx 5
|
2016-06-07 16:28:12 -07:00
|
|
|
;;
|
2016-04-11 09:54:55 -07:00
|
|
|
*)
|
|
|
|
zcashd_stop
|
|
|
|
echo "Bad arguments."
|
|
|
|
exit 1
|
|
|
|
esac
|
|
|
|
zcashd_stop
|
|
|
|
;;
|
|
|
|
memory)
|
2016-07-06 11:07:50 -07:00
|
|
|
zcashd_massif_start
|
2016-04-11 09:54:55 -07:00
|
|
|
case "$2" in
|
|
|
|
sleep)
|
|
|
|
zcash_rpc zcbenchmark sleep 1
|
|
|
|
;;
|
|
|
|
parameterloading)
|
|
|
|
zcash_rpc zcbenchmark parameterloading 1
|
|
|
|
;;
|
|
|
|
createjoinsplit)
|
|
|
|
zcash_rpc zcbenchmark createjoinsplit 1
|
|
|
|
;;
|
|
|
|
verifyjoinsplit)
|
2016-07-19 14:49:11 -07:00
|
|
|
zcash_rpc zcbenchmark verifyjoinsplit 1 "$RAWJOINSPLIT"
|
2016-04-11 09:54:55 -07:00
|
|
|
;;
|
|
|
|
solveequihash)
|
|
|
|
zcash_rpc zcbenchmark solveequihash 1
|
|
|
|
;;
|
|
|
|
verifyequihash)
|
|
|
|
zcash_rpc zcbenchmark verifyequihash 1
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
zcashd_massif_stop
|
|
|
|
echo "Bad arguments."
|
|
|
|
exit 1
|
|
|
|
esac
|
|
|
|
zcashd_massif_stop
|
|
|
|
rm -f massif.out
|
|
|
|
;;
|
2016-05-18 17:03:43 -07:00
|
|
|
valgrind)
|
2016-07-06 11:07:50 -07:00
|
|
|
zcashd_valgrind_start
|
2016-05-18 17:03:43 -07:00
|
|
|
case "$2" in
|
|
|
|
sleep)
|
|
|
|
zcash_rpc zcbenchmark sleep 1
|
|
|
|
;;
|
|
|
|
parameterloading)
|
|
|
|
zcash_rpc zcbenchmark parameterloading 1
|
|
|
|
;;
|
|
|
|
createjoinsplit)
|
|
|
|
zcash_rpc zcbenchmark createjoinsplit 1
|
|
|
|
;;
|
|
|
|
verifyjoinsplit)
|
2016-07-19 14:49:11 -07:00
|
|
|
zcash_rpc zcbenchmark verifyjoinsplit 1 "$RAWJOINSPLIT"
|
2016-05-18 17:03:43 -07:00
|
|
|
;;
|
|
|
|
solveequihash)
|
|
|
|
zcash_rpc zcbenchmark solveequihash 1
|
|
|
|
;;
|
|
|
|
verifyequihash)
|
|
|
|
zcash_rpc zcbenchmark verifyequihash 1
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
zcashd_valgrind_stop
|
|
|
|
echo "Bad arguments."
|
|
|
|
exit 1
|
|
|
|
esac
|
|
|
|
zcashd_valgrind_stop
|
|
|
|
rm -f valgrind.out
|
|
|
|
;;
|
2016-04-11 09:54:55 -07:00
|
|
|
*)
|
|
|
|
echo "Bad arguments."
|
|
|
|
exit 1
|
|
|
|
esac
|
2016-04-11 09:05:16 -07:00
|
|
|
|
2016-04-11 09:15:48 -07:00
|
|
|
# Cleanup
|
|
|
|
rm -rf "$DATADIR"
|