Block size computation improvement (#1528)
This commit is contained in:
		
					parent
					
						
							
								52e545fa4e
							
						
					
				
			
			
				commit
				
					
						c8d760cd61
					
				
			
		
					 1 changed files with 11 additions and 5 deletions
				
			
		| 
						 | 
					@ -81,6 +81,7 @@ public:
 | 
				
			||||||
	nano::block_hash previous;
 | 
						nano::block_hash previous;
 | 
				
			||||||
	nano::account destination;
 | 
						nano::account destination;
 | 
				
			||||||
	nano::amount balance;
 | 
						nano::amount balance;
 | 
				
			||||||
 | 
						static size_t constexpr size = sizeof (previous) + sizeof (destination) + sizeof (balance);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
class send_block : public nano::block
 | 
					class send_block : public nano::block
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -110,10 +111,10 @@ public:
 | 
				
			||||||
	bool operator== (nano::block const &) const override;
 | 
						bool operator== (nano::block const &) const override;
 | 
				
			||||||
	bool operator== (nano::send_block const &) const;
 | 
						bool operator== (nano::send_block const &) const;
 | 
				
			||||||
	bool valid_predecessor (nano::block const &) const override;
 | 
						bool valid_predecessor (nano::block const &) const override;
 | 
				
			||||||
	static size_t constexpr size = sizeof (nano::account) + sizeof (nano::block_hash) + sizeof (nano::amount) + sizeof (nano::signature) + sizeof (uint64_t);
 | 
					 | 
				
			||||||
	send_hashables hashables;
 | 
						send_hashables hashables;
 | 
				
			||||||
	nano::signature signature;
 | 
						nano::signature signature;
 | 
				
			||||||
	uint64_t work;
 | 
						uint64_t work;
 | 
				
			||||||
 | 
						static size_t constexpr size = nano::send_hashables::size + sizeof (signature) + sizeof (work);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
class receive_hashables
 | 
					class receive_hashables
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -125,6 +126,7 @@ public:
 | 
				
			||||||
	void hash (blake2b_state &) const;
 | 
						void hash (blake2b_state &) const;
 | 
				
			||||||
	nano::block_hash previous;
 | 
						nano::block_hash previous;
 | 
				
			||||||
	nano::block_hash source;
 | 
						nano::block_hash source;
 | 
				
			||||||
 | 
						static size_t constexpr size = sizeof (previous) + sizeof (source);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
class receive_block : public nano::block
 | 
					class receive_block : public nano::block
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -154,10 +156,10 @@ public:
 | 
				
			||||||
	bool operator== (nano::block const &) const override;
 | 
						bool operator== (nano::block const &) const override;
 | 
				
			||||||
	bool operator== (nano::receive_block const &) const;
 | 
						bool operator== (nano::receive_block const &) const;
 | 
				
			||||||
	bool valid_predecessor (nano::block const &) const override;
 | 
						bool valid_predecessor (nano::block const &) const override;
 | 
				
			||||||
	static size_t constexpr size = sizeof (nano::block_hash) + sizeof (nano::block_hash) + sizeof (nano::signature) + sizeof (uint64_t);
 | 
					 | 
				
			||||||
	receive_hashables hashables;
 | 
						receive_hashables hashables;
 | 
				
			||||||
	nano::signature signature;
 | 
						nano::signature signature;
 | 
				
			||||||
	uint64_t work;
 | 
						uint64_t work;
 | 
				
			||||||
 | 
						static size_t constexpr size = nano::receive_hashables::size + sizeof (signature) + sizeof (work);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
class open_hashables
 | 
					class open_hashables
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -170,6 +172,7 @@ public:
 | 
				
			||||||
	nano::block_hash source;
 | 
						nano::block_hash source;
 | 
				
			||||||
	nano::account representative;
 | 
						nano::account representative;
 | 
				
			||||||
	nano::account account;
 | 
						nano::account account;
 | 
				
			||||||
 | 
						static size_t constexpr size = sizeof (source) + sizeof (representative) + sizeof (account);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
class open_block : public nano::block
 | 
					class open_block : public nano::block
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -200,10 +203,10 @@ public:
 | 
				
			||||||
	bool operator== (nano::block const &) const override;
 | 
						bool operator== (nano::block const &) const override;
 | 
				
			||||||
	bool operator== (nano::open_block const &) const;
 | 
						bool operator== (nano::open_block const &) const;
 | 
				
			||||||
	bool valid_predecessor (nano::block const &) const override;
 | 
						bool valid_predecessor (nano::block const &) const override;
 | 
				
			||||||
	static size_t constexpr size = sizeof (nano::block_hash) + sizeof (nano::account) + sizeof (nano::account) + sizeof (nano::signature) + sizeof (uint64_t);
 | 
					 | 
				
			||||||
	nano::open_hashables hashables;
 | 
						nano::open_hashables hashables;
 | 
				
			||||||
	nano::signature signature;
 | 
						nano::signature signature;
 | 
				
			||||||
	uint64_t work;
 | 
						uint64_t work;
 | 
				
			||||||
 | 
						static size_t constexpr size = nano::open_hashables::size + sizeof (signature) + sizeof (work);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
class change_hashables
 | 
					class change_hashables
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -215,6 +218,7 @@ public:
 | 
				
			||||||
	void hash (blake2b_state &) const;
 | 
						void hash (blake2b_state &) const;
 | 
				
			||||||
	nano::block_hash previous;
 | 
						nano::block_hash previous;
 | 
				
			||||||
	nano::account representative;
 | 
						nano::account representative;
 | 
				
			||||||
 | 
						static size_t constexpr size = sizeof (previous) + sizeof (representative);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
class change_block : public nano::block
 | 
					class change_block : public nano::block
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -244,10 +248,10 @@ public:
 | 
				
			||||||
	bool operator== (nano::block const &) const override;
 | 
						bool operator== (nano::block const &) const override;
 | 
				
			||||||
	bool operator== (nano::change_block const &) const;
 | 
						bool operator== (nano::change_block const &) const;
 | 
				
			||||||
	bool valid_predecessor (nano::block const &) const override;
 | 
						bool valid_predecessor (nano::block const &) const override;
 | 
				
			||||||
	static size_t constexpr size = sizeof (nano::block_hash) + sizeof (nano::account) + sizeof (nano::signature) + sizeof (uint64_t);
 | 
					 | 
				
			||||||
	nano::change_hashables hashables;
 | 
						nano::change_hashables hashables;
 | 
				
			||||||
	nano::signature signature;
 | 
						nano::signature signature;
 | 
				
			||||||
	uint64_t work;
 | 
						uint64_t work;
 | 
				
			||||||
 | 
						static size_t constexpr size = nano::change_hashables::size + sizeof (signature) + sizeof (work);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
class state_hashables
 | 
					class state_hashables
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -271,6 +275,8 @@ public:
 | 
				
			||||||
	nano::amount balance;
 | 
						nano::amount balance;
 | 
				
			||||||
	// Link field contains source block_hash if receiving, destination account if sending
 | 
						// Link field contains source block_hash if receiving, destination account if sending
 | 
				
			||||||
	nano::uint256_union link;
 | 
						nano::uint256_union link;
 | 
				
			||||||
 | 
						// Serialized size
 | 
				
			||||||
 | 
						static size_t constexpr size = sizeof (account) + sizeof (previous) + sizeof (representative) + sizeof (balance) + sizeof (link);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
class state_block : public nano::block
 | 
					class state_block : public nano::block
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -300,10 +306,10 @@ public:
 | 
				
			||||||
	bool operator== (nano::block const &) const override;
 | 
						bool operator== (nano::block const &) const override;
 | 
				
			||||||
	bool operator== (nano::state_block const &) const;
 | 
						bool operator== (nano::state_block const &) const;
 | 
				
			||||||
	bool valid_predecessor (nano::block const &) const override;
 | 
						bool valid_predecessor (nano::block const &) const override;
 | 
				
			||||||
	static size_t constexpr size = sizeof (nano::account) + sizeof (nano::block_hash) + sizeof (nano::account) + sizeof (nano::amount) + sizeof (nano::uint256_union) + sizeof (nano::signature) + sizeof (uint64_t);
 | 
					 | 
				
			||||||
	nano::state_hashables hashables;
 | 
						nano::state_hashables hashables;
 | 
				
			||||||
	nano::signature signature;
 | 
						nano::signature signature;
 | 
				
			||||||
	uint64_t work;
 | 
						uint64_t work;
 | 
				
			||||||
 | 
						static size_t constexpr size = nano::state_hashables::size + sizeof (signature) + sizeof (work);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
class block_visitor
 | 
					class block_visitor
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue