12auto main(
int argc,
char** argv) ->
int {
16 if(!cfg.has_value()) {
17 log->error(
"Error parsing options");
20 log->set_loglevel(cfg->m_loglevel);
22 if(cfg->m_shard_endpoints.size() <= cfg->m_component_id) {
23 log->error(
"No endpoint for component id");
27 if(cfg->m_shard_endpoints[cfg->m_component_id].size() <= *cfg->m_node_id) {
28 log->error(
"No endpoint for node id");
32 auto raft_endpoints = std::vector<cbdc::network::endpoint_t>();
33 for(
auto& e : cfg->m_shard_endpoints[cfg->m_component_id]) {
36 raft_endpoints.push_back(new_ep);
42 cfg->m_shard_endpoints[cfg->m_component_id][*cfg->m_node_id],
45 if(!controller.init()) {
46 log->error(
"Failed to start raft server");
50 static auto running = std::atomic_bool{
true};
52 std::signal(SIGINT, [](
int ) {
56 log->info(
"Shard running");
59 std::this_thread::sleep_for(std::chrono::seconds(1));
62 log->info(
"Shutting down...");