diff --git a/tl/generate/scheme/ton_api.tl b/tl/generate/scheme/ton_api.tl index 3ddb6949..bae1077c 100644 --- a/tl/generate/scheme/ton_api.tl +++ b/tl/generate/scheme/ton_api.tl @@ -938,7 +938,7 @@ validatorStats.validatedBlock bytes:int collated_data_bytes:int total_time:double work_time:double cpu_work_time:double = validatorStats.ValidatedBlock; -validatorStats.newValidatorGroup.node id:int256 weight:long = validatorStats.newValidatorGroup.Node; +validatorStats.newValidatorGroup.node id:int256 pubkey:PublicKey adnl_id:int256 weight:long = validatorStats.newValidatorGroup.Node; validatorStats.newValidatorGroup session_id:int256 shard:tonNode.shardId cc_seqno:int last_key_block_seqno:int started_at:double self_idx:int self:int256 nodes:(vector validatorStats.newValidatorGroup.node) = validatorStats.NewValidatorGroup; diff --git a/tl/generate/scheme/ton_api.tlo b/tl/generate/scheme/ton_api.tlo index 9522bf9a..98305606 100644 Binary files a/tl/generate/scheme/ton_api.tlo and b/tl/generate/scheme/ton_api.tlo differ diff --git a/validator-session/validator-session-types.h b/validator-session/validator-session-types.h index a2a3ebc1..e613b08a 100644 --- a/validator-session/validator-session-types.h +++ b/validator-session/validator-session-types.h @@ -213,6 +213,8 @@ struct ValidatorSessionStats { struct NewValidatorGroupStats { struct Node { PublicKeyHash id = PublicKeyHash::zero(); + PublicKey pubkey; + adnl::AdnlNodeIdShort adnl_id = adnl::AdnlNodeIdShort::zero(); ValidatorWeight weight = 0; }; @@ -228,8 +230,8 @@ struct NewValidatorGroupStats { tl_object_ptr tl() const { std::vector> nodes_arr; for (const auto &node : nodes) { - nodes_arr.push_back( - create_tl_object(node.id.bits256_value(), node.weight)); + nodes_arr.push_back(create_tl_object( + node.id.bits256_value(), node.pubkey.tl(), node.adnl_id.bits256_value(), node.weight)); } return create_tl_object(session_id, create_tl_shard_id(shard), cc_seqno, last_key_block_seqno, started_at, self_idx, diff --git a/validator/validator-group.cpp b/validator/validator-group.cpp index efa2a428..d3819f07 100644 --- a/validator/validator-group.cpp +++ b/validator/validator-group.cpp @@ -155,8 +155,8 @@ void ValidatorGroup::validate_block_candidate(validatorsession::BlockSourceInfo return; } VLOG(VALIDATOR_DEBUG) << "validating block candidate " << next_block_id; - run_validate_query(shard_, min_masterchain_block_id_, prev_block_ids_, std::move(block), validator_set_, - local_id_, manager_, td::Timestamp::in(15.0), std::move(P)); + run_validate_query(shard_, min_masterchain_block_id_, prev_block_ids_, std::move(block), validator_set_, local_id_, + manager_, td::Timestamp::in(15.0), std::move(P)); } void ValidatorGroup::update_approve_cache(CacheKey key, UnixTime value) { @@ -421,7 +421,11 @@ void ValidatorGroup::start(std::vector prev, BlockIdExt min_masterch if (id == local_id_) { stats.self_idx = idx; } - stats.nodes.push_back(validatorsession::NewValidatorGroupStats::Node{id, node.weight}); + stats.nodes.push_back(validatorsession::NewValidatorGroupStats::Node{ + .id = id, + .pubkey = PublicKey(pubkeys::Ed25519(node.key)), + .adnl_id = (node.addr.is_zero() ? adnl::AdnlNodeIdShort{id} : adnl::AdnlNodeIdShort{node.addr}), + .weight = node.weight}); ++idx; } td::actor::send_closure(manager_, &ValidatorManager::log_new_validator_group_stats, std::move(stats));