Skip to content

Commit

Permalink
Change max_ext_msg_per_addr_time_window; cleanup mempool by timer
Browse files Browse the repository at this point in the history
  • Loading branch information
SpyCheese committed May 28, 2024
1 parent dcd7ee7 commit 7a302c5
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
12 changes: 11 additions & 1 deletion validator/manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,7 @@ void ValidatorManagerImpl::check_external_message(td::BufferSlice data, td::Prom
return;
}
td::actor::send_lambda(SelfId, [=, promise = std::move(promise), message = R.move_as_ok()]() mutable {
if (self->checked_ext_msg_counter_.inc_msg_count(wc, addr) > max_ext_msg_per_addr_time_window()) {
if (self->checked_ext_msg_counter_.inc_msg_count(wc, addr) > max_ext_msg_per_addr()) {
promise.set_error(
td::Status::Error(PSTRING() << "too many external messages to address " << wc << ":" << addr.to_hex()));
return;
Expand Down Expand Up @@ -2620,6 +2620,16 @@ void ValidatorManagerImpl::alarm() {
log_ls_stats_at_ = td::Timestamp::in(60.0);
}
alarm_timestamp().relax(log_ls_stats_at_);
if (cleanup_mempool_at_.is_in_past()) {
if (is_validator()) {
get_external_messages(ShardIdFull{masterchainId, shardIdAll},
[](td::Result<std::vector<std::pair<td::Ref<ExtMessage>, int>>>) {});
get_external_messages(ShardIdFull{basechainId, shardIdAll},
[](td::Result<std::vector<std::pair<td::Ref<ExtMessage>, int>>>) {});
}
cleanup_mempool_at_ = td::Timestamp::in(250.0);
}
alarm_timestamp().relax(cleanup_mempool_at_);
}

void ValidatorManagerImpl::update_shard_client_state(BlockIdExt masterchain_block_id, td::Promise<td::Unit> promise) {
Expand Down
5 changes: 3 additions & 2 deletions validator/manager.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@ class ValidatorManagerImpl : public ValidatorManager {
};
std::map<int, ExtMessages> ext_msgs_; // priority -> messages
std::map<ExtMessage::Hash, std::pair<int, MessageId<ExtMessage>>> ext_messages_hashes_; // hash -> priority
td::Timestamp cleanup_mempool_at_;
// IHR ?
std::map<MessageId<IhrMessage>, std::unique_ptr<MessageExt<IhrMessage>>> ihr_messages_;
std::map<IhrMessage::Hash, MessageId<IhrMessage>> ihr_messages_hashes_;
Expand Down Expand Up @@ -688,10 +689,10 @@ class ValidatorManagerImpl : public ValidatorManager {
return 128;
}
static double max_ext_msg_per_addr_time_window() {
return 60;
return 10.0;
}
static size_t max_ext_msg_per_addr() {
return 3 * 60;
return 3 * 10;
}

private:
Expand Down

0 comments on commit 7a302c5

Please sign in to comment.