From cd8cd6bca62035d6a027e314953ed1736080c2e1 Mon Sep 17 00:00:00 2001 From: turuslan Date: Fri, 6 Oct 2023 08:48:23 +0300 Subject: [PATCH 1/2] vote synchronized Signed-off-by: turuslan --- core/network/beefy/beefy.cpp | 6 ++++++ core/network/beefy/beefy.hpp | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/core/network/beefy/beefy.cpp b/core/network/beefy/beefy.cpp index 298da1ff21..eb282a934c 100644 --- a/core/network/beefy/beefy.cpp +++ b/core/network/beefy/beefy.cpp @@ -11,6 +11,7 @@ #include "blockchain/block_tree_error.hpp" #include "consensus/beefy/digest.hpp" #include "consensus/beefy/sig.hpp" +#include "consensus/timeline/timeline.hpp" #include "crypto/crypto_store/session_keys.hpp" #include "metrics/histogram_timer.hpp" #include "network/beefy/protocol.hpp" @@ -40,6 +41,7 @@ namespace kagome::network { std::shared_ptr db, std::shared_ptr thread_pool, std::shared_ptr main_thread, + std::shared_ptr timeline, std::shared_ptr session_keys, LazySPtr beefy_protocol, std::shared_ptr @@ -51,6 +53,7 @@ namespace kagome::network { strand_inner_{thread_pool->io_context()}, strand_{*strand_inner_}, main_thread_{std::move(main_thread)}, + timeline_{std::move(timeline)}, session_keys_{std::move(session_keys)}, beefy_protocol_{std::move(beefy_protocol)}, min_delta_{chain_spec.isWococo() ? 4u : 8u}, @@ -382,6 +385,9 @@ namespace kagome::network { } outcome::result Beefy::vote() { + if (not timeline_->wasSynchronized()) { + return outcome::success(); + } auto next_session = sessions_.upper_bound(beefy_finalized_ + 1); if (next_session == sessions_.begin()) { SL_VERBOSE(log_, "can't vote: no sessions"); diff --git a/core/network/beefy/beefy.hpp b/core/network/beefy/beefy.hpp index e2f22c4292..e4943a2588 100644 --- a/core/network/beefy/beefy.hpp +++ b/core/network/beefy/beefy.hpp @@ -29,6 +29,10 @@ namespace kagome::blockchain { class BlockTree; } // namespace kagome::blockchain +namespace kagome::consensus { + class Timeline; +} // namespace kagome::consensus + namespace kagome::crypto { class EcdsaProvider; class SessionKeys; @@ -55,6 +59,7 @@ namespace kagome::network { std::shared_ptr db, std::shared_ptr thread_pool, std::shared_ptr main_thread, + std::shared_ptr timeline, std::shared_ptr session_keys, LazySPtr beefy_protocol, std::shared_ptr @@ -103,6 +108,7 @@ namespace kagome::network { std::shared_ptr strand_inner_; boost::asio::io_context::strand strand_; std::shared_ptr main_thread_; + std::shared_ptr timeline_; std::shared_ptr session_keys_; LazySPtr beefy_protocol_; primitives::BlockNumber min_delta_; From 5a21468c3adfe97153f3c4942395012ecf74c845 Mon Sep 17 00:00:00 2001 From: turuslan Date: Fri, 6 Oct 2023 10:30:41 +0300 Subject: [PATCH 2/2] injector cycle Signed-off-by: turuslan --- core/network/beefy/beefy.cpp | 4 ++-- core/network/beefy/beefy.hpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/network/beefy/beefy.cpp b/core/network/beefy/beefy.cpp index eb282a934c..801d4cf24f 100644 --- a/core/network/beefy/beefy.cpp +++ b/core/network/beefy/beefy.cpp @@ -41,7 +41,7 @@ namespace kagome::network { std::shared_ptr db, std::shared_ptr thread_pool, std::shared_ptr main_thread, - std::shared_ptr timeline, + LazySPtr timeline, std::shared_ptr session_keys, LazySPtr beefy_protocol, std::shared_ptr @@ -385,7 +385,7 @@ namespace kagome::network { } outcome::result Beefy::vote() { - if (not timeline_->wasSynchronized()) { + if (not timeline_.get()->wasSynchronized()) { return outcome::success(); } auto next_session = sessions_.upper_bound(beefy_finalized_ + 1); diff --git a/core/network/beefy/beefy.hpp b/core/network/beefy/beefy.hpp index e4943a2588..925523a97a 100644 --- a/core/network/beefy/beefy.hpp +++ b/core/network/beefy/beefy.hpp @@ -59,7 +59,7 @@ namespace kagome::network { std::shared_ptr db, std::shared_ptr thread_pool, std::shared_ptr main_thread, - std::shared_ptr timeline, + LazySPtr timeline, std::shared_ptr session_keys, LazySPtr beefy_protocol, std::shared_ptr @@ -108,7 +108,7 @@ namespace kagome::network { std::shared_ptr strand_inner_; boost::asio::io_context::strand strand_; std::shared_ptr main_thread_; - std::shared_ptr timeline_; + LazySPtr timeline_; std::shared_ptr session_keys_; LazySPtr beefy_protocol_; primitives::BlockNumber min_delta_;