mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
Merge branch 'testnet' into block-generation
This commit is contained in:
commit
a2eb3f3631
45 changed files with 1101 additions and 202 deletions
|
|
@ -111,18 +111,13 @@ void FullNodeShardImpl::create_overlay() {
|
|||
private:
|
||||
td::actor::ActorId<FullNodeShardImpl> node_;
|
||||
};
|
||||
if (is_active()) {
|
||||
td::actor::send_closure(overlays_, &overlay::Overlays::create_public_overlay, adnl_id_, overlay_id_full_.clone(),
|
||||
std::make_unique<Callback>(actor_id(this)), rules_,
|
||||
PSTRING() << "{ \"type\": \"shard\", \"shard_id\": " << get_shard()
|
||||
<< ", \"workchain_id\": " << get_workchain() << " }");
|
||||
} else {
|
||||
td::actor::send_closure(overlays_, &overlay::Overlays::create_public_overlay_ex, adnl_id_, overlay_id_full_.clone(),
|
||||
std::make_unique<Callback>(actor_id(this)), rules_,
|
||||
PSTRING() << "{ \"type\": \"shard\", \"shard_id\": " << get_shard()
|
||||
<< ", \"workchain_id\": " << get_workchain() << " }",
|
||||
false);
|
||||
}
|
||||
overlay::OverlayOptions opts;
|
||||
opts.announce_self_ = is_active();
|
||||
td::actor::send_closure(overlays_, &overlay::Overlays::create_public_overlay_ex, adnl_id_, overlay_id_full_.clone(),
|
||||
std::make_unique<Callback>(actor_id(this)), rules_,
|
||||
PSTRING() << "{ \"type\": \"shard\", \"shard_id\": " << get_shard()
|
||||
<< ", \"workchain_id\": " << get_workchain() << " }",
|
||||
opts);
|
||||
|
||||
td::actor::send_closure(rldp_, &rldp::Rldp::add_id, adnl_id_);
|
||||
td::actor::send_closure(rldp2_, &rldp2::Rldp::add_id, adnl_id_);
|
||||
|
|
@ -145,6 +140,9 @@ void FullNodeShardImpl::check_broadcast(PublicKeyHash src, td::BufferSlice broad
|
|||
}
|
||||
|
||||
auto q = B.move_as_ok();
|
||||
if (!processed_ext_msg_broadcasts_.insert(td::sha256_bits256(q->message_->data_)).second) {
|
||||
return promise.set_error(td::Status::Error("duplicate external message broadcast"));
|
||||
}
|
||||
if (config_.ext_messages_broadcast_disabled_) {
|
||||
promise.set_error(td::Status::Error("rebroadcasting external messages is disabled"));
|
||||
promise = [manager = validator_manager_, message = q->message_->data_.clone()](td::Result<td::Unit> R) mutable {
|
||||
|
|
@ -827,6 +825,9 @@ void FullNodeShardImpl::send_external_message(td::BufferSlice data) {
|
|||
});
|
||||
return;
|
||||
}
|
||||
if (!processed_ext_msg_broadcasts_.insert(td::sha256_bits256(data)).second) {
|
||||
return;
|
||||
}
|
||||
auto B = create_serialize_tl_object<ton_api::tonNode_externalMessageBroadcast>(
|
||||
create_tl_object<ton_api::tonNode_externalMessage>(std::move(data)));
|
||||
if (B.size() <= overlay::Overlays::max_simple_broadcast_size()) {
|
||||
|
|
@ -1017,10 +1018,15 @@ void FullNodeShardImpl::alarm() {
|
|||
update_certificate_at_ = td::Timestamp::never();
|
||||
}
|
||||
}
|
||||
if (cleanup_processed_ext_msg_at_ && cleanup_processed_ext_msg_at_.is_in_past()) {
|
||||
processed_ext_msg_broadcasts_.clear();
|
||||
cleanup_processed_ext_msg_at_ = td::Timestamp::in(60.0);
|
||||
}
|
||||
alarm_timestamp().relax(sync_completed_at_);
|
||||
alarm_timestamp().relax(update_certificate_at_);
|
||||
alarm_timestamp().relax(reload_neighbours_at_);
|
||||
alarm_timestamp().relax(ping_neighbours_at_);
|
||||
alarm_timestamp().relax(cleanup_processed_ext_msg_at_);
|
||||
}
|
||||
|
||||
void FullNodeShardImpl::start_up() {
|
||||
|
|
@ -1037,8 +1043,8 @@ void FullNodeShardImpl::start_up() {
|
|||
|
||||
reload_neighbours_at_ = td::Timestamp::now();
|
||||
ping_neighbours_at_ = td::Timestamp::now();
|
||||
alarm_timestamp().relax(reload_neighbours_at_);
|
||||
alarm_timestamp().relax(ping_neighbours_at_);
|
||||
cleanup_processed_ext_msg_at_ = td::Timestamp::now();
|
||||
alarm_timestamp().relax(td::Timestamp::now());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue