diff --git a/validator/manager-init.cpp b/validator/manager-init.cpp index cca320ff..1a322c02 100644 --- a/validator/manager-init.cpp +++ b/validator/manager-init.cpp @@ -227,7 +227,7 @@ void ValidatorManagerMasterchainReiniter::choose_masterchain_state() { } if (!p || ValidatorManager::is_persistent_state(h->unix_time(), p->unix_time())) { auto ttl = ValidatorManager::persistent_state_ttl(h->unix_time()); - double time_to_download = 3600; + double time_to_download = 3600 * 3; if (ttl > td::Clocks::system() + time_to_download) { handle = h; break; @@ -259,7 +259,7 @@ void ValidatorManagerMasterchainReiniter::download_masterchain_state() { } }); td::actor::create_actor("downloadstate", block_id_, block_id_, 2, manager_, - td::Timestamp::in(3600), std::move(P)) + td::Timestamp::in(3600 * 3), std::move(P)) .release(); } @@ -267,7 +267,7 @@ void ValidatorManagerMasterchainReiniter::downloaded_masterchain_state(td::Ref{std::move(state)}; CHECK(handle_->received_state()); CHECK(handle_->is_applied()); - + LOG(INFO) << "downloaded masterchain state"; auto P = td::PromiseCreator::lambda([SelfId = actor_id(this)](td::Result R) { R.ensure(); td::actor::send_closure(SelfId, &ValidatorManagerMasterchainReiniter::downloaded_all_shards); @@ -276,6 +276,7 @@ void ValidatorManagerMasterchainReiniter::downloaded_masterchain_state(td::Ref R) { R.ensure(); @@ -286,6 +287,7 @@ void ValidatorManagerMasterchainReiniter::downloaded_all_shards() { void ValidatorManagerMasterchainReiniter::finish() { CHECK(handle_->id().id.seqno == 0 || handle_->is_key_block()); promise_.set_value(ValidatorManagerInitResult{handle_, state_, std::move(client_), handle_, state_, handle_}); + LOG(INFO) << "persistent state download finished"; stop(); } diff --git a/validator/manager.cpp b/validator/manager.cpp index 3abea6e8..9a8fead6 100644 --- a/validator/manager.cpp +++ b/validator/manager.cpp @@ -1328,7 +1328,7 @@ void ValidatorManagerImpl::send_get_zero_state_request(BlockIdExt id, td::uint32 void ValidatorManagerImpl::send_get_persistent_state_request(BlockIdExt id, BlockIdExt masterchain_block_id, td::uint32 priority, td::Promise promise) { - callback_->download_persistent_state(id, masterchain_block_id, priority, td::Timestamp::in(3600.0), + callback_->download_persistent_state(id, masterchain_block_id, priority, td::Timestamp::in(3600 * 3), std::move(promise)); } diff --git a/validator/net/download-state.cpp b/validator/net/download-state.cpp index 0c71133b..49986ce9 100644 --- a/validator/net/download-state.cpp +++ b/validator/net/download-state.cpp @@ -53,7 +53,7 @@ DownloadState::DownloadState(BlockIdExt block_id, BlockIdExt masterchain_block_i void DownloadState::abort_query(td::Status reason) { if (promise_) { if (reason.code() == ErrorCode::notready || reason.code() == ErrorCode::timeout) { - VLOG(FULL_NODE_DEBUG) << "failed to download state " << block_id_ << "from " << download_from_ << ": " << reason; + VLOG(FULL_NODE_DEBUG) << "failed to download state " << block_id_ << " from " << download_from_ << ": " << reason; } else { VLOG(FULL_NODE_NOTICE) << "failed to download state " << block_id_ << " from " << download_from_ << ": " << reason; @@ -115,6 +115,7 @@ void DownloadState::got_block_handle(BlockHandle handle) { void DownloadState::got_node_to_download(adnl::AdnlNodeIdShort node) { download_from_ = node; + LOG(INFO) << "downloading state " << block_id_ << " from " << download_from_; auto P = td::PromiseCreator::lambda([SelfId = actor_id(this)](td::Result R) mutable { if (R.is_error()) { @@ -187,6 +188,10 @@ void DownloadState::got_block_state_part(td::BufferSlice data, td::uint32 reques sum_ += data.size(); parts_.push_back(std::move(data)); + if (sum_ % (1 << 22) == 0) { + LOG(DEBUG) << "downloading state " << block_id_ << ": total=" << sum_; + } + if (last_part) { td::BufferSlice res{td::narrow_cast(sum_)}; auto S = res.as_slice(); @@ -224,6 +229,7 @@ void DownloadState::got_block_state_part(td::BufferSlice data, td::uint32 reques void DownloadState::got_block_state(td::BufferSlice data) { state_ = std::move(data); + LOG(INFO) << "finished downloading state " << block_id_ << ": total=" << sum_; finish_query(); } diff --git a/validator/shard-client.cpp b/validator/shard-client.cpp index 5cafd3ca..c7d87fb4 100644 --- a/validator/shard-client.cpp +++ b/validator/shard-client.cpp @@ -98,8 +98,8 @@ void ShardClient::start_up_init_mode() { }); td::actor::create_actor("downloadstate", shard->top_block_id(), - masterchain_block_handle_->id(), 2, manager_, td::Timestamp::in(3600), - std::move(P)) + masterchain_block_handle_->id(), 2, manager_, + td::Timestamp::in(3600 * 3), std::move(P)) .release(); } }