ooibc88 / blockbench

BLOCKBENCH: A Framework for Analyzing Private Blockchains. Blockbench contains workloads for measuring the data processing performance, and workloads for understanding the performance of different layers of Blockchain systems.
https://www.comp.nus.edu.sg/~dbsystem/fabricsharp/#/blockbench
Apache License 2.0
391 stars 174 forks source link

Error running 3 server #20

Closed ArnChe closed 6 years ago

ArnChe commented 6 years ago

I can run experiments with 1 and 2 servers. But when I start with 3 servers, the client can't find an address, but the driver works. Do you have a suggestion why this appears. See Pastebin for log and client files. Server (just one) https://pastebin.com/Q49YcyVD and client https://pastebin.com/YpJPxauF

ug93tad commented 6 years ago

are you running on 3 physical servers or VMs? If the latter, it may be that one server is not done generating DAG.

You could try inserting the following: assert(r.find("result:") != std::string::npos) after line 324 in src/macro/kvstore/core/evm_utils.cc to check if the contract is deploy successfully.

ArnChe commented 6 years ago

I run on 3 physical servers in an openstack cloud infrastructure. I will insert the code and see what I get as result answer. The DAG generation was successful on every server, even was in epoch 1. Happens with experiments with 1 and 2 servers too, but luckily not every time.

ArnChe commented 6 years ago

I get answer: driver: evm_utils.cc:334: std::__cxx11::string BBUtils::EVMUtils::lookup_smart_contract_address_or_die(const string&, const string&): Assertion `r.find("\"result\":null") == std::string::npos' failed. Don't know why driver sometimes don't find adress, because it is committed on network. Unfortunately I get this error sometimes running automated tests with 1, 2 server tests and always with 3 servers. It is always like a lottery. Maybe it is something with the server, don't know. I will have a look at it. The DAG generation always reached over epoch 0, so it is no problem with that.

ug93tad commented 6 years ago

this sounds like the smart contract wasn't deployed successfully, i.e. it hasn't yet been included in a mined block.

try increase the deploy wait time, e.g. "-wt 120" in the start-clients.sh