16auto main(
int argc, 
char** argv) -> 
int {
 
   19        std::cerr << 
"Usage: " << args[0] << 
" <config file> <shard id>" 
   24    const auto shard_id = std::stoull(args[2]);
 
   27    if(std::holds_alternative<std::string>(cfg_or_err)) {
 
   28        std::cerr << 
"Error loading config file: " 
   29                  << std::get<std::string>(cfg_or_err) << std::endl;
 
   32    auto opts = std::get<cbdc::config::options>(cfg_or_err);
 
   34    if(opts.m_shard_endpoints.size() <= shard_id) {
 
   35        std::cerr << 
"Shard ID not in config file" << std::endl;
 
   39    auto logger = std::make_shared<cbdc::logging::log>(
 
   40        opts.m_shard_loglevels[shard_id]);
 
   50    static std::atomic_bool running{
true};
 
   52    std::signal(SIGINT, [](
int ) {
 
   57        std::this_thread::sleep_for(std::chrono::seconds(1));
 
   60    logger->info(
"Shutting down...");