Skip to content

Commit d6560ca

Browse files
authored
Adjust the delay of the initial node sync (#1860)
* upgrade abseil to August 2025, Patch 1 * Add a new argument to validator-engine that helps to speed up the initial node sync. * correct wording
1 parent 0f6252a commit d6560ca

File tree

4 files changed

+19
-3
lines changed

4 files changed

+19
-3
lines changed

validator-engine/validator-engine.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2240,7 +2240,8 @@ void ValidatorEngine::start_full_node() {
22402240
ton::validator::fullnode::FullNodeOptions full_node_options{
22412241
.config_ = config_.full_node_config,
22422242
.public_broadcast_speed_multiplier_ = broadcast_speed_multiplier_public_,
2243-
.private_broadcast_speed_multiplier_ = broadcast_speed_multiplier_private_};
2243+
.private_broadcast_speed_multiplier_ = broadcast_speed_multiplier_private_,
2244+
.initial_sync_delay_ = initial_sync_delay_};
22442245
full_node_ = ton::validator::fullnode::FullNode::create(
22452246
short_id, full_node_id_, validator_options_->zero_block_id().file_hash,
22462247
full_node_options, keyring_.get(), adnl_.get(), rldp_.get(), rldp2_.get(),
@@ -5572,6 +5573,16 @@ int main(int argc, char *argv[]) {
55725573
"don't select the best persistent state on initial sync, start on init_block from global config", [&]() {
55735574
acts.push_back([&x]() { td::actor::send_closure(x, &ValidatorEngine::set_skip_key_sync, true); });
55745575
});
5576+
p.add_checked_option(
5577+
'\0', "initial-sync-delay", "delay before initial sync completion (in seconds, default: 60.0)",
5578+
[&](td::Slice s) -> td::Status {
5579+
auto v = td::to_double(s);
5580+
if (v < 0) {
5581+
return td::Status::Error("initial-sync-delay should be non-negative");
5582+
}
5583+
acts.push_back([&x, v]() { td::actor::send_closure(x, &ValidatorEngine::set_initial_sync_delay, v); });
5584+
return td::Status::OK();
5585+
});
55755586
p.add_checked_option(
55765587
'\0', "sync-shards-upto", "stop syncing shards on this masterchain seqno", [&](td::Slice s) -> td::Status {
55775588
TRY_RESULT(v, td::to_integer_safe<ton::BlockSeqno>(s));

validator-engine/validator-engine.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ class ValidatorEngine : public td::actor::Actor {
260260
td::optional<ton::BlockSeqno> sync_shards_upto_;
261261
ton::adnl::AdnlNodeIdShort shard_block_retainer_adnl_id_ = ton::adnl::AdnlNodeIdShort::zero();
262262
bool shard_block_retainer_adnl_id_fullnode_ = false;
263+
double initial_sync_delay_ = 60.0;
263264

264265
std::set<ton::CatchainSeqno> unsafe_catchains_;
265266
std::map<ton::BlockSeqno, std::pair<ton::CatchainSeqno, td::uint32>> unsafe_catchain_rotations_;
@@ -390,6 +391,9 @@ class ValidatorEngine : public td::actor::Actor {
390391
void set_shard_block_retainer_adnl_id_fullnode() {
391392
shard_block_retainer_adnl_id_fullnode_ = true;
392393
}
394+
void set_initial_sync_delay(double value) {
395+
initial_sync_delay_ = value;
396+
}
393397

394398
void start_up() override;
395399
ValidatorEngine() {

validator/full-node-shard.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ void FullNodeShardImpl::got_next_block(td::Result<BlockHandle> R) {
213213
if (handle_->unix_time() > td::Clocks::system() - 300) {
214214
promise_.set_value(td::Unit());
215215
} else {
216-
sync_completed_at_ = td::Timestamp::in(60.0);
216+
sync_completed_at_ = td::Timestamp::in(opts_.initial_sync_delay_);
217217
}
218218
}
219219
get_next_block();
@@ -1085,7 +1085,7 @@ void FullNodeShardImpl::set_handle(BlockHandle handle, td::Promise<td::Unit> pro
10851085
promise_ = std::move(promise);
10861086
get_next_block();
10871087

1088-
sync_completed_at_ = td::Timestamp::in(60.0);
1088+
sync_completed_at_ = td::Timestamp::in(opts_.initial_sync_delay_);
10891089
alarm_timestamp().relax(sync_completed_at_);
10901090
}
10911091

validator/full-node.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ struct FullNodeOptions {
5959
FullNodeConfig config_;
6060
double public_broadcast_speed_multiplier_ = 1.0;
6161
double private_broadcast_speed_multiplier_ = 1.0;
62+
double initial_sync_delay_ = 60.0;
6263
};
6364

6465
struct CustomOverlayParams {

0 commit comments

Comments
 (0)