Skip to content

Commit ca80ed7

Browse files
committed
Expose PersistentStateType to DownloadShardState
This is the actor which will merge separate parts of a persistent state into a single one in the future commits.
1 parent 3a93b22 commit ca80ed7

File tree

15 files changed

+48
-40
lines changed

15 files changed

+48
-40
lines changed

create-hardfork/create-hardfork.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,8 +258,8 @@ class HardforkCreator : public td::actor::Actor {
258258
td::Promise<td::BufferSlice> promise) override {
259259
}
260260
void download_persistent_state(ton::BlockIdExt block_id, ton::BlockIdExt masterchain_block_id,
261-
td::uint32 priority, td::Timestamp timeout,
262-
td::Promise<td::BufferSlice> promise) override {
261+
ton::validator::PersistentStateType type, td::uint32 priority,
262+
td::Timestamp timeout, td::Promise<td::BufferSlice> promise) override {
263263
}
264264
void download_block_proof(ton::BlockIdExt block_id, td::uint32 priority, td::Timestamp timeout,
265265
td::Promise<td::BufferSlice> promise) override {

test/test-ton-collator.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -359,8 +359,8 @@ class TestNode : public td::actor::Actor {
359359
td::Promise<td::BufferSlice> promise) override {
360360
}
361361
void download_persistent_state(ton::BlockIdExt block_id, ton::BlockIdExt masterchain_block_id,
362-
td::uint32 priority, td::Timestamp timeout,
363-
td::Promise<td::BufferSlice> promise) override {
362+
ton::validator::PersistentStateType type, td::uint32 priority,
363+
td::Timestamp timeout, td::Promise<td::BufferSlice> promise) override {
364364
}
365365
void download_block_proof(ton::BlockIdExt block_id, td::uint32 priority, td::Timestamp timeout,
366366
td::Promise<td::BufferSlice> promise) override {

validator/downloaders/download-state.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ void DownloadShardState::checked_proof_link() {
123123
CHECK(masterchain_block_id_.is_valid());
124124
CHECK(masterchain_block_id_.is_masterchain());
125125
td::actor::send_closure(manager_, &ValidatorManager::send_get_persistent_state_request, block_id_,
126-
masterchain_block_id_, priority_, std::move(P));
126+
masterchain_block_id_, UnsplitStateType{}, priority_, std::move(P));
127127
}
128128
status_.set_status(PSTRING() << block_id_.id.to_str() << " : downloading state");
129129
}

validator/full-node-shard.cpp

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -980,18 +980,20 @@ void FullNodeShardImpl::download_block(BlockIdExt id, td::uint32 priority, td::T
980980

981981
void FullNodeShardImpl::download_zero_state(BlockIdExt id, td::uint32 priority, td::Timestamp timeout,
982982
td::Promise<td::BufferSlice> promise) {
983-
td::actor::create_actor<DownloadState>(PSTRING() << "downloadstatereq" << id.id.to_str(), id, BlockIdExt{}, adnl_id_,
984-
overlay_id_, adnl::AdnlNodeIdShort::zero(), priority, timeout,
985-
validator_manager_, rldp_, overlays_, adnl_, client_, std::move(promise))
983+
td::actor::create_actor<DownloadState>(PSTRING() << "downloadstatereq" << id.id.to_str(), id, BlockIdExt{},
984+
UnsplitStateType{}, adnl_id_, overlay_id_, adnl::AdnlNodeIdShort::zero(),
985+
priority, timeout, validator_manager_, rldp_, overlays_, adnl_, client_,
986+
std::move(promise))
986987
.release();
987988
}
988989

989-
void FullNodeShardImpl::download_persistent_state(BlockIdExt id, BlockIdExt masterchain_block_id, td::uint32 priority,
990-
td::Timestamp timeout, td::Promise<td::BufferSlice> promise) {
990+
void FullNodeShardImpl::download_persistent_state(BlockIdExt id, BlockIdExt masterchain_block_id,
991+
PersistentStateType type, td::uint32 priority, td::Timestamp timeout,
992+
td::Promise<td::BufferSlice> promise) {
991993
auto &b = choose_neighbour();
992994
td::actor::create_actor<DownloadState>(PSTRING() << "downloadstatereq" << id.id.to_str(), id, masterchain_block_id,
993-
UnsplitStateType{}, adnl_id_, overlay_id_, b.adnl_id, priority, timeout,
994-
validator_manager_, rldp2_, overlays_, adnl_, client_, std::move(promise))
995+
type, adnl_id_, overlay_id_, b.adnl_id, priority, timeout, validator_manager_,
996+
rldp2_, overlays_, adnl_, client_, std::move(promise))
995997
.release();
996998
}
997999

@@ -1007,9 +1009,9 @@ void FullNodeShardImpl::download_block_proof(BlockIdExt block_id, td::uint32 pri
10071009
void FullNodeShardImpl::download_block_proof_link(BlockIdExt block_id, td::uint32 priority, td::Timestamp timeout,
10081010
td::Promise<td::BufferSlice> promise) {
10091011
auto &b = choose_neighbour();
1010-
td::actor::create_actor<DownloadProof>("downloadproofreq", block_id, true, false, adnl_id_, overlay_id_,
1011-
b.adnl_id, priority, timeout, validator_manager_, rldp_,
1012-
overlays_, adnl_, client_, create_neighbour_promise(b, std::move(promise)))
1012+
td::actor::create_actor<DownloadProof>("downloadproofreq", block_id, true, false, adnl_id_, overlay_id_, b.adnl_id,
1013+
priority, timeout, validator_manager_, rldp_, overlays_, adnl_, client_,
1014+
create_neighbour_promise(b, std::move(promise)))
10131015
.release();
10141016
}
10151017

validator/full-node-shard.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ class FullNodeShard : public td::actor::Actor {
5555
td::Promise<ReceivedBlock> promise) = 0;
5656
virtual void download_zero_state(BlockIdExt id, td::uint32 priority, td::Timestamp timeout,
5757
td::Promise<td::BufferSlice> promise) = 0;
58-
virtual void download_persistent_state(BlockIdExt id, BlockIdExt masterchain_block_id, td::uint32 priority,
59-
td::Timestamp timeout, td::Promise<td::BufferSlice> promise) = 0;
58+
virtual void download_persistent_state(BlockIdExt id, BlockIdExt masterchain_block_id, PersistentStateType type,
59+
td::uint32 priority, td::Timestamp timeout,
60+
td::Promise<td::BufferSlice> promise) = 0;
6061

6162
virtual void download_block_proof(BlockIdExt block_id, td::uint32 priority, td::Timestamp timeout,
6263
td::Promise<td::BufferSlice> promise) = 0;

validator/full-node-shard.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,9 @@ class FullNodeShardImpl : public FullNodeShard {
178178
td::Promise<ReceivedBlock> promise) override;
179179
void download_zero_state(BlockIdExt id, td::uint32 priority, td::Timestamp timeout,
180180
td::Promise<td::BufferSlice> promise) override;
181-
void download_persistent_state(BlockIdExt id, BlockIdExt masterchain_block_id, td::uint32 priority,
182-
td::Timestamp timeout, td::Promise<td::BufferSlice> promise) override;
181+
void download_persistent_state(BlockIdExt id, BlockIdExt masterchain_block_id, PersistentStateType type,
182+
td::uint32 priority, td::Timestamp timeout,
183+
td::Promise<td::BufferSlice> promise) override;
183184

184185
void download_block_proof(BlockIdExt block_id, td::uint32 priority, td::Timestamp timeout,
185186
td::Promise<td::BufferSlice> promise) override;

validator/full-node.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -374,16 +374,17 @@ void FullNodeImpl::download_zero_state(BlockIdExt id, td::uint32 priority, td::T
374374
td::actor::send_closure(shard, &FullNodeShard::download_zero_state, id, priority, timeout, std::move(promise));
375375
}
376376

377-
void FullNodeImpl::download_persistent_state(BlockIdExt id, BlockIdExt masterchain_block_id, td::uint32 priority,
378-
td::Timestamp timeout, td::Promise<td::BufferSlice> promise) {
377+
void FullNodeImpl::download_persistent_state(BlockIdExt id, BlockIdExt masterchain_block_id, PersistentStateType type,
378+
td::uint32 priority, td::Timestamp timeout,
379+
td::Promise<td::BufferSlice> promise) {
379380
auto shard = get_shard(id.shard_full());
380381
if (shard.empty()) {
381382
VLOG(FULL_NODE_WARNING) << "dropping download state diff query to unknown shard";
382383
promise.set_error(td::Status::Error(ErrorCode::notready, "shard not ready"));
383384
return;
384385
}
385-
td::actor::send_closure(shard, &FullNodeShard::download_persistent_state, id, masterchain_block_id, priority, timeout,
386-
std::move(promise));
386+
td::actor::send_closure(shard, &FullNodeShard::download_persistent_state, id, masterchain_block_id, type, priority,
387+
timeout, std::move(promise));
387388
}
388389

389390
void FullNodeImpl::download_block_proof(BlockIdExt block_id, td::uint32 priority, td::Timestamp timeout,
@@ -647,9 +648,10 @@ void FullNodeImpl::start_up() {
647648
td::Promise<td::BufferSlice> promise) override {
648649
td::actor::send_closure(id_, &FullNodeImpl::download_zero_state, id, priority, timeout, std::move(promise));
649650
}
650-
void download_persistent_state(BlockIdExt id, BlockIdExt masterchain_block_id, td::uint32 priority,
651-
td::Timestamp timeout, td::Promise<td::BufferSlice> promise) override {
652-
td::actor::send_closure(id_, &FullNodeImpl::download_persistent_state, id, masterchain_block_id, priority,
651+
void download_persistent_state(BlockIdExt id, BlockIdExt masterchain_block_id, PersistentStateType type,
652+
td::uint32 priority, td::Timestamp timeout,
653+
td::Promise<td::BufferSlice> promise) override {
654+
td::actor::send_closure(id_, &FullNodeImpl::download_persistent_state, id, masterchain_block_id, type, priority,
653655
timeout, std::move(promise));
654656
}
655657
void download_block_proof(BlockIdExt block_id, td::uint32 priority, td::Timestamp timeout,

validator/full-node.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ class FullNodeImpl : public FullNode {
7171
void download_block(BlockIdExt id, td::uint32 priority, td::Timestamp timeout, td::Promise<ReceivedBlock> promise);
7272
void download_zero_state(BlockIdExt id, td::uint32 priority, td::Timestamp timeout,
7373
td::Promise<td::BufferSlice> promise);
74-
void download_persistent_state(BlockIdExt id, BlockIdExt masterchain_block_id, td::uint32 priority,
75-
td::Timestamp timeout, td::Promise<td::BufferSlice> promise);
74+
void download_persistent_state(BlockIdExt id, BlockIdExt masterchain_block_id, PersistentStateType type,
75+
td::uint32 priority, td::Timestamp timeout, td::Promise<td::BufferSlice> promise);
7676
void download_block_proof(BlockIdExt block_id, td::uint32 priority, td::Timestamp timeout,
7777
td::Promise<td::BufferSlice> promise);
7878
void download_block_proof_link(BlockIdExt block_id, td::uint32 priority, td::Timestamp timeout,

validator/interfaces/validator-manager.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,8 @@ class ValidatorManager : public ValidatorManagerInterface {
135135
virtual void send_get_block_request(BlockIdExt id, td::uint32 priority, td::Promise<ReceivedBlock> promise) = 0;
136136
virtual void send_get_zero_state_request(BlockIdExt id, td::uint32 priority,
137137
td::Promise<td::BufferSlice> promise) = 0;
138-
virtual void send_get_persistent_state_request(BlockIdExt id, BlockIdExt masterchain_block_id, td::uint32 priority,
138+
virtual void send_get_persistent_state_request(BlockIdExt id, BlockIdExt masterchain_block_id,
139+
PersistentStateType type, td::uint32 priority,
139140
td::Promise<td::BufferSlice> promise) = 0;
140141
virtual void send_get_block_proof_request(BlockIdExt block_id, td::uint32 priority,
141142
td::Promise<td::BufferSlice> promise) = 0;

validator/manager-disk.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -911,7 +911,7 @@ void ValidatorManagerImpl::send_get_zero_state_request(BlockIdExt id, td::uint32
911911
}
912912

913913
void ValidatorManagerImpl::send_get_persistent_state_request(BlockIdExt id, BlockIdExt masterchain_block_id,
914-
td::uint32 priority,
914+
PersistentStateType type, td::uint32 priority,
915915
td::Promise<td::BufferSlice> promise) {
916916
UNREACHABLE();
917917
}

0 commit comments

Comments
 (0)