mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
LS queries to nonfinal blocks (#941)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
This commit is contained in:
parent
0feaaf591c
commit
9452c367e4
23 changed files with 809 additions and 150 deletions
|
@ -47,6 +47,7 @@ class ValidatorGroup : public td::actor::Actor {
|
|||
void get_approved_candidate(PublicKey source, RootHash root_hash, FileHash file_hash,
|
||||
FileHash collated_data_file_hash, td::Promise<BlockCandidate> promise);
|
||||
BlockIdExt create_next_block_id(RootHash root_hash, FileHash file_hash) const;
|
||||
BlockId create_next_block_id_simple() const;
|
||||
|
||||
void start(std::vector<BlockIdExt> prev, BlockIdExt min_masterchain_block_id, UnixTime min_ts);
|
||||
void create_session();
|
||||
|
@ -58,6 +59,9 @@ class ValidatorGroup : public td::actor::Actor {
|
|||
}
|
||||
}
|
||||
|
||||
void get_validator_group_info_for_litequery(
|
||||
td::Promise<tl_object_ptr<lite_api::liteServer_nonfinal_validatorGroupInfo>> promise);
|
||||
|
||||
ValidatorGroup(ShardIdFull shard, PublicKeyHash local_id, ValidatorSessionId session_id,
|
||||
td::Ref<ValidatorSet> validator_set, validatorsession::ValidatorSessionOptions config,
|
||||
td::actor::ActorId<keyring::Keyring> keyring, td::actor::ActorId<adnl::Adnl> adnl,
|
||||
|
@ -135,6 +139,17 @@ class ValidatorGroup : public td::actor::Actor {
|
|||
static CacheKey block_to_cache_key(const BlockCandidate& block) {
|
||||
return std::make_tuple(block.pubkey.as_bits256(), block.id, sha256_bits256(block.data), block.collated_file_hash);
|
||||
}
|
||||
|
||||
void get_validator_group_info_for_litequery_cont(
|
||||
td::uint32 expected_round,
|
||||
std::vector<tl_object_ptr<lite_api::liteServer_nonfinal_candidateInfo>> candidates,
|
||||
td::Promise<tl_object_ptr<lite_api::liteServer_nonfinal_validatorGroupInfo>> promise);
|
||||
|
||||
std::set<std::tuple<td::Bits256, BlockIdExt, FileHash>> available_block_candidates_; // source, id, collated hash
|
||||
|
||||
void add_available_block_candidate(td::Bits256 source, BlockIdExt id, FileHash collated_data_hash) {
|
||||
available_block_candidates_.emplace(source, id, collated_data_hash);
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace validator
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue