Block method refactor (#1535)
* Using default 0-returning functions on the base class instead of overriding multiple times with the same functionality. * Adding account function to block class that returns the account for blocks that contain this information.
This commit is contained in:
parent
02359570c3
commit
27cd446cf3
3 changed files with 37 additions and 58 deletions
|
@ -86,6 +86,26 @@ nano::block_hash nano::block::full_hash () const
|
|||
return result;
|
||||
}
|
||||
|
||||
nano::account nano::block::representative () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
nano::block_hash nano::block::source () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
nano::block_hash nano::block::link () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
nano::account nano::block::account () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void nano::send_block::visit (nano::block_visitor & visitor_a) const
|
||||
{
|
||||
visitor_a.send_block (*this);
|
||||
|
@ -328,26 +348,11 @@ nano::block_hash nano::send_block::previous () const
|
|||
return hashables.previous;
|
||||
}
|
||||
|
||||
nano::block_hash nano::send_block::source () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
nano::block_hash nano::send_block::root () const
|
||||
{
|
||||
return hashables.previous;
|
||||
}
|
||||
|
||||
nano::block_hash nano::send_block::link () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
nano::account nano::send_block::representative () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
nano::signature nano::send_block::block_signature () const
|
||||
{
|
||||
return signature;
|
||||
|
@ -479,6 +484,11 @@ nano::block_hash nano::open_block::previous () const
|
|||
return result;
|
||||
}
|
||||
|
||||
nano::account nano::open_block::account () const
|
||||
{
|
||||
return hashables.account;
|
||||
}
|
||||
|
||||
void nano::open_block::serialize (nano::stream & stream_a) const
|
||||
{
|
||||
write (stream_a, hashables.source);
|
||||
|
@ -597,11 +607,6 @@ nano::block_hash nano::open_block::root () const
|
|||
return hashables.account;
|
||||
}
|
||||
|
||||
nano::block_hash nano::open_block::link () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
nano::account nano::open_block::representative () const
|
||||
{
|
||||
return hashables.representative;
|
||||
|
@ -828,21 +833,11 @@ bool nano::change_block::valid_predecessor (nano::block const & block_a) const
|
|||
return result;
|
||||
}
|
||||
|
||||
nano::block_hash nano::change_block::source () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
nano::block_hash nano::change_block::root () const
|
||||
{
|
||||
return hashables.previous;
|
||||
}
|
||||
|
||||
nano::block_hash nano::change_block::link () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
nano::account nano::change_block::representative () const
|
||||
{
|
||||
return hashables.representative;
|
||||
|
@ -1000,6 +995,11 @@ nano::block_hash nano::state_block::previous () const
|
|||
return hashables.previous;
|
||||
}
|
||||
|
||||
nano::account nano::state_block::account () const
|
||||
{
|
||||
return hashables.account;
|
||||
}
|
||||
|
||||
void nano::state_block::serialize (nano::stream & stream_a) const
|
||||
{
|
||||
write (stream_a, hashables.account);
|
||||
|
@ -1132,11 +1132,6 @@ bool nano::state_block::valid_predecessor (nano::block const & block_a) const
|
|||
return true;
|
||||
}
|
||||
|
||||
nano::block_hash nano::state_block::source () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
nano::block_hash nano::state_block::root () const
|
||||
{
|
||||
return !hashables.previous.is_zero () ? hashables.previous : hashables.account;
|
||||
|
@ -1485,16 +1480,6 @@ nano::block_hash nano::receive_block::root () const
|
|||
return hashables.previous;
|
||||
}
|
||||
|
||||
nano::block_hash nano::receive_block::link () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
nano::account nano::receive_block::representative () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
nano::signature nano::receive_block::block_signature () const
|
||||
{
|
||||
return signature;
|
||||
|
|
|
@ -51,15 +51,16 @@ public:
|
|||
virtual void hash (blake2b_state &) const = 0;
|
||||
virtual uint64_t block_work () const = 0;
|
||||
virtual void block_work_set (uint64_t) = 0;
|
||||
virtual nano::account account () const;
|
||||
// Previous block in account's chain, zero for open block
|
||||
virtual nano::block_hash previous () const = 0;
|
||||
// Source block for open/receive blocks, zero otherwise.
|
||||
virtual nano::block_hash source () const = 0;
|
||||
virtual nano::block_hash source () const;
|
||||
// Previous block or account number for open blocks
|
||||
virtual nano::block_hash root () const = 0;
|
||||
// Link field for state blocks, zero otherwise.
|
||||
virtual nano::block_hash link () const = 0;
|
||||
virtual nano::account representative () const = 0;
|
||||
virtual nano::block_hash link () const;
|
||||
virtual nano::account representative () const;
|
||||
virtual void serialize (nano::stream &) const = 0;
|
||||
virtual void serialize_json (std::string &) const = 0;
|
||||
virtual void visit (nano::block_visitor &) const = 0;
|
||||
|
@ -96,10 +97,7 @@ public:
|
|||
uint64_t block_work () const override;
|
||||
void block_work_set (uint64_t) override;
|
||||
nano::block_hash previous () const override;
|
||||
nano::block_hash source () const override;
|
||||
nano::block_hash root () const override;
|
||||
nano::block_hash link () const override;
|
||||
nano::account representative () const override;
|
||||
void serialize (nano::stream &) const override;
|
||||
void serialize_json (std::string &) const override;
|
||||
bool deserialize (nano::stream &);
|
||||
|
@ -143,8 +141,6 @@ public:
|
|||
nano::block_hash previous () const override;
|
||||
nano::block_hash source () const override;
|
||||
nano::block_hash root () const override;
|
||||
nano::block_hash link () const override;
|
||||
nano::account representative () const override;
|
||||
void serialize (nano::stream &) const override;
|
||||
void serialize_json (std::string &) const override;
|
||||
bool deserialize (nano::stream &);
|
||||
|
@ -188,9 +184,9 @@ public:
|
|||
uint64_t block_work () const override;
|
||||
void block_work_set (uint64_t) override;
|
||||
nano::block_hash previous () const override;
|
||||
nano::account account () const override;
|
||||
nano::block_hash source () const override;
|
||||
nano::block_hash root () const override;
|
||||
nano::block_hash link () const override;
|
||||
nano::account representative () const override;
|
||||
void serialize (nano::stream &) const override;
|
||||
void serialize_json (std::string &) const override;
|
||||
|
@ -233,9 +229,7 @@ public:
|
|||
uint64_t block_work () const override;
|
||||
void block_work_set (uint64_t) override;
|
||||
nano::block_hash previous () const override;
|
||||
nano::block_hash source () const override;
|
||||
nano::block_hash root () const override;
|
||||
nano::block_hash link () const override;
|
||||
nano::account representative () const override;
|
||||
void serialize (nano::stream &) const override;
|
||||
void serialize_json (std::string &) const override;
|
||||
|
@ -291,7 +285,7 @@ public:
|
|||
uint64_t block_work () const override;
|
||||
void block_work_set (uint64_t) override;
|
||||
nano::block_hash previous () const override;
|
||||
nano::block_hash source () const override;
|
||||
nano::account account () const override;
|
||||
nano::block_hash root () const override;
|
||||
nano::block_hash link () const override;
|
||||
nano::account representative () const override;
|
||||
|
|
|
@ -2510,7 +2510,7 @@ public:
|
|||
auto callback_l (callback);
|
||||
std::weak_ptr<nano::node> node_w (node);
|
||||
auto next_backoff (std::min (backoff * 2, (unsigned int)60 * 5));
|
||||
node->alarm.add (now + std::chrono::seconds (backoff), [node_w, root_l, callback_l, next_backoff, difficulty = difficulty] {
|
||||
node->alarm.add (now + std::chrono::seconds (backoff), [ node_w, root_l, callback_l, next_backoff, difficulty = difficulty ] {
|
||||
if (auto node_l = node_w.lock ())
|
||||
{
|
||||
auto work_generation (std::make_shared<distributed_work> (next_backoff, node_l, root_l, callback_l, difficulty));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue