BitShares-Core
7.0.2
BitShares blockchain node software and command-line wallet software
|
a node in a linked list of operation_history_objects More...
#include <operation_history_object.hpp>
Public Attributes | |
account_id_type | account |
operation_history_id_type | operation_id |
the account this operation applies to More... | |
uint64_t | sequence = 0 |
account_history_id_type | next |
the operation position within the given account More... | |
Public Attributes inherited from graphene::db::object | |
object_id_type | id |
Additional Inherited Members | |
Public Member Functions inherited from graphene::db::abstract_object< account_history_object, implementation_ids, impl_account_history_object_type > | |
abstract_object () | |
object_id< SpaceID, TypeID > | get_id () const |
Public Member Functions inherited from graphene::db::base_abstract_object< account_history_object > | |
std::unique_ptr< object > | clone () const override |
void | move_from (object &obj) override |
fc::variant | to_variant () const override |
std::vector< char > | pack () const override |
object ()=default | |
object (uint8_t space_id, uint8_t type_id) | |
Public Member Functions inherited from graphene::db::object | |
object ()=default | |
object (uint8_t space_id, uint8_t type_id) | |
virtual | ~object ()=default |
virtual std::unique_ptr< object > | clone () const =0 |
virtual fc::variant | to_variant () const =0 |
virtual std::vector< char > | pack () const =0 |
Static Public Attributes inherited from graphene::db::abstract_object< account_history_object, implementation_ids, impl_account_history_object_type > | |
static constexpr uint8_t | space_id |
static constexpr uint8_t | type_id |
a node in a linked list of operation_history_objects
Account history is important for users and wallets even though it is not part of "core validation". Account history is maintained as a linked list stored on disk in a stack. Each account will point to the most recent account history object by ID. When a new operation relativent to that account is processed a new account history object is allcoated at the end of the stack and intialized to point to the prior object.
This data is never accessed as part of chain validation and therefore can be kept on disk as a memory mapped file. Using a memory mapped file will help the operating system better manage / cache / page files and also accelerates load time.
When the transaction history for a particular account is requested the linked list can be traversed with relatively effecient disk access because of the use of a memory mapped stack.
Definition at line 95 of file operation_history_object.hpp.
account_id_type graphene::chain::account_history_object::account |
Definition at line 99 of file operation_history_object.hpp.
account_history_id_type graphene::chain::account_history_object::next |
the operation position within the given account
Definition at line 102 of file operation_history_object.hpp.
operation_history_id_type graphene::chain::account_history_object::operation_id |
the account this operation applies to
Definition at line 100 of file operation_history_object.hpp.
uint64_t graphene::chain::account_history_object::sequence = 0 |
Definition at line 101 of file operation_history_object.hpp.