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),
|
application_path (application_path_a),
|
||||||
port_mapping (*this),
|
port_mapping (*this),
|
||||||
rep_crawler (*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),
|
warmed_up (0),
|
||||||
block_processor (*this, write_database_queue),
|
block_processor (*this, write_database_queue),
|
||||||
online_reps (ledger, config),
|
online_reps (ledger, config),
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@
|
||||||
#include <nano/node/nodeconfig.hpp>
|
#include <nano/node/nodeconfig.hpp>
|
||||||
#include <nano/node/online_reps.hpp>
|
#include <nano/node/online_reps.hpp>
|
||||||
#include <nano/node/repcrawler.hpp>
|
#include <nano/node/repcrawler.hpp>
|
||||||
#include <nano/node/signatures.hpp>
|
|
||||||
#include <nano/node/vote_processor.hpp>
|
#include <nano/node/vote_processor.hpp>
|
||||||
#include <nano/secure/common.hpp>
|
#include <nano/secure/common.hpp>
|
||||||
#include <nano/secure/ledger.hpp>
|
#include <nano/secure/ledger.hpp>
|
||||||
|
|
@ -17,8 +16,7 @@
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
using namespace std::chrono_literals;
|
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) :
|
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) :
|
||||||
checker (checker_a),
|
|
||||||
active (active_a),
|
active (active_a),
|
||||||
observers (observers_a),
|
observers (observers_a),
|
||||||
stats (stats_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)
|
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)
|
for (auto const & vote : votes_a)
|
||||||
{
|
{
|
||||||
hashes.push_back (vote.first->hash ());
|
if (!nano::validate_message (vote.first->account, vote.first->hash (), vote.first->signature))
|
||||||
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)
|
|
||||||
{
|
{
|
||||||
vote_blocking (vote.first, vote.second, true);
|
vote_blocking (vote.first, vote.second, true);
|
||||||
}
|
}
|
||||||
++i;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ namespace transport
|
||||||
class vote_processor final
|
class vote_processor final
|
||||||
{
|
{
|
||||||
public:
|
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 */
|
/** Returns false if the vote was processed */
|
||||||
bool vote (std::shared_ptr<nano::vote> const &, std::shared_ptr<nano::transport::channel> const &);
|
bool vote (std::shared_ptr<nano::vote> const &, std::shared_ptr<nano::transport::channel> const &);
|
||||||
|
|
@ -56,7 +56,6 @@ public:
|
||||||
private:
|
private:
|
||||||
void process_loop ();
|
void process_loop ();
|
||||||
|
|
||||||
nano::signature_checker & checker;
|
|
||||||
nano::active_transactions & active;
|
nano::active_transactions & active;
|
||||||
nano::node_observers & observers;
|
nano::node_observers & observers;
|
||||||
nano::stats & stats;
|
nano::stats & stats;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue