@@ -313,18 +313,20 @@ void FullNodeImpl::send_shard_block_info(BlockIdExt block_id, CatchainSeqno cc_s
313
313
}
314
314
315
315
void FullNodeImpl::send_block_candidate (BlockIdExt block_id, CatchainSeqno cc_seqno, td::uint32 validator_set_hash,
316
- td::BufferSlice data) {
317
- send_block_candidate_broadcast_to_custom_overlays (block_id, cc_seqno, validator_set_hash, data);
318
- auto shard = get_shard (ShardIdFull{masterchainId, shardIdAll});
319
- if (shard.empty ()) {
320
- VLOG (FULL_NODE_WARNING) << " dropping OUT shard block info message to unknown shard" ;
321
- return ;
316
+ td::BufferSlice data, int mode) {
317
+ if (mode & broadcast_mode_custom) {
318
+ send_block_candidate_broadcast_to_custom_overlays (block_id, cc_seqno, validator_set_hash, data);
322
319
}
323
- if (!private_block_overlays_.empty ()) {
320
+ if ((mode & broadcast_mode_private_block) && !private_block_overlays_.empty ()) {
324
321
td::actor::send_closure (private_block_overlays_.begin ()->second , &FullNodePrivateBlockOverlay::send_block_candidate,
325
322
block_id, cc_seqno, validator_set_hash, data.clone ());
326
323
}
327
- if (broadcast_block_candidates_in_public_overlay_) {
324
+ if (mode & broadcast_mode_public) {
325
+ auto shard = get_shard (ShardIdFull{masterchainId, shardIdAll});
326
+ if (shard.empty ()) {
327
+ VLOG (FULL_NODE_WARNING) << " dropping OUT shard block info message to unknown shard" ;
328
+ return ;
329
+ }
328
330
td::actor::send_closure (shard, &FullNodeShard::send_block_candidate, block_id, cc_seqno, validator_set_hash,
329
331
std::move (data));
330
332
}
@@ -334,18 +336,18 @@ void FullNodeImpl::send_broadcast(BlockBroadcast broadcast, int mode) {
334
336
if (mode & broadcast_mode_custom) {
335
337
send_block_broadcast_to_custom_overlays (broadcast);
336
338
}
337
- auto shard = get_shard (broadcast.block_id .shard_full ());
338
- if (shard.empty ()) {
339
- VLOG (FULL_NODE_WARNING) << " dropping OUT broadcast to unknown shard" ;
340
- return ;
341
- }
342
339
if (mode & broadcast_mode_private_block) {
343
340
if (!private_block_overlays_.empty ()) {
344
341
td::actor::send_closure (private_block_overlays_.begin ()->second , &FullNodePrivateBlockOverlay::send_broadcast,
345
342
broadcast.clone ());
346
343
}
347
344
}
348
345
if (mode & broadcast_mode_public) {
346
+ auto shard = get_shard (broadcast.block_id .shard_full ());
347
+ if (shard.empty ()) {
348
+ VLOG (FULL_NODE_WARNING) << " dropping OUT broadcast to unknown shard" ;
349
+ return ;
350
+ }
349
351
td::actor::send_closure (shard, &FullNodeShard::send_broadcast, std::move (broadcast));
350
352
}
351
353
}
@@ -556,7 +558,7 @@ void FullNodeImpl::send_validator_telemetry(PublicKeyHash key, tl_object_ptr<ton
556
558
557
559
void FullNodeImpl::process_block_broadcast (BlockBroadcast broadcast) {
558
560
send_block_broadcast_to_custom_overlays (broadcast);
559
- td::actor::send_closure (validator_manager_, &ValidatorManagerInterface::prevalidate_block , std::move (broadcast),
561
+ td::actor::send_closure (validator_manager_, &ValidatorManagerInterface::new_block_broadcast , std::move (broadcast),
560
562
[](td::Result<td::Unit> R) {
561
563
if (R.is_error ()) {
562
564
if (R.error ().code () == ErrorCode::notready) {
@@ -572,7 +574,7 @@ void FullNodeImpl::process_block_candidate_broadcast(BlockIdExt block_id, Catcha
572
574
td::uint32 validator_set_hash, td::BufferSlice data) {
573
575
send_block_candidate_broadcast_to_custom_overlays (block_id, cc_seqno, validator_set_hash, data);
574
576
// ignore cc_seqno and validator_hash for now
575
- td::actor::send_closure (validator_manager_, &ValidatorManagerInterface::new_block_candidate , block_id,
577
+ td::actor::send_closure (validator_manager_, &ValidatorManagerInterface::new_block_candidate_broadcast , block_id,
576
578
std::move (data));
577
579
}
578
580
@@ -630,9 +632,9 @@ void FullNodeImpl::start_up() {
630
632
td::actor::send_closure (id_, &FullNodeImpl::send_shard_block_info, block_id, cc_seqno, std::move (data));
631
633
}
632
634
void send_block_candidate (BlockIdExt block_id, CatchainSeqno cc_seqno, td::uint32 validator_set_hash,
633
- td::BufferSlice data) override {
635
+ td::BufferSlice data, int mode ) override {
634
636
td::actor::send_closure (id_, &FullNodeImpl::send_block_candidate, block_id, cc_seqno, validator_set_hash,
635
- std::move (data));
637
+ std::move (data), mode );
636
638
}
637
639
void send_broadcast (BlockBroadcast broadcast, int mode) override {
638
640
td::actor::send_closure (id_, &FullNodeImpl::send_broadcast, std::move (broadcast), mode);
0 commit comments