35 std::shared_ptr<logging::log> logger);
49 -> std::optional<cbdc::sentinel::execute_response>
override;
57 -> std::optional<validate_response>
override;
60 uint32_t m_sentinel_id;
62 std::shared_ptr<logging::log> m_logger;
64 std::vector<shard_info> m_shard_data;
68 std::unique_ptr<rpc::server> m_rpc_server;
71 decltype(&secp256k1_context_destroy)>
72 m_secp{secp256k1_context_create(SECP256K1_CONTEXT_SIGN),
73 &secp256k1_context_destroy};
75 std::vector<std::unique_ptr<sentinel::rpc::client>>
78 std::random_device m_r{};
79 std::default_random_engine m_rand{m_r()};
80 std::uniform_int_distribution<size_t> m_dist{};
81 std::uniform_int_distribution<size_t> m_shard_dist{};
82 std::mutex m_rand_mut;
86 void send_transaction(
const transaction::full_tx& tx);
89 const transaction::full_tx& tx,
90 transaction::compact_tx ctx,
91 std::unordered_set<size_t> requested);
93 void gather_attestations(
const transaction::full_tx& tx,
94 const transaction::compact_tx& ctx,
95 std::unordered_set<size_t> requested);
97 void send_compact_tx(
const transaction::compact_tx& ctx);