1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-03-09 15:40:10 +00:00
new database
fift/func bugfixes
This commit is contained in:
ton 2019-11-15 18:02:37 +04:00
parent 950e292264
commit e30d98eb30
110 changed files with 6102 additions and 2075 deletions

View file

@ -236,6 +236,7 @@ class ValidatorManagerImpl : public ValidatorManager {
BlockHandle last_key_block_handle_;
BlockHandle last_known_key_block_handle_;
BlockHandle shard_client_handle_;
BlockHandle gc_masterchain_handle_;
td::Ref<MasterchainState> gc_masterchain_state_;
@ -308,6 +309,8 @@ class ValidatorManagerImpl : public ValidatorManager {
td::int64 max_length, td::Promise<td::BufferSlice> promise) override;
void get_block_proof(BlockHandle handle, td::Promise<td::BufferSlice> promise) override;
void get_block_proof_link(BlockHandle block_id, td::Promise<td::BufferSlice> promise) override;
void get_key_block_proof(BlockIdExt block_id, td::Promise<td::BufferSlice> promise) override;
void get_key_block_proof_link(BlockIdExt block_id, td::Promise<td::BufferSlice> promise) override;
//void get_block_description(BlockIdExt block_id, td::Promise<BlockDescription> promise) override;
void new_external_message(td::BufferSlice data) override;
@ -385,11 +388,11 @@ class ValidatorManagerImpl : public ValidatorManager {
void get_block_proof_link_from_db(BlockHandle handle, td::Promise<td::Ref<ProofLink>> promise) override;
void get_block_proof_link_from_db_short(BlockIdExt id, td::Promise<td::Ref<ProofLink>> promise) override;
void get_block_by_lt_from_db(AccountIdPrefixFull account, LogicalTime lt, td::Promise<BlockIdExt> promise) override;
void get_block_by_lt_from_db(AccountIdPrefixFull account, LogicalTime lt, td::Promise<BlockHandle> promise) override;
void get_block_by_unix_time_from_db(AccountIdPrefixFull account, UnixTime ts,
td::Promise<BlockIdExt> promise) override;
td::Promise<BlockHandle> promise) override;
void get_block_by_seqno_from_db(AccountIdPrefixFull account, BlockSeqno seqno,
td::Promise<BlockIdExt> promise) override;
td::Promise<BlockHandle> promise) override;
// get block handle declared in parent class
void write_handle(BlockHandle handle, td::Promise<td::Unit> promise) override;
@ -424,6 +427,10 @@ class ValidatorManagerImpl : public ValidatorManager {
void get_async_serializer_state(td::Promise<AsyncSerializerState> promise) override;
void try_get_static_file(FileHash file_hash, td::Promise<td::BufferSlice> promise) override;
void try_download_archive_slice();
void downloaded_archive_slice(std::string name);
void checked_archive_slice(std::vector<BlockSeqno> seqno);
void failed_to_download_archive_slice();
void get_download_token(size_t download_size, td::uint32 priority, td::Timestamp timeout,
td::Promise<std::unique_ptr<DownloadToken>> promise) override {
@ -431,6 +438,10 @@ class ValidatorManagerImpl : public ValidatorManager {
std::move(promise));
}
void get_archive_id(BlockSeqno masterchain_seqno, td::Promise<td::uint64> promise) override;
void get_archive_slice(td::uint64 archive_id, td::uint64 offset, td::uint32 limit,
td::Promise<td::BufferSlice> promise) override;
void check_is_hardfork(BlockIdExt block_id, td::Promise<bool> promise) override {
CHECK(block_id.is_masterchain());
promise.set_result(opts_->is_hardfork(block_id));
@ -484,6 +495,9 @@ class ValidatorManagerImpl : public ValidatorManager {
allow_block_state_gc(block_id, std::move(promise));
}
void allow_block_info_gc(BlockIdExt block_id, td::Promise<bool> promise) override;
void archive(BlockHandle handle, td::Promise<td::Unit> promise) override {
td::actor::send_closure(db_, &Db::archive, std::move(handle), std::move(promise));
}
void send_peek_key_block_request();
void got_next_key_blocks(std::vector<BlockIdExt> vec);
@ -544,6 +558,9 @@ class ValidatorManagerImpl : public ValidatorManager {
bool started_ = false;
bool allow_validate_ = false;
bool downloading_archive_slice_ = false;
td::Timestamp next_download_archive_slice_at_ = td::Timestamp::now();
private:
double state_ttl() const {
return opts_->state_ttl();