mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
validator bugfix + old key blocks download improvement
This commit is contained in:
parent
be9c34c62d
commit
16a4566091
13 changed files with 315 additions and 121 deletions
|
@ -30,15 +30,16 @@ namespace validator {
|
|||
|
||||
namespace fullnode {
|
||||
|
||||
DownloadProof::DownloadProof(BlockIdExt block_id, bool allow_partial_proof, adnl::AdnlNodeIdShort local_id,
|
||||
overlay::OverlayIdShort overlay_id, adnl::AdnlNodeIdShort download_from,
|
||||
td::uint32 priority, td::Timestamp timeout,
|
||||
DownloadProof::DownloadProof(BlockIdExt block_id, bool allow_partial_proof, bool is_key_block,
|
||||
adnl::AdnlNodeIdShort local_id, overlay::OverlayIdShort overlay_id,
|
||||
adnl::AdnlNodeIdShort download_from, td::uint32 priority, td::Timestamp timeout,
|
||||
td::actor::ActorId<ValidatorManagerInterface> validator_manager,
|
||||
td::actor::ActorId<rldp::Rldp> rldp, td::actor::ActorId<overlay::Overlays> overlays,
|
||||
td::actor::ActorId<adnl::Adnl> adnl, td::actor::ActorId<adnl::AdnlExtClient> client,
|
||||
td::Promise<td::BufferSlice> promise)
|
||||
: block_id_(block_id)
|
||||
, allow_partial_proof_(allow_partial_proof)
|
||||
, is_key_block_(is_key_block)
|
||||
, local_id_(local_id)
|
||||
, overlay_id_(overlay_id)
|
||||
, download_from_(download_from)
|
||||
|
@ -155,8 +156,14 @@ void DownloadProof::got_node_to_download(adnl::AdnlNodeIdShort node) {
|
|||
}
|
||||
});
|
||||
|
||||
auto query = create_serialize_tl_object<ton_api::tonNode_prepareBlockProof>(create_tl_block_id(block_id_),
|
||||
td::BufferSlice query;
|
||||
if (!is_key_block_) {
|
||||
query = create_serialize_tl_object<ton_api::tonNode_prepareBlockProof>(create_tl_block_id(block_id_),
|
||||
allow_partial_proof_);
|
||||
} else {
|
||||
query = create_serialize_tl_object<ton_api::tonNode_prepareKeyBlockProof>(create_tl_block_id(block_id_),
|
||||
allow_partial_proof_);
|
||||
}
|
||||
|
||||
if (client_.empty()) {
|
||||
td::actor::send_closure(overlays_, &overlay::Overlays::send_query, download_from_, local_id_, overlay_id_,
|
||||
|
@ -190,7 +197,12 @@ void DownloadProof::got_block_proof_description(td::BufferSlice proof_descriptio
|
|||
}
|
||||
});
|
||||
|
||||
auto query = create_serialize_tl_object<ton_api::tonNode_downloadBlockProof>(create_tl_block_id(block_id_));
|
||||
td::BufferSlice query;
|
||||
if (!is_key_block_) {
|
||||
query = create_serialize_tl_object<ton_api::tonNode_downloadBlockProof>(create_tl_block_id(block_id_));
|
||||
} else {
|
||||
query = create_serialize_tl_object<ton_api::tonNode_downloadKeyBlockProof>(create_tl_block_id(block_id_));
|
||||
}
|
||||
if (client_.empty()) {
|
||||
td::actor::send_closure(overlays_, &overlay::Overlays::send_query_via, download_from_, local_id_,
|
||||
overlay_id_, "download block proof", std::move(P), td::Timestamp::in(3.0),
|
||||
|
@ -214,8 +226,14 @@ void DownloadProof::got_block_proof_description(td::BufferSlice proof_descriptio
|
|||
}
|
||||
});
|
||||
|
||||
auto query =
|
||||
create_serialize_tl_object<ton_api::tonNode_downloadBlockProofLink>(create_tl_block_id(block_id_));
|
||||
td::BufferSlice query;
|
||||
if (!is_key_block_) {
|
||||
query =
|
||||
create_serialize_tl_object<ton_api::tonNode_downloadBlockProofLink>(create_tl_block_id(block_id_));
|
||||
} else {
|
||||
query =
|
||||
create_serialize_tl_object<ton_api::tonNode_downloadKeyBlockProofLink>(create_tl_block_id(block_id_));
|
||||
}
|
||||
if (client_.empty()) {
|
||||
td::actor::send_closure(overlays_, &overlay::Overlays::send_query_via, download_from_, local_id_,
|
||||
overlay_id_, "download block proof link", std::move(P), td::Timestamp::in(3.0),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue