@@ -99,7 +99,7 @@ void FullNodePrivateBlockOverlay::process_block_candidate_broadcast(PublicKeyHas
9999}
100100
101101void FullNodePrivateBlockOverlay::process_telemetry_broadcast (
102- PublicKeyHash src, const tl_object_ptr<ton_api::validator_telemetry>& telemetry) {
102+ PublicKeyHash src, const tl_object_ptr<ton_api::validator_telemetry> & telemetry) {
103103 if (telemetry->adnl_id_ != src.bits256_value ()) {
104104 VLOG (FULL_NODE_WARNING) << " Invalid telemetry broadcast from " << src << " : adnl_id mismatch" ;
105105 return ;
@@ -117,9 +117,7 @@ void FullNodePrivateBlockOverlay::process_telemetry_broadcast(
117117 }
118118 VLOG (FULL_NODE_DEBUG) << " Got telemetry broadcast from " << src;
119119 auto s = td::json_encode<std::string>(td::ToJson (*telemetry), false );
120- std::erase_if (s, [](char c) {
121- return c == ' \n ' || c == ' \r ' ;
122- });
120+ std::erase_if (s, [](char c) { return c == ' \n ' || c == ' \r ' ; });
123121 telemetry_file_ << s << " \n " ;
124122 telemetry_file_.flush ();
125123 if (telemetry_file_.fail ()) {
@@ -141,9 +139,7 @@ void FullNodePrivateBlockOverlay::receive_broadcast(PublicKeyHash src, td::Buffe
141139 }
142140 return ;
143141 }
144- ton_api::downcast_call (*B.move_as_ok (), [src, Self = this ](auto & obj) {
145- Self->process_broadcast (src, obj);
146- });
142+ ton_api::downcast_call (*B.move_as_ok (), [src, Self = this ](auto &obj) { Self->process_broadcast (src, obj); });
147143}
148144
149145void FullNodePrivateBlockOverlay::send_shard_block_info (BlockIdExt block_id, CatchainSeqno cc_seqno,
@@ -286,6 +282,20 @@ void FullNodePrivateBlockOverlay::init() {
286282 td::actor::send_closure (rldp_, &rldp::Rldp::add_id, local_id_);
287283 td::actor::send_closure (rldp2_, &rldp2::Rldp::add_id, local_id_);
288284 inited_ = true ;
285+
286+ class TelemetryCallback : public ValidatorTelemetry ::Callback {
287+ public:
288+ explicit TelemetryCallback (td::actor::ActorId<FullNodePrivateBlockOverlay> id) : id_(id) {
289+ }
290+ void send_telemetry (tl_object_ptr<ton_api::validator_telemetry> telemetry) override {
291+ td::actor::send_closure (id_, &FullNodePrivateBlockOverlay::send_validator_telemetry, std::move (telemetry));
292+ }
293+
294+ private:
295+ td::actor::ActorId<FullNodePrivateBlockOverlay> id_;
296+ };
297+ telemetry_sender_ = td::actor::create_actor<ValidatorTelemetry>(" telemetry" , local_id_,
298+ std::make_unique<TelemetryCallback>(actor_id (this )));
289299}
290300
291301void FullNodePrivateBlockOverlay::tear_down () {
0 commit comments