mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
Improve DHT store/load, pinging overlay peers (#840)
* Improve DHT store/load, pinging overlay peers * Fix speed limits in storage * Use keyStoreTypeDirectory in rldp-http-proxy and storage-daemon Mainly for caching synced block in tonlib. --------- Co-authored-by: SpyCheese <mikle98@yandex.ru>
This commit is contained in:
parent
c8918f0c02
commit
550c28d7db
16 changed files with 162 additions and 89 deletions
|
@ -63,11 +63,7 @@ class DhtQuery : public td::actor::Actor {
|
|||
}
|
||||
void send_queries();
|
||||
void add_nodes(DhtNodesList list);
|
||||
void finish_query() {
|
||||
active_queries_--;
|
||||
CHECK(active_queries_ <= k_);
|
||||
send_queries();
|
||||
}
|
||||
void finish_query(adnl::AdnlNodeIdShort id, bool success = true);
|
||||
DhtKeyId get_key() const {
|
||||
return key_;
|
||||
}
|
||||
|
@ -88,16 +84,22 @@ class DhtQuery : public td::actor::Actor {
|
|||
virtual std::string get_name() const = 0;
|
||||
|
||||
private:
|
||||
struct NodeInfo {
|
||||
DhtNode node;
|
||||
int failed_attempts = 0;
|
||||
};
|
||||
DhtMember::PrintId print_id_;
|
||||
adnl::AdnlNodeIdShort src_;
|
||||
std::map<DhtKeyId, DhtNode> list_;
|
||||
std::set<DhtKeyId> pending_ids_;
|
||||
std::map<DhtKeyId, NodeInfo> nodes_;
|
||||
std::set<DhtKeyId> result_list_, pending_queries_;
|
||||
td::uint32 k_;
|
||||
td::uint32 a_;
|
||||
td::int32 our_network_id_;
|
||||
td::actor::ActorId<DhtMember> node_;
|
||||
td::uint32 active_queries_ = 0;
|
||||
|
||||
static const int MAX_ATTEMPTS = 1;
|
||||
|
||||
protected:
|
||||
td::actor::ActorId<adnl::Adnl> adnl_;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue