@@ -700,11 +700,10 @@ void ValidatorManagerImpl::wait_block_state(BlockHandle handle, td::uint32 prior
700700 auto P = td::PromiseCreator::lambda ([SelfId = actor_id (this ), handle](td::Result<td::Ref<ShardState>> R) {
701701 td::actor::send_closure (SelfId, &ValidatorManagerImpl::finished_wait_state, handle, std::move (R));
702702 });
703- auto id =
704- td::actor::create_actor<WaitBlockState>(" waitstate" , handle, priority, actor_id (this ),
705- td::Timestamp::at (timeout.at () + 10.0 ), std::move (P),
706- get_block_persistent_state (handle->id ()))
707- .release ();
703+ auto id = td::actor::create_actor<WaitBlockState>(" waitstate" , handle, priority, actor_id (this ),
704+ td::Timestamp::at (timeout.at () + 10.0 ), std::move (P),
705+ get_block_persistent_state_to_download (handle->id ()))
706+ .release ();
708707 wait_state_[handle->id ()].actor_ = id;
709708 it = wait_state_.find (handle->id ());
710709 }
@@ -1150,9 +1149,10 @@ void ValidatorManagerImpl::finished_wait_state(BlockHandle handle, td::Result<td
11501149 auto P = td::PromiseCreator::lambda ([SelfId = actor_id (this ), handle](td::Result<td::Ref<ShardState>> R) {
11511150 td::actor::send_closure (SelfId, &ValidatorManagerImpl::finished_wait_state, handle, std::move (R));
11521151 });
1153- auto id = td::actor::create_actor<WaitBlockState>(" waitstate" , handle, X.second , actor_id (this ), X.first ,
1154- std::move (P), get_block_persistent_state (handle->id ()))
1155- .release ();
1152+ auto id =
1153+ td::actor::create_actor<WaitBlockState>(" waitstate" , handle, X.second , actor_id (this ), X.first ,
1154+ std::move (P), get_block_persistent_state_to_download (handle->id ()))
1155+ .release ();
11561156 it->second .actor_ = id;
11571157 return ;
11581158 }
@@ -3375,11 +3375,18 @@ void ValidatorManagerImpl::got_persistent_state_descriptions(std::vector<td::Ref
33753375 }
33763376}
33773377
3378- td::Ref<PersistentStateDescription> ValidatorManagerImpl::get_block_persistent_state (BlockIdExt block_id) {
3378+ td::Ref<PersistentStateDescription> ValidatorManagerImpl::get_block_persistent_state_to_download (BlockIdExt block_id) {
3379+ if (block_id.is_masterchain ()) {
3380+ return {};
3381+ }
33793382 auto it = persistent_state_blocks_.find (block_id);
33803383 if (it == persistent_state_blocks_.end ()) {
33813384 return {};
33823385 }
3386+ if (it->second ->masterchain_id .seqno () + 16 >= min_confirmed_masterchain_seqno_) {
3387+ // Do not download persistent states during ordinary shard client sync
3388+ return {};
3389+ }
33833390 return it->second ;
33843391}
33853392
0 commit comments