Remove unused code related to trying to externally set election status

This commit is contained in:
Colin LeMahieu 2024-03-20 10:36:59 +00:00
commit e4b491754a
No known key found for this signature in database
GPG key ID: 43708520C8DFB938
2 changed files with 9 additions and 33 deletions

View file

@ -34,7 +34,7 @@ nano::election::election (nano::node & node_a, std::shared_ptr<nano::block> cons
last_blocks.emplace (block_a->hash (), block_a); last_blocks.emplace (block_a->hash (), block_a);
} }
void nano::election::confirm_once (nano::unique_lock<nano::mutex> & lock_a, nano::election_status_type type_a) void nano::election::confirm_once (nano::unique_lock<nano::mutex> & lock_a)
{ {
debug_assert (lock_a.owns_lock ()); debug_assert (lock_a.owns_lock ());
@ -51,7 +51,6 @@ void nano::election::confirm_once (nano::unique_lock<nano::mutex> & lock_a, nano
status.confirmation_request_count = confirmation_request_count; status.confirmation_request_count = confirmation_request_count;
status.block_count = nano::narrow_cast<decltype (status.block_count)> (last_blocks.size ()); status.block_count = nano::narrow_cast<decltype (status.block_count)> (last_blocks.size ());
status.voter_count = nano::narrow_cast<decltype (status.voter_count)> (last_votes.size ()); status.voter_count = nano::narrow_cast<decltype (status.voter_count)> (last_votes.size ());
status.type = type_a;
auto const status_l = status; auto const status_l = status;
node.active.recently_confirmed.put (qualified_root, status_l.winner->hash ()); node.active.recently_confirmed.put (qualified_root, status_l.winner->hash ());
@ -403,44 +402,22 @@ void nano::election::confirm_if_quorum (nano::unique_lock<nano::mutex> & lock_a)
} }
if (final_weight >= node.online_reps.delta ()) if (final_weight >= node.online_reps.delta ())
{ {
confirm_once (lock_a, nano::election_status_type::active_confirmed_quorum); confirm_once (lock_a);
} }
} }
} }
boost::optional<nano::election_status_type> nano::election::try_confirm (nano::block_hash const & hash) void nano::election::try_confirm (nano::block_hash const & hash)
{ {
boost::optional<nano::election_status_type> status_type;
nano::unique_lock<nano::mutex> election_lock{ mutex }; nano::unique_lock<nano::mutex> election_lock{ mutex };
auto winner = status.winner; auto winner = status.winner;
if (winner && winner->hash () == hash) if (winner && winner->hash () == hash)
{ {
// Determine if the block was confirmed explicitly via election confirmation or implicitly via confirmation height
if (!confirmed_locked ()) if (!confirmed_locked ())
{ {
confirm_once (election_lock, nano::election_status_type::active_confirmation_height); confirm_once (election_lock);
status_type = nano::election_status_type::active_confirmation_height;
}
else
{
status_type = nano::election_status_type::active_confirmed_quorum;
} }
} }
else
{
status_type = boost::optional<nano::election_status_type>{};
}
return status_type;
}
nano::election_status nano::election::set_status_type (nano::election_status_type status_type)
{
nano::unique_lock<nano::mutex> election_lk{ mutex };
status.type = status_type;
status.confirmation_request_count = confirmation_request_count;
nano::election_status status_l{ status };
election_lk.unlock ();
return status_l;
} }
std::shared_ptr<nano::block> nano::election::find (nano::block_hash const & hash_a) const std::shared_ptr<nano::block> nano::election::find (nano::block_hash const & hash_a) const
@ -709,11 +686,11 @@ bool nano::election::replace_by_weight (nano::unique_lock<nano::mutex> & lock_a,
return replaced; return replaced;
} }
void nano::election::force_confirm (nano::election_status_type type_a) void nano::election::force_confirm ()
{ {
release_assert (node.network_params.network.is_dev_network ()); release_assert (node.network_params.network.is_dev_network ());
nano::unique_lock<nano::mutex> lock{ mutex }; nano::unique_lock<nano::mutex> lock{ mutex };
confirm_once (lock, type_a); confirm_once (lock);
} }
std::unordered_map<nano::block_hash, std::shared_ptr<nano::block>> nano::election::blocks () const std::unordered_map<nano::block_hash, std::shared_ptr<nano::block>> nano::election::blocks () const

View file

@ -146,8 +146,7 @@ public: // Interface
bool publish (std::shared_ptr<nano::block> const & block_a); bool publish (std::shared_ptr<nano::block> const & block_a);
// Confirm this block if quorum is met // Confirm this block if quorum is met
void confirm_if_quorum (nano::unique_lock<nano::mutex> &); void confirm_if_quorum (nano::unique_lock<nano::mutex> &);
boost::optional<nano::election_status_type> try_confirm (nano::block_hash const & hash); void try_confirm (nano::block_hash const & hash);
nano::election_status set_status_type (nano::election_status_type status_type);
/** /**
* Broadcasts vote for the current winner of this election * Broadcasts vote for the current winner of this election
@ -173,7 +172,7 @@ private:
bool confirmed_locked () const; bool confirmed_locked () const;
nano::election_extended_status current_status_locked () const; nano::election_extended_status current_status_locked () const;
// lock_a does not own the mutex on return // lock_a does not own the mutex on return
void confirm_once (nano::unique_lock<nano::mutex> & lock_a, nano::election_status_type = nano::election_status_type::active_confirmed_quorum); void confirm_once (nano::unique_lock<nano::mutex> & lock_a);
bool broadcast_block_predicate () const; bool broadcast_block_predicate () const;
void broadcast_block (nano::confirmation_solicitor &); void broadcast_block (nano::confirmation_solicitor &);
void send_confirm_req (nano::confirmation_solicitor &); void send_confirm_req (nano::confirmation_solicitor &);
@ -217,7 +216,7 @@ private: // Constants
friend class confirmation_solicitor; friend class confirmation_solicitor;
public: // Only used in tests public: // Only used in tests
void force_confirm (nano::election_status_type = nano::election_status_type::active_confirmed_quorum); void force_confirm ();
std::unordered_map<nano::account, nano::vote_info> votes () const; std::unordered_map<nano::account, nano::vote_info> votes () const;
std::unordered_map<nano::block_hash, std::shared_ptr<nano::block>> blocks () const; std::unordered_map<nano::block_hash, std::shared_ptr<nano::block>> blocks () const;