mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
bugfixes
This commit is contained in:
parent
8be3fc99ed
commit
be9c34c62d
699 changed files with 1171 additions and 978 deletions
|
@ -1379,6 +1379,7 @@ void ValidatorManagerImpl::start_up() {
|
|||
lite_server_cache_ = create_liteserver_cache_actor(actor_id(this), db_root_);
|
||||
token_manager_ = td::actor::create_actor<TokenManager>("tokenmanager");
|
||||
td::mkdir(db_root_ + "/tmp/").ensure();
|
||||
td::mkdir(db_root_ + "/catchains/").ensure();
|
||||
|
||||
auto Q =
|
||||
td::PromiseCreator::lambda([SelfId = actor_id(this)](td::Result<td::actor::ActorOwn<adnl::AdnlExtServer>> R) {
|
||||
|
@ -1714,6 +1715,8 @@ void ValidatorManagerImpl::update_shards() {
|
|||
force_recover = r > 0;
|
||||
}
|
||||
|
||||
BlockSeqno key_seqno = last_key_block_handle_->id().seqno();
|
||||
|
||||
if (allow_validate_) {
|
||||
for (auto &desc : new_shards) {
|
||||
auto shard = desc.first;
|
||||
|
@ -1730,7 +1733,7 @@ void ValidatorManagerImpl::update_shards() {
|
|||
auto validator_id = get_validator(shard, val_set);
|
||||
|
||||
if (!validator_id.is_zero()) {
|
||||
auto val_group_id = get_validator_set_id(shard, val_set, opts_hash);
|
||||
auto val_group_id = get_validator_set_id(shard, val_set, opts_hash, key_seqno, opts);
|
||||
|
||||
if (force_recover) {
|
||||
auto r = opts_->check_unsafe_catchain_rotate(last_masterchain_seqno_, val_set->get_catchain_seqno());
|
||||
|
@ -1744,14 +1747,6 @@ void ValidatorManagerImpl::update_shards() {
|
|||
val_group_id = sha256_bits256(td::Slice(b, 36));
|
||||
}
|
||||
}
|
||||
// DIRTY. But we don't want to create hardfork now
|
||||
// TODO! DELETE IT LATER
|
||||
//if (last_masterchain_seqno_ >= 2904932 && val_set->get_catchain_seqno() == 44896) {
|
||||
// if (opts_->zero_block_id().file_hash.to_hex() ==
|
||||
// "5E994FCF4D425C0A6CE6A792594B7173205F740A39CD56F537DEFD28B48A0F6E") {
|
||||
// val_group_id[0] = !val_group_id[0];
|
||||
// }
|
||||
//}
|
||||
|
||||
VLOG(VALIDATOR_DEBUG) << "validating group " << val_group_id;
|
||||
auto it = validator_groups_.find(val_group_id);
|
||||
|
@ -1785,7 +1780,7 @@ void ValidatorManagerImpl::update_shards() {
|
|||
|
||||
auto validator_id = get_validator(shard, val_set);
|
||||
if (!validator_id.is_zero()) {
|
||||
auto val_group_id = get_validator_set_id(shard, val_set, opts_hash);
|
||||
auto val_group_id = get_validator_set_id(shard, val_set, opts_hash, key_seqno, opts);
|
||||
auto it = next_validator_groups_.find(val_group_id);
|
||||
if (it != next_validator_groups_.end()) {
|
||||
//CHECK(!it->second.empty());
|
||||
|
@ -1869,7 +1864,8 @@ void ValidatorManagerImpl::update_shard_blocks() {
|
|||
}
|
||||
|
||||
ValidatorSessionId ValidatorManagerImpl::get_validator_set_id(ShardIdFull shard, td::Ref<ValidatorSet> val_set,
|
||||
td::Bits256 opts_hash) {
|
||||
td::Bits256 opts_hash, BlockSeqno last_key_block_seqno,
|
||||
const validatorsession::ValidatorSessionOptions &opts) {
|
||||
std::vector<tl_object_ptr<ton_api::validator_groupMember>> vec;
|
||||
auto v = val_set->export_vector();
|
||||
auto vert_seqno = opts_->get_maximal_vertical_seqno();
|
||||
|
@ -1878,12 +1874,18 @@ ValidatorSessionId ValidatorManagerImpl::get_validator_set_id(ShardIdFull shard,
|
|||
vec.push_back(
|
||||
create_tl_object<ton_api::validator_groupMember>(pub_key.compute_short_id().bits256_value(), n.addr, n.weight));
|
||||
}
|
||||
if (vert_seqno == 0) {
|
||||
return create_hash_tl_object<ton_api::validator_group>(shard.workchain, shard.shard, val_set->get_catchain_seqno(),
|
||||
opts_hash, std::move(vec));
|
||||
} else {
|
||||
return create_hash_tl_object<ton_api::validator_groupEx>(shard.workchain, shard.shard, vert_seqno,
|
||||
if (!opts.new_catchain_ids) {
|
||||
if (vert_seqno == 0) {
|
||||
return create_hash_tl_object<ton_api::validator_group>(shard.workchain, shard.shard,
|
||||
val_set->get_catchain_seqno(), opts_hash, std::move(vec));
|
||||
} else {
|
||||
return create_hash_tl_object<ton_api::validator_groupEx>(
|
||||
shard.workchain, shard.shard, vert_seqno, val_set->get_catchain_seqno(), opts_hash, std::move(vec));
|
||||
}
|
||||
} else {
|
||||
return create_hash_tl_object<ton_api::validator_groupNew>(shard.workchain, shard.shard, vert_seqno,
|
||||
last_key_block_seqno, val_set->get_catchain_seqno(),
|
||||
opts_hash, std::move(vec));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue