Remove usage of signature_check_set from nano::vote_processor
This commit is contained in:
parent
dd7a4e11b9
commit
dd121a84db
3 changed files with 4 additions and 31 deletions
|
|
@ -176,7 +176,7 @@ nano::node::node (boost::asio::io_context & io_ctx_a, std::filesystem::path cons
|
|||
application_path (application_path_a),
|
||||
port_mapping (*this),
|
||||
rep_crawler (*this),
|
||||
vote_processor (checker, active, observers, stats, config, flags, logger, online_reps, rep_crawler, ledger, network_params),
|
||||
vote_processor (active, observers, stats, config, flags, logger, online_reps, rep_crawler, ledger, network_params),
|
||||
warmed_up (0),
|
||||
block_processor (*this, write_database_queue),
|
||||
online_reps (ledger, config),
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
#include <nano/node/nodeconfig.hpp>
|
||||
#include <nano/node/online_reps.hpp>
|
||||
#include <nano/node/repcrawler.hpp>
|
||||
#include <nano/node/signatures.hpp>
|
||||
#include <nano/node/vote_processor.hpp>
|
||||
#include <nano/secure/common.hpp>
|
||||
#include <nano/secure/ledger.hpp>
|
||||
|
|
@ -17,8 +16,7 @@
|
|||
#include <chrono>
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
nano::vote_processor::vote_processor (nano::signature_checker & checker_a, nano::active_transactions & active_a, nano::node_observers & observers_a, nano::stats & stats_a, nano::node_config & config_a, nano::node_flags & flags_a, nano::logger_mt & logger_a, nano::online_reps & online_reps_a, nano::rep_crawler & rep_crawler_a, nano::ledger & ledger_a, nano::network_params & network_params_a) :
|
||||
checker (checker_a),
|
||||
nano::vote_processor::vote_processor (nano::active_transactions & active_a, nano::node_observers & observers_a, nano::stats & stats_a, nano::node_config & config_a, nano::node_flags & flags_a, nano::logger_mt & logger_a, nano::online_reps & online_reps_a, nano::rep_crawler & rep_crawler_a, nano::ledger & ledger_a, nano::network_params & network_params_a) :
|
||||
active (active_a),
|
||||
observers (observers_a),
|
||||
stats (stats_a),
|
||||
|
|
@ -134,36 +132,12 @@ bool nano::vote_processor::vote (std::shared_ptr<nano::vote> const & vote_a, std
|
|||
|
||||
void nano::vote_processor::verify_votes (decltype (votes) const & votes_a)
|
||||
{
|
||||
auto size (votes_a.size ());
|
||||
std::vector<unsigned char const *> messages;
|
||||
messages.reserve (size);
|
||||
std::vector<nano::block_hash> hashes;
|
||||
hashes.reserve (size);
|
||||
std::vector<std::size_t> lengths (size, sizeof (nano::block_hash));
|
||||
std::vector<unsigned char const *> pub_keys;
|
||||
pub_keys.reserve (size);
|
||||
std::vector<unsigned char const *> signatures;
|
||||
signatures.reserve (size);
|
||||
std::vector<int> verifications;
|
||||
verifications.resize (size);
|
||||
for (auto const & vote : votes_a)
|
||||
{
|
||||
hashes.push_back (vote.first->hash ());
|
||||
messages.push_back (hashes.back ().bytes.data ());
|
||||
pub_keys.push_back (vote.first->account.bytes.data ());
|
||||
signatures.push_back (vote.first->signature.bytes.data ());
|
||||
}
|
||||
nano::signature_check_set check = { size, messages.data (), lengths.data (), pub_keys.data (), signatures.data (), verifications.data () };
|
||||
checker.verify (check);
|
||||
auto i (0);
|
||||
for (auto const & vote : votes_a)
|
||||
{
|
||||
debug_assert (verifications[i] == 1 || verifications[i] == 0);
|
||||
if (verifications[i] == 1)
|
||||
if (!nano::validate_message (vote.first->account, vote.first->hash (), vote.first->signature))
|
||||
{
|
||||
vote_blocking (vote.first, vote.second, true);
|
||||
}
|
||||
++i;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ namespace transport
|
|||
class vote_processor final
|
||||
{
|
||||
public:
|
||||
vote_processor (nano::signature_checker & checker_a, nano::active_transactions & active_a, nano::node_observers & observers_a, nano::stats & stats_a, nano::node_config & config_a, nano::node_flags & flags_a, nano::logger_mt & logger_a, nano::online_reps & online_reps_a, nano::rep_crawler & rep_crawler_a, nano::ledger & ledger_a, nano::network_params & network_params_a);
|
||||
vote_processor (nano::active_transactions & active_a, nano::node_observers & observers_a, nano::stats & stats_a, nano::node_config & config_a, nano::node_flags & flags_a, nano::logger_mt & logger_a, nano::online_reps & online_reps_a, nano::rep_crawler & rep_crawler_a, nano::ledger & ledger_a, nano::network_params & network_params_a);
|
||||
|
||||
/** Returns false if the vote was processed */
|
||||
bool vote (std::shared_ptr<nano::vote> const &, std::shared_ptr<nano::transport::channel> const &);
|
||||
|
|
@ -56,7 +56,6 @@ public:
|
|||
private:
|
||||
void process_loop ();
|
||||
|
||||
nano::signature_checker & checker;
|
||||
nano::active_transactions & active;
|
||||
nano::node_observers & observers;
|
||||
nano::stats & stats;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue