Skip to content

Commit

Permalink
audi republish (#2052)
Browse files Browse the repository at this point in the history
Signed-off-by: turuslan <turuslan.devbox@gmail.com>
  • Loading branch information
turuslan authored Apr 24, 2024
1 parent 4fc15ff commit e887854
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 8 deletions.
1 change: 1 addition & 0 deletions core/authority_discovery/interval.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

#pragma once

#include <boost/assert.hpp>
#include <libp2p/basic/scheduler.hpp>

namespace kagome::authority_discovery {
Expand Down
22 changes: 15 additions & 7 deletions core/authority_discovery/publisher/address_publisher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ std::vector<uint8_t> pbEncodeVec(const T &v) {
}

namespace kagome::authority_discovery {
constexpr std::chrono::seconds kIntervalInitial{2};
constexpr std::chrono::hours kIntervalMax{1};

AddressPublisher::AddressPublisher(
std::shared_ptr<runtime::AuthorityDiscoveryApi> authority_discovery_api,
network::Roles roles,
Expand All @@ -44,7 +47,7 @@ namespace kagome::authority_discovery {
sr_crypto_provider_(std::move(sr_crypto_provider)),
host_(host),
kademlia_(std::move(kademlia)),
scheduler_(std::move(scheduler)),
interval_{kIntervalInitial, kIntervalMax, std::move(scheduler)},
log_{log::createLogger("AddressPublisher", "authority_discovery")} {
BOOST_ASSERT(authority_discovery_api_ != nullptr);
BOOST_ASSERT(app_state_manager != nullptr);
Expand All @@ -53,7 +56,6 @@ namespace kagome::authority_discovery {
BOOST_ASSERT(ed_crypto_provider_ != nullptr);
BOOST_ASSERT(sr_crypto_provider_ != nullptr);
BOOST_ASSERT(kademlia_ != nullptr);
BOOST_ASSERT(scheduler_ != nullptr);
app_state_manager->atLaunch([this] { return start(); });
if (libp2p_key.privateKey.type == libp2p::crypto::Key::Type::Ed25519) {
std::array<uint8_t, crypto::constants::ed25519::PRIVKEY_SIZE>
Expand Down Expand Up @@ -82,11 +84,17 @@ namespace kagome::authority_discovery {
if (not roles_.flags.authority) {
return true;
}
// TODO(ortyomka): #1358, republish in scheduler with some interval
auto maybe_error = publishOwnAddress();
if (maybe_error.has_error()) {
SL_ERROR(log_, "publishOwnAddress failed: {}", maybe_error.error());
}
interval_.start([weak_self{weak_from_this()}] {
auto self = weak_self.lock();
if (not self) {
return;
}
auto maybe_error = self->publishOwnAddress();
if (not maybe_error) {
SL_WARN(
self->log_, "publishOwnAddress failed: {}", maybe_error.error());
}
});
return true;
}

Expand Down
3 changes: 2 additions & 1 deletion core/authority_discovery/publisher/address_publisher.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#pragma once

#include "application/app_state_manager.hpp"
#include "authority_discovery/interval.hpp"
#include "blockchain/block_tree.hpp"
#include "crypto/ed25519_provider.hpp"
#include "crypto/key_store/session_keys.hpp"
Expand Down Expand Up @@ -58,7 +59,7 @@ namespace kagome::authority_discovery {
libp2p::Host &host_;
std::shared_ptr<libp2p::protocol::kademlia::Kademlia> kademlia_;

std::shared_ptr<libp2p::basic::Scheduler> scheduler_;
ExpIncInterval interval_;

log::Logger log_;

Expand Down

0 comments on commit e887854

Please sign in to comment.