mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
Accelerator: partial fullnodes (#1393)
* Accelerator: partial fullnodes 1) Node can monitor a subset of shards 2) New archive slice format (sharded) 3) Validators are still required to have all shards 4) Support partial liteservers in lite-client, blockchain explorer, tonlib 5) Proxy liteserver * Fix compilation error
This commit is contained in:
parent
62444100f5
commit
954a96a077
83 changed files with 3213 additions and 1113 deletions
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include "interfaces/validator-manager.h"
|
||||
#include "interfaces/db.h"
|
||||
#include "ton/ton-types.h"
|
||||
#include "validator-group.hpp"
|
||||
#include "manager-init.h"
|
||||
#include "manager-hardfork.h"
|
||||
|
@ -334,6 +335,10 @@ class ValidatorManagerImpl : public ValidatorManager {
|
|||
}
|
||||
void send_validator_telemetry(PublicKeyHash key, tl_object_ptr<ton_api::validator_telemetry> telemetry) override {
|
||||
}
|
||||
void send_download_archive_request(BlockSeqno mc_seqno, ShardIdFull shard_prefix, std::string tmp_dir,
|
||||
td::Timestamp timeout, td::Promise<std::string> promise) override {
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
||||
void update_shard_client_state(BlockIdExt masterchain_block_id, td::Promise<td::Unit> promise) override {
|
||||
UNREACHABLE();
|
||||
|
@ -341,8 +346,6 @@ class ValidatorManagerImpl : public ValidatorManager {
|
|||
void get_shard_client_state(bool from_db, td::Promise<BlockIdExt> promise) override {
|
||||
UNREACHABLE();
|
||||
}
|
||||
void subscribe_to_shard(ShardIdFull shard) override {
|
||||
}
|
||||
|
||||
void update_async_serializer_state(AsyncSerializerState state, td::Promise<td::Unit> promise) override {
|
||||
UNREACHABLE();
|
||||
|
@ -358,7 +361,8 @@ class ValidatorManagerImpl : public ValidatorManager {
|
|||
promise.set_error(td::Status::Error(ErrorCode::error, "download disabled"));
|
||||
}
|
||||
|
||||
void get_archive_id(BlockSeqno masterchain_seqno, td::Promise<td::uint64> promise) override {
|
||||
void get_archive_id(BlockSeqno masterchain_seqno, ShardIdFull shard_prefix,
|
||||
td::Promise<td::uint64> promise) override {
|
||||
UNREACHABLE();
|
||||
}
|
||||
void get_archive_slice(td::uint64 archive_id, td::uint64 offset, td::uint32 limit,
|
||||
|
@ -466,8 +470,8 @@ class ValidatorManagerImpl : public ValidatorManager {
|
|||
}
|
||||
void get_out_msg_queue_size(BlockIdExt block_id, td::Promise<td::uint64> promise) override {
|
||||
if (queue_size_counter_.empty()) {
|
||||
queue_size_counter_ =
|
||||
td::actor::create_actor<QueueSizeCounter>("queuesizecounter", td::Ref<MasterchainState>{}, actor_id(this));
|
||||
queue_size_counter_ = td::actor::create_actor<QueueSizeCounter>("queuesizecounter", td::Ref<MasterchainState>{},
|
||||
opts_, actor_id(this));
|
||||
}
|
||||
td::actor::send_closure(queue_size_counter_, &QueueSizeCounter::get_queue_size, block_id, std::move(promise));
|
||||
}
|
||||
|
@ -504,6 +508,8 @@ class ValidatorManagerImpl : public ValidatorManager {
|
|||
void update_options(td::Ref<ValidatorManagerOptions> opts) override {
|
||||
opts_ = std::move(opts);
|
||||
}
|
||||
void add_persistent_state_description(td::Ref<PersistentStateDescription> desc) override {
|
||||
}
|
||||
|
||||
private:
|
||||
td::Ref<ValidatorManagerOptions> opts_;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue