mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
Fix estimating block size, repeat collation on error (#1178)
* Fix extimating block size, repeat collation on error * Cancel collation when it is non needed
This commit is contained in:
parent
fc5e71fc15
commit
257cd8cd9c
8 changed files with 150 additions and 44 deletions
|
@ -76,6 +76,9 @@ class Collator final : public td::actor::Actor {
|
|||
td::Timestamp timeout;
|
||||
td::Timestamp queue_cleanup_timeout_, soft_timeout_, medium_timeout_;
|
||||
td::Promise<BlockCandidate> main_promise;
|
||||
unsigned mode_ = 0;
|
||||
int attempt_idx_;
|
||||
bool allow_repeat_collation_ = false;
|
||||
ton::BlockSeqno last_block_seqno{0};
|
||||
ton::BlockSeqno prev_mc_block_seqno{0};
|
||||
ton::BlockSeqno new_block_seqno{0};
|
||||
|
@ -90,7 +93,8 @@ class Collator final : public td::actor::Actor {
|
|||
public:
|
||||
Collator(ShardIdFull shard, bool is_hardfork, BlockIdExt min_masterchain_block_id, std::vector<BlockIdExt> prev,
|
||||
Ref<ValidatorSet> validator_set, Ed25519_PublicKey collator_id, Ref<CollatorOptions> collator_opts,
|
||||
td::actor::ActorId<ValidatorManager> manager, td::Timestamp timeout, td::Promise<BlockCandidate> promise);
|
||||
td::actor::ActorId<ValidatorManager> manager, td::Timestamp timeout, td::Promise<BlockCandidate> promise,
|
||||
td::CancellationToken cancellation_token, unsigned mode, int attempt_idx);
|
||||
~Collator() override = default;
|
||||
bool is_busy() const {
|
||||
return busy_;
|
||||
|
@ -318,6 +322,7 @@ class Collator final : public td::actor::Actor {
|
|||
bool insert_out_msg(Ref<vm::Cell> out_msg);
|
||||
bool insert_out_msg(Ref<vm::Cell> out_msg, td::ConstBitPtr msg_hash);
|
||||
bool register_out_msg_queue_op(bool force = false);
|
||||
bool register_dispatch_queue_op(bool force = false);
|
||||
bool update_min_mc_seqno(ton::BlockSeqno some_mc_seqno);
|
||||
bool combine_account_transactions();
|
||||
bool update_public_libraries();
|
||||
|
@ -348,10 +353,14 @@ class Collator final : public td::actor::Actor {
|
|||
bool create_block();
|
||||
Ref<vm::Cell> collate_shard_block_descr_set();
|
||||
bool create_collated_data();
|
||||
|
||||
bool create_block_candidate();
|
||||
void return_block_candidate(td::Result<td::Unit> saved);
|
||||
bool update_last_proc_int_msg(const std::pair<ton::LogicalTime, ton::Bits256>& new_lt_hash);
|
||||
|
||||
td::CancellationToken cancellation_token_;
|
||||
bool check_cancelled();
|
||||
|
||||
public:
|
||||
static td::uint32 get_skip_externals_queue_size();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue