mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
Improve CollatorNode
* Keep track of validator groups * Pre-generate shard blocks
This commit is contained in:
parent
3695bf0797
commit
90d2edf535
12 changed files with 410 additions and 174 deletions
|
@ -372,6 +372,7 @@ class ValidatorManagerImpl : public ValidatorManager {
|
|||
td::Promise<td::Unit> promise) override;
|
||||
void validate_block(ReceivedBlock block, td::Promise<BlockHandle> promise) override;
|
||||
void prevalidate_block(BlockBroadcast broadcast, td::Promise<td::Unit> promise) override;
|
||||
void validated_block_broadcast(BlockIdExt block_id, CatchainSeqno cc_seqno);
|
||||
|
||||
//void create_validate_block(BlockId block, td::BufferSlice data, td::Promise<Block> promise) = 0;
|
||||
void sync_complete(td::Promise<td::Unit> promise) override;
|
||||
|
@ -562,6 +563,7 @@ class ValidatorManagerImpl : public ValidatorManager {
|
|||
bool is_validator();
|
||||
bool validating_masterchain();
|
||||
PublicKeyHash get_validator(ShardIdFull shard, td::Ref<ValidatorSet> val_set);
|
||||
bool is_shard_collator(ShardIdFull shard);
|
||||
|
||||
ValidatorManagerImpl(td::Ref<ValidatorManagerOptions> opts, std::string db_root,
|
||||
td::actor::ActorId<keyring::Keyring> keyring, td::actor::ActorId<adnl::Adnl> adnl,
|
||||
|
@ -763,6 +765,8 @@ class ValidatorManagerImpl : public ValidatorManager {
|
|||
struct Collator {
|
||||
td::actor::ActorOwn<CollatorNode> actor;
|
||||
std::set<ShardIdFull> shards;
|
||||
|
||||
bool can_collate_shard(ShardIdFull shard) const;
|
||||
};
|
||||
std::map<adnl::AdnlNodeIdShort, Collator> collator_nodes_;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue