Moving work_validate from a free function to a member of nano::work_thresholds.

This commit is contained in:
clemahieu 2021-08-09 00:10:02 +01:00
commit 868ec8679a
No known key found for this signature in database
GPG key ID: 43708520C8DFB938
5 changed files with 7 additions and 8 deletions

View file

@ -194,6 +194,11 @@ uint64_t nano::work_thresholds::difficulty (nano::work_version const version_a,
return result;
}
bool nano::work_thresholds::validate_entry (nano::work_version const version_a, nano::root const & root_a, uint64_t const work_a)
{
return difficulty (version_a, root_a, work_a) < threshold_entry (version_a, nano::block_type::state);
}
namespace nano
{
const char * network_constants::active_network_err_msg = "Invalid network. Valid values are live, test, beta and dev.";

View file

@ -119,6 +119,7 @@ public:
double normalized_multiplier (double const, uint64_t const);
double denormalized_multiplier (double const, uint64_t const);
uint64_t difficulty (nano::work_version const, nano::root const &, uint64_t const);
bool validate_entry (nano::work_version const, nano::root const &, uint64_t const);
/** Network work thresholds. Define these inline as constexpr when moving to cpp17. */
static const nano::work_thresholds publish_full;

View file

@ -28,12 +28,6 @@ bool nano::work_validate_entry (nano::block const & block_a)
return block_a.difficulty () < network_constants.publish_thresholds.threshold_entry (block_a.work_version (), block_a.type ());
}
bool nano::work_validate_entry (nano::work_version const version_a, nano::root const & root_a, uint64_t const work_a)
{
static nano::network_constants network_constants;
return network_constants.publish_thresholds.difficulty (version_a, root_a, work_a) < network_constants.publish_thresholds.threshold_entry (version_a, nano::block_type::state);
}
nano::work_pool::work_pool (nano::network_constants & network_constants, unsigned max_threads_a, std::chrono::nanoseconds pow_rate_limiter_a, std::function<boost::optional<uint64_t> (nano::work_version const, nano::root const &, uint64_t, std::atomic<int> &)> opencl_a) :
network_constants{ network_constants },
ticket (0),

View file

@ -19,7 +19,6 @@ class block;
class block_details;
enum class block_type : uint8_t;
bool work_validate_entry (nano::block const &);
bool work_validate_entry (nano::work_version const, nano::root const &, uint64_t const);
class opencl_work;
class work_item final

View file

@ -1130,7 +1130,7 @@ void nano::wallet::send_async (nano::account const & source_a, nano::account con
// Update work for account if latest root is root_a
void nano::wallet::work_update (nano::transaction const & transaction_a, nano::account const & account_a, nano::root const & root_a, uint64_t work_a)
{
debug_assert (!nano::work_validate_entry (nano::work_version::work_1, root_a, work_a));
debug_assert (!wallets.node.network_params.network.publish_thresholds.validate_entry (nano::work_version::work_1, root_a, work_a));
debug_assert (store.exists (transaction_a, account_a));
auto block_transaction (wallets.node.store.tx_begin_read ());
auto latest (wallets.node.ledger.latest_root (block_transaction, account_a));