mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
Fast-sync overlays
* Semiprivate overlays * Fast sync overlays in full-node * Adjust shard overlays
This commit is contained in:
parent
ac3b8d6088
commit
3a8ef60bbb
38 changed files with 2545 additions and 964 deletions
|
@ -24,7 +24,7 @@
|
|||
#include "interfaces/proof.h"
|
||||
#include "interfaces/shard.h"
|
||||
#include "full-node-private-overlay.hpp"
|
||||
#include "full-node-private-overlay-v2.hpp"
|
||||
#include "full-node-fast-sync-overlays.hpp"
|
||||
|
||||
#include <map>
|
||||
#include <set>
|
||||
|
@ -47,9 +47,8 @@ class FullNodeImpl : public FullNode {
|
|||
void add_collator_adnl_id(adnl::AdnlNodeIdShort id) override;
|
||||
void del_collator_adnl_id(adnl::AdnlNodeIdShort id) override;
|
||||
|
||||
void sign_shard_overlay_certificate(ShardIdFull shard_id, PublicKeyHash signed_key,
|
||||
td::uint32 expiry_at, td::uint32 max_size,
|
||||
td::Promise<td::BufferSlice> promise) override;
|
||||
void sign_shard_overlay_certificate(ShardIdFull shard_id, PublicKeyHash signed_key, td::uint32 expiry_at,
|
||||
td::uint32 max_size, td::Promise<td::BufferSlice> promise) override;
|
||||
void import_shard_overlay_certificate(ShardIdFull shard_id, PublicKeyHash signed_key,
|
||||
std::shared_ptr<ton::overlay::Certificate> cert,
|
||||
td::Promise<td::Unit> promise) override;
|
||||
|
@ -60,7 +59,7 @@ class FullNodeImpl : public FullNode {
|
|||
void add_custom_overlay(CustomOverlayParams params, td::Promise<td::Unit> promise) override;
|
||||
void del_custom_overlay(std::string name, td::Promise<td::Unit> promise) override;
|
||||
|
||||
void update_shard_configuration(td::Ref<MasterchainState> state, std::set<ShardIdFull> shards_to_monitor,
|
||||
void on_new_masterchain_block(td::Ref<MasterchainState> state, std::set<ShardIdFull> shards_to_monitor,
|
||||
std::set<ShardIdFull> temporary_shards);
|
||||
|
||||
void sync_completed();
|
||||
|
@ -95,6 +94,11 @@ class FullNodeImpl : public FullNode {
|
|||
void process_block_candidate_broadcast(BlockIdExt block_id, CatchainSeqno cc_seqno, td::uint32 validator_set_hash,
|
||||
td::BufferSlice data) override;
|
||||
|
||||
void import_fast_sync_member_certificate(adnl::AdnlNodeIdShort local_id,
|
||||
overlay::OverlayMemberCertificate cert) override {
|
||||
fast_sync_overlays_.add_member_certificate(local_id, std::move(cert));
|
||||
}
|
||||
|
||||
void start_up() override;
|
||||
|
||||
FullNodeImpl(PublicKeyHash local_id, adnl::AdnlNodeIdShort adnl_id, FileHash zero_state_file_hash,
|
||||
|
@ -145,12 +149,13 @@ class FullNodeImpl : public FullNode {
|
|||
FullNodeConfig config_;
|
||||
|
||||
// Private overlays:
|
||||
// Old overlays - one overlay for all validators
|
||||
// New overlays (v2) - overlay per shard (monitor_min_split depth).
|
||||
bool use_old_private_overlays_ = false; // TODO: set from config
|
||||
// Old overlays - one private overlay for all validators
|
||||
// New overlays (fast sync overlays) - semiprivate overlay per shard (monitor_min_split depth)
|
||||
// for validators and authorized nodes
|
||||
bool use_old_private_overlays_ = false; // TODO: set from config or something
|
||||
std::map<PublicKeyHash, td::actor::ActorOwn<FullNodePrivateBlockOverlay>> private_block_overlays_;
|
||||
bool broadcast_block_candidates_in_public_overlay_ = false;
|
||||
FullNodePrivateBlockOverlaysV2 private_block_overlays_v2_;
|
||||
FullNodeFastSyncOverlays fast_sync_overlays_;
|
||||
|
||||
struct CustomOverlayInfo {
|
||||
CustomOverlayParams params_;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue