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
|
@ -89,6 +89,7 @@ struct Config {
|
|||
ton::validator::fullnode::FullNodeConfig full_node_config;
|
||||
std::map<td::int32, Control> controls;
|
||||
std::set<ton::PublicKeyHash> gc;
|
||||
std::vector<ton::ShardIdFull> shards_to_monitor;
|
||||
|
||||
bool state_serializer_enabled = true;
|
||||
|
||||
|
@ -115,6 +116,8 @@ struct Config {
|
|||
td::Result<bool> config_add_control_interface(ton::PublicKeyHash key, td::int32 port);
|
||||
td::Result<bool> config_add_control_process(ton::PublicKeyHash key, td::int32 port, ton::PublicKeyHash id,
|
||||
td::uint32 permissions);
|
||||
td::Result<bool> config_add_shard(ton::ShardIdFull shard);
|
||||
td::Result<bool> config_del_shard(ton::ShardIdFull shard);
|
||||
td::Result<bool> config_add_gc(ton::PublicKeyHash key);
|
||||
td::Result<bool> config_del_network_addr(td::IPAddress addr, std::vector<AdnlCategory> cats,
|
||||
std::vector<AdnlCategory> prio_cats);
|
||||
|
@ -132,7 +135,7 @@ struct Config {
|
|||
ton::tl_object_ptr<ton::ton_api::engine_validator_config> tl() const;
|
||||
|
||||
Config();
|
||||
Config(ton::ton_api::engine_validator_config &config);
|
||||
Config(const ton::ton_api::engine_validator_config &config);
|
||||
};
|
||||
|
||||
class ValidatorEngine : public td::actor::Actor {
|
||||
|
@ -223,6 +226,8 @@ class ValidatorEngine : public td::actor::Actor {
|
|||
std::string session_logs_file_;
|
||||
bool fast_state_serializer_enabled_ = false;
|
||||
std::string validator_telemetry_filename_;
|
||||
bool not_all_shards_ = false;
|
||||
std::vector<ton::ShardIdFull> add_shard_cmds_;
|
||||
|
||||
std::set<ton::CatchainSeqno> unsafe_catchains_;
|
||||
std::map<ton::BlockSeqno, std::pair<ton::CatchainSeqno, td::uint32>> unsafe_catchain_rotations_;
|
||||
|
@ -314,6 +319,13 @@ class ValidatorEngine : public td::actor::Actor {
|
|||
void set_validator_telemetry_filename(std::string value) {
|
||||
validator_telemetry_filename_ = std::move(value);
|
||||
}
|
||||
void set_not_all_shards() {
|
||||
not_all_shards_ = true;
|
||||
}
|
||||
void add_shard_cmd(ton::ShardIdFull shard) {
|
||||
add_shard_cmds_.push_back(shard);
|
||||
}
|
||||
|
||||
void start_up() override;
|
||||
ValidatorEngine() {
|
||||
}
|
||||
|
@ -323,6 +335,7 @@ class ValidatorEngine : public td::actor::Actor {
|
|||
void load_empty_local_config(td::Promise<td::Unit> promise);
|
||||
void load_local_config(td::Promise<td::Unit> promise);
|
||||
void load_config(td::Promise<td::Unit> promise);
|
||||
void set_shard_check_function();
|
||||
|
||||
void start();
|
||||
|
||||
|
@ -484,6 +497,10 @@ class ValidatorEngine : public td::actor::Actor {
|
|||
ton::PublicKeyHash src, td::uint32 perm, td::Promise<td::BufferSlice> promise);
|
||||
void run_control_query(ton::ton_api::engine_validator_getActorTextStats &query, td::BufferSlice data,
|
||||
ton::PublicKeyHash src, td::uint32 perm, td::Promise<td::BufferSlice> promise);
|
||||
void run_control_query(ton::ton_api::engine_validator_addShard &query, td::BufferSlice data,
|
||||
ton::PublicKeyHash src, td::uint32 perm, td::Promise<td::BufferSlice> promise);
|
||||
void run_control_query(ton::ton_api::engine_validator_delShard &query, td::BufferSlice data,
|
||||
ton::PublicKeyHash src, td::uint32 perm, td::Promise<td::BufferSlice> promise);
|
||||
void run_control_query(ton::ton_api::engine_validator_getPerfTimerStats &query, td::BufferSlice data,
|
||||
ton::PublicKeyHash src, td::uint32 perm, td::Promise<td::BufferSlice> promise);
|
||||
void run_control_query(ton::ton_api::engine_validator_getShardOutQueueSize &query, td::BufferSlice data,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue