12auto main(
int argc,
char** argv) ->
int {
15 std::cerr <<
"Usage: " << args[0] <<
" <config file> <sentinel id>"
20 const auto sentinel_id = std::stoull(args[2]);
23 if(std::holds_alternative<std::string>(cfg_or_err)) {
24 std::cerr <<
"Error loading config file: "
25 << std::get<std::string>(cfg_or_err) << std::endl;
28 auto opts = std::get<cbdc::config::options>(cfg_or_err);
30 if(opts.m_sentinel_endpoints.size() <= sentinel_id) {
31 std::cerr <<
"Sentinel ID not in config file" << std::endl;
35 auto logger = std::make_shared<cbdc::logging::log>(
36 opts.m_sentinel_loglevels[sentinel_id]);
38 std::string sha2_impl(SHA256AutoDetect());
39 logger->info(
"using sha2:", sha2_impl);
41 static std::atomic_bool running{
true};
52 std::signal(SIGINT, [](
int ) {
56 logger->info(
"Sentinel running...");
59 static constexpr auto running_check_delay
60 = std::chrono::milliseconds(1000);
61 std::this_thread::sleep_for(running_check_delay);
64 logger->info(
"Shutting down...");