1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-03-09 15:40:10 +00:00

too big catchain workaround

This commit is contained in:
ton 2020-04-04 17:27:19 +04:00
parent d17186896b
commit b73b057e08
4 changed files with 40 additions and 0 deletions

View file

@ -94,6 +94,14 @@ struct ValidatorManagerOptionsImpl : public ValidatorManagerOptions {
bool check_unsafe_resync_allowed(CatchainSeqno seqno) const override {
return unsafe_catchains_.count(seqno) > 0;
}
td::uint32 check_unsafe_catchain_rotate(BlockSeqno seqno, CatchainSeqno cc_seqno) const override {
auto it = unsafe_catchain_rotates_.find(cc_seqno);
if (it == unsafe_catchain_rotates_.end()) {
return 0;
} else {
return it->second.first <= seqno ? it->second.second : 0;
}
}
void set_zero_block_id(BlockIdExt block_id) override {
zero_block_id_ = block_id;
@ -135,6 +143,9 @@ struct ValidatorManagerOptionsImpl : public ValidatorManagerOptions {
void add_unsafe_resync_catchain(CatchainSeqno seqno) override {
unsafe_catchains_.insert(seqno);
}
void add_unsafe_catchain_rotate(BlockSeqno seqno, CatchainSeqno cc_seqno, td::uint32 value) override {
unsafe_catchain_rotates_[cc_seqno] = std::make_pair(seqno, value);
}
ValidatorManagerOptionsImpl *make_copy() const override {
return new ValidatorManagerOptionsImpl(*this);
@ -171,6 +182,7 @@ struct ValidatorManagerOptionsImpl : public ValidatorManagerOptions {
std::vector<BlockIdExt> hardforks_;
td::uint32 db_depth_ = 2;
std::set<CatchainSeqno> unsafe_catchains_;
std::map<CatchainSeqno, std::pair<BlockSeqno, td::uint32>> unsafe_catchain_rotates_;
};
} // namespace validator