mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
liteserver: bugfix
liteserver/liteclient: fixed bug in proof validator: added stats smartcontracts: updates
This commit is contained in:
parent
ecb3e06a06
commit
2845f9a2cc
30 changed files with 280 additions and 124 deletions
|
@ -38,6 +38,8 @@
|
|||
|
||||
#include "common/delay.h"
|
||||
|
||||
#include "validator/stats-merger.h"
|
||||
|
||||
namespace ton {
|
||||
|
||||
namespace validator {
|
||||
|
@ -1811,6 +1813,7 @@ void ValidatorManagerImpl::advance_gc(BlockHandle handle, td::Ref<MasterchainSta
|
|||
gc_advancing_ = false;
|
||||
gc_masterchain_handle_ = std::move(handle);
|
||||
gc_masterchain_state_ = std::move(state);
|
||||
try_advance_gc_masterchain_block();
|
||||
}
|
||||
|
||||
void ValidatorManagerImpl::shard_client_update(BlockSeqno seqno) {
|
||||
|
@ -1970,21 +1973,37 @@ void ValidatorManagerImpl::send_peek_key_block_request() {
|
|||
}
|
||||
|
||||
void ValidatorManagerImpl::prepare_stats(td::Promise<std::vector<std::pair<std::string, std::string>>> promise) {
|
||||
auto merger = StatsMerger::create(std::move(promise));
|
||||
|
||||
td::actor::send_closure(db_, &Db::prepare_stats, merger.make_promise("db."));
|
||||
|
||||
std::vector<std::pair<std::string, std::string>> vec;
|
||||
vec.emplace_back("unixtime", td::to_string(static_cast<UnixTime>(td::Clocks::system())));
|
||||
if (!last_masterchain_block_handle_) {
|
||||
promise.set_value(std::move(vec));
|
||||
return;
|
||||
if (last_masterchain_block_handle_) {
|
||||
vec.emplace_back("masterchainblock", last_masterchain_block_id_.to_str());
|
||||
vec.emplace_back("masterchainblocktime", td::to_string(last_masterchain_block_handle_->unix_time()));
|
||||
vec.emplace_back("gcmasterchainblock", gc_masterchain_handle_->id().to_str());
|
||||
vec.emplace_back("keymasterchainblock", last_key_block_handle_->id().to_str());
|
||||
vec.emplace_back("knownkeymasterchainblock", last_known_key_block_handle_->id().to_str());
|
||||
vec.emplace_back("rotatemasterchainblock", last_rotate_block_id_.to_str());
|
||||
//vec.emplace_back("shardclientmasterchainseqno", td::to_string(min_confirmed_masterchain_seqno_));
|
||||
vec.emplace_back("stateserializermasterchainseqno", td::to_string(state_serializer_masterchain_seqno_));
|
||||
}
|
||||
vec.emplace_back("masterchainblock", last_masterchain_block_id_.to_str());
|
||||
vec.emplace_back("masterchainblocktime", td::to_string(last_masterchain_block_handle_->unix_time()));
|
||||
vec.emplace_back("gcmasterchainblock", gc_masterchain_handle_->id().to_str());
|
||||
vec.emplace_back("keymasterchainblock", last_key_block_handle_->id().to_str());
|
||||
vec.emplace_back("knownkeymasterchainblock", last_known_key_block_handle_->id().to_str());
|
||||
vec.emplace_back("rotatemasterchainblock", last_rotate_block_id_.to_str());
|
||||
vec.emplace_back("shardclientmasterchainseqno", td::to_string(min_confirmed_masterchain_seqno_));
|
||||
vec.emplace_back("stateserializermasterchainseqno", td::to_string(state_serializer_masterchain_seqno_));
|
||||
promise.set_value(std::move(vec));
|
||||
|
||||
if (!shard_client_.empty()) {
|
||||
auto P = td::PromiseCreator::lambda([promise = merger.make_promise("")](td::Result<BlockSeqno> R) mutable {
|
||||
if (R.is_error()) {
|
||||
promise.set_error(R.move_as_error());
|
||||
return;
|
||||
}
|
||||
std::vector<std::pair<std::string, std::string>> vec;
|
||||
vec.emplace_back("shardclientmasterchainseqno", td::to_string(R.move_as_ok()));
|
||||
promise.set_value(std::move(vec));
|
||||
});
|
||||
td::actor::send_closure(shard_client_, &ShardClient::get_processed_masterchain_block, std::move(P));
|
||||
}
|
||||
|
||||
merger.make_promise("").set_value(std::move(vec));
|
||||
}
|
||||
|
||||
td::actor::ActorOwn<ValidatorManagerInterface> ValidatorManagerFactory::create(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue