From 37f7812a240e419c9aaf39a6069d113cfb45be0b Mon Sep 17 00:00:00 2001 From: Determinant Date: Wed, 27 Mar 2019 15:06:29 -0400 Subject: add options --- include/hotstuff/hotstuff.h | 6 +++--- salticidae | 2 +- src/hotstuff.cpp | 4 ++-- src/hotstuff_app.cpp | 39 +++++++++++++++++++++++++-------------- 4 files changed, 31 insertions(+), 20 deletions(-) diff --git a/include/hotstuff/hotstuff.h b/include/hotstuff/hotstuff.h index c4b87cf..f7acccc 100644 --- a/include/hotstuff/hotstuff.h +++ b/include/hotstuff/hotstuff.h @@ -204,7 +204,7 @@ class HotStuffBase: public HotStuffCore { pacemaker_bt pmaker, EventContext ec, size_t nworker, - const Net::Config &config); + const Net::Config &netconfig); ~HotStuffBase(); @@ -269,7 +269,7 @@ class HotStuff: public HotStuffBase { pacemaker_bt pmaker, EventContext ec = EventContext(), size_t nworker = 4, - const Net::Config &config = Net::Config()): + const Net::Config &netconfig = Net::Config()): HotStuffBase(blk_size, rid, new PrivKeyType(raw_privkey), @@ -277,7 +277,7 @@ class HotStuff: public HotStuffBase { std::move(pmaker), ec, nworker, - config) {} + netconfig) {} void add_replica(ReplicaID idx, const NetAddr &addr, const bytearray_t &pubkey_raw) { DataStream s(pubkey_raw); diff --git a/salticidae b/salticidae index ea6ae75..c91fdee 160000 --- a/salticidae +++ b/salticidae @@ -1 +1 @@ -Subproject commit ea6ae75fccad52d116559f320d6f0069c1ad552b +Subproject commit c91fdee8e845a2eccbc680c2d88748b2ac95a407 diff --git a/src/hotstuff.cpp b/src/hotstuff.cpp index 557a81e..f174559 100644 --- a/src/hotstuff.cpp +++ b/src/hotstuff.cpp @@ -362,13 +362,13 @@ HotStuffBase::HotStuffBase(uint32_t blk_size, pacemaker_bt pmaker, EventContext ec, size_t nworker, - const Net::Config &config): + const Net::Config &netconfig): HotStuffCore(rid, std::move(priv_key)), listen_addr(listen_addr), blk_size(blk_size), ec(ec), vpool(ec, nworker), - pn(ec, config), + pn(ec, netconfig), pmaker(std::move(pmaker)), fetched(0), delivered(0), diff --git a/src/hotstuff_app.cpp b/src/hotstuff_app.cpp index dab0298..e9a97e3 100644 --- a/src/hotstuff_app.cpp +++ b/src/hotstuff_app.cpp @@ -121,7 +121,8 @@ class HotStuffApp: public HotStuff { hotstuff::pacemaker_bt pmaker, const EventContext &ec, size_t nworker, - const Net::Config &config); + const Net::Config &repnet_config, + const ClientNetwork::Config &clinet_config); void start(); }; @@ -153,9 +154,11 @@ int main(int argc, char **argv) { auto opt_fixed_proposer = Config::OptValInt::create(1); auto opt_qc_timeout = Config::OptValDouble::create(0.5); auto opt_imp_timeout = Config::OptValDouble::create(11); - auto opt_nworker = Config::OptValInt::create(4); - auto opt_netnworker = Config::OptValInt::create(4); - auto opt_netburst = Config::OptValInt::create(100); + auto opt_nworker = Config::OptValInt::create(1); + auto opt_repnworker = Config::OptValInt::create(1); + auto opt_repburst = Config::OptValInt::create(100); + auto opt_clinworker = Config::OptValInt::create(8); + auto opt_cliburst = Config::OptValInt::create(1000); config.add_opt("block-size", opt_blk_size, Config::SET_VAL); config.add_opt("parent-limit", opt_parent_limit, Config::SET_VAL); @@ -169,8 +172,10 @@ int main(int argc, char **argv) { config.add_opt("qc-timeout", opt_qc_timeout, Config::SET_VAL, 't', "set QC timeout (for sticky)"); config.add_opt("imp-timeout", opt_imp_timeout, Config::SET_VAL, 'u', "set impeachment timeout (for sticky)"); config.add_opt("nworker", opt_nworker, Config::SET_VAL, 'n', "the number of threads for verification"); - config.add_opt("netnworker", opt_netnworker, Config::SET_VAL, 'm', "the number of threads for network"); - config.add_opt("netburst", opt_netburst, Config::SET_VAL, 'm', "salticidae burst rate"); + config.add_opt("repnworker", opt_repnworker, Config::SET_VAL, 'm', "the number of threads for replica network"); + config.add_opt("repburst", opt_repburst, Config::SET_VAL, 'b', ""); + config.add_opt("clinworker", opt_clinworker, Config::SET_VAL, 'M', "the number of threads for client network"); + config.add_opt("cliburst", opt_cliburst, Config::SET_VAL, 'B', ""); config.add_opt("help", opt_help, Config::SWITCH_ON, 'h', "show this help info"); EventContext ec; @@ -216,10 +221,14 @@ int main(int argc, char **argv) { else pmaker = new hotstuff::PaceMakerDummyFixed(opt_fixed_proposer->get(), parent_limit); - HotStuffApp::Net::Config netconfig; - netconfig - .burst_size(opt_netburst->get()) - .nworker(opt_netnworker->get()); + HotStuffApp::Net::Config repnet_config; + ClientNetwork::Config clinet_config; + repnet_config + .burst_size(opt_repburst->get()) + .nworker(opt_repnworker->get()); + clinet_config + .burst_size(opt_cliburst->get()) + .nworker(opt_clinworker->get()); papp = new HotStuffApp(opt_blk_size->get(), opt_stat_period->get(), opt_imp_timeout->get(), @@ -230,7 +239,8 @@ int main(int argc, char **argv) { std::move(pmaker), ec, opt_nworker->get(), - netconfig); + repnet_config, + clinet_config); for (size_t i = 0; i < replicas.size(); i++) { auto p = split_ip_port_cport(replicas[i].first); @@ -258,13 +268,14 @@ HotStuffApp::HotStuffApp(uint32_t blk_size, hotstuff::pacemaker_bt pmaker, const EventContext &ec, size_t nworker, - const Net::Config &config): + const Net::Config &repnet_config, + const ClientNetwork::Config &clinet_config): HotStuff(blk_size, idx, raw_privkey, - plisten_addr, std::move(pmaker), ec, nworker, config), + plisten_addr, std::move(pmaker), ec, nworker, repnet_config), stat_period(stat_period), impeach_timeout(impeach_timeout), ec(ec), - cn(ec, ClientNetwork::Config().burst_size(1)), + cn(ec, clinet_config), clisten_addr(clisten_addr) { /* register the handlers for msg from clients */ cn.reg_handler(salticidae::generic_bind(&HotStuffApp::client_request_cmd_handler, this, _1, _2)); -- cgit v1.2.3