Auto merge of #1080 - ebfull:performance-check-valid-pour, r=ebfull

Always check valid joinsplits during performance tests

This will generate a valid joinsplit instead of using one from an environment variable.
This commit is contained in:
zkbot 2016-07-11 22:38:25 +00:00
commit 04932a64e8
2 changed files with 21 additions and 19 deletions

View File

@ -52,8 +52,6 @@ function zcashd_valgrind_stop {
cat valgrind.out
}
RAWTXWITHPOUR=020000000000000000000100000000000000000000000000000000d7c612c817793191a1e68652121876d6b3bde40f4fa52bc314145ce6e5cdd259df64fc01b984cd264470d2493b27cb38032874c549fa188ea9ed246d881d01b6033614a202b4f7e64805076652aa036ff94997285df9ddd5a3d2b1220c08dfc9fafd306aa43429b34a0329755698ee934a358ebac3e8aaf06d51eaafb32ac82a0e0ba078e1ae3dc14231d885ffcafa66af334e8c6b9d444a52075c70466900fe6829c1bb02f56451246bedc77d271c6fcf51c1130331e5bf7691682d977af162dd79fbde8a64909ab7f2fc76d8ca9afaa9a065a88dc91d3e6606da73f58ade8e16dbded49b93002bf4aecb466a2d57bda375c4ed4e1b1f6d77f81bd4a2f0e28c2262b98b972370ffbf8742748fd3050332530b3c0a3176806c703e2e7b5530688a53be9e9cfc6228ab1e5e909848614b7279f316c5b4338289e055fbf9eb1bbecdb259d4777628e7c90e97c4c6f185f7c7ed57024e39651d94b6db8d2906d798f4fa82275abb64060264cbbd2e9657ca9934957bbf2fef7670013419ba56a2faa761bb7b4a9639f2f1a266a083d71c1a0f8e4fd3c83234c925ca255effe51a8a527a37132447366a00a57a6032cdcb0b4e85781fe6ab912e5e4f51a20764e5543a7fecec8a2ff3fb16496608f605f167aded4f71b9dc8fcb37d7006da32fc85a496e85755a13e3ed6708a80355212c028966ea3f3b4afdf28e3578d491add09a4bf04554d8486f232b7d66e0e57d4129166b8d22ec1bb7e85edf6c89ff4aa8b84b92e83625965e4fd531f6caf9c48656fdf6c6ee6b57a947c203213146103ea966fb907a9fd2a7ec3d90179a47dac944792055ff22a04f0c8841623159909f0f9d1ef3542aa9776723bce6b7ad1c8c4906494cccd226935f04ab6335a7c6807f9eaed8fc14183cbec8090ce10c1eb389a720034d96c6a4fad081ca70ad0b5a5ee0250b37d0c5745eb8fd8bfbb284ceb8df4d9ed8136f4c46fd0fb50ae8328bc8e55eae2ac986392e87658fae606647b7884b30fb95621c378ad36b3ace9bcfeaaf47b38fc815a604526e52995bf17448c91e2a3b072fdaf717d7dd4a2743c3a0460e65a2d3520313e1aafb0894ce7be6829b2f30b4f2a541dbbe37b455383a0d9ec2d06d9e2e2872935b7c77bc00dc9185b40e23c53041d4024a5e24747b84a7acf8abb6906eb2f05e5e82b7a995ce727e9d3a04304f46df202583aa09c440f712d08eb93c16de89d761baed8794d14cfc6a41000b10e835ee6ba661bb0da8f3811c85920d1a069055488eb8a10301c22a4d20bc297a2687e805e2988fdefb48d94bac775f39505f92c45bc7f02d1cda3357306909cd6c5fbaefc987b556a406cf7a1bef6867a3d809063332db8aa5c4e08380610a30f2629b1d1d8f0f2b8d2cd37d611f574c074bbc1236436667208d5077b08d0303c24de96169fba61de2d6c1e8def6e5ac409b3dc36eaafa25425f073d63a2d21d3095ff55cfd9c8e1dd1f9071d3d35465b403470ff2c631a9cbc3654a8a6279680c6cd975a8a6a7bf8971171b9eb1b5f6c9de58889022ca32e2d9df7280e8a1fd12306ed060c4748e4e1205f0eeaa30a6e06cd9f25fa2f1407d935846fd0101b80400f09065198362eeef213d974edfcb60a99230c05d7d572a16f78a64124ea1480c30531cfc54ef4adb571eef63a5feb614d79f840f17a4e84a5dfceae86679ac93015ac290d8e47b08215381d83f7116b82d4244231bc3ea50394f7e86cc4913810e3081e54cbf537fba6bb3191252b75393f33fe5c6bcaa73bc088c3fcf3e23ab4c13329f89f42094b05e57e8a10d8e61962cd200cd11470e1bc20ccfc05006f38517b8b000e40fc91358db1919054aa8c2b470a23da91f6469ca271fc44852b3cb4527f5c4cfc2ba376da776412b4b900cc3ea3da80205824631f6acab1f56c5d9cbeb96d72577e4428fccee81e2111802c7ce1ecf8b99ad3f22fd4aca719a48ce0b
case "$1" in
time)
zcashd_start
@ -68,7 +66,7 @@ case "$1" in
zcash_rpc zcbenchmark createjoinsplit 10
;;
verifyjoinsplit)
zcash_rpc zcbenchmark verifyjoinsplit 1000 "$RAWTXWITHPOUR"
zcash_rpc zcbenchmark verifyjoinsplit 1000
;;
solveequihash)
zcash_rpc zcbenchmark solveequihash 10
@ -99,7 +97,7 @@ case "$1" in
zcash_rpc zcbenchmark createjoinsplit 1
;;
verifyjoinsplit)
zcash_rpc zcbenchmark verifyjoinsplit 1 "$RAWTXWITHPOUR"
zcash_rpc zcbenchmark verifyjoinsplit 1
;;
solveequihash)
zcash_rpc zcbenchmark solveequihash 1
@ -128,7 +126,7 @@ case "$1" in
zcash_rpc zcbenchmark createjoinsplit 1
;;
verifyjoinsplit)
zcash_rpc zcbenchmark verifyjoinsplit 1 "$RAWTXWITHPOUR"
zcash_rpc zcbenchmark verifyjoinsplit 1
;;
solveequihash)
zcash_rpc zcbenchmark solveequihash 1

View File

@ -2393,6 +2393,20 @@ Value zc_benchmark(const json_spirit::Array& params, bool fHelp)
pzcashParams->loadProvingKey();
}
CPourTx* samplejoinsplit = NULL;
if (benchmarktype == "verifyjoinsplit") {
uint256 pubKeyHash;
uint256 anchor = ZCIncrementalMerkleTree().root();
samplejoinsplit = new CPourTx(*pzcashParams,
pubKeyHash,
anchor,
{JSInput(), JSInput()},
{JSOutput(), JSOutput()},
0,
0);
}
for (int i = 0; i < samplecount; i++) {
if (benchmarktype == "sleep") {
sample_times.push_back(benchmark_sleep());
@ -2401,20 +2415,7 @@ Value zc_benchmark(const json_spirit::Array& params, bool fHelp)
} else if (benchmarktype == "createjoinsplit") {
sample_times.push_back(benchmark_create_joinsplit());
} else if (benchmarktype == "verifyjoinsplit") {
if (params.size() != 3) {
throw JSONRPCError(RPC_TYPE_ERROR, "Please provide a transaction with a JoinSplit.");
}
CTransaction tx;
if (!DecodeHexTx(tx, params[2].get_str())) {
throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "TX decode failed");
}
if (tx.vpour.size() != 1) {
throw JSONRPCError(RPC_TYPE_ERROR, "The transaction must have exactly one JoinSplit.");
}
sample_times.push_back(benchmark_verify_joinsplit(tx.vpour[0]));
sample_times.push_back(benchmark_verify_joinsplit(*samplejoinsplit));
} else if (benchmarktype == "solveequihash") {
sample_times.push_back(benchmark_solve_equihash());
} else if (benchmarktype == "verifyequihash") {
@ -2422,10 +2423,13 @@ Value zc_benchmark(const json_spirit::Array& params, bool fHelp)
} else if (benchmarktype == "validatelargetx") {
sample_times.push_back(benchmark_large_tx());
} else {
delete samplejoinsplit;
throw JSONRPCError(RPC_TYPE_ERROR, "Invalid benchmarktype");
}
}
delete samplejoinsplit;
Array results;
for (int i = 0; i < samplecount; i++) {
Object result;