Skip to content

sgns::blockchain::KeyValueBlockHeaderRepository

#include <key_value_block_header_repository.hpp>

Inherits from sgns::blockchain::BlockHeaderRepository, IComponent

Public Functions

Name
KeyValueBlockHeaderRepository(std::shared_ptr< crdt::GlobalDB > db, std::shared_ptr< crypto::Hasher > hasher, const std::string & net_id)
~KeyValueBlockHeaderRepository() override =default
virtual outcome::result< primitives::BlockNumber > getNumberByHash(const base::Hash256 & hash) const override
virtual outcome::result< base::Hash256 > getHashByNumber(const primitives::BlockNumber & number) const override
virtual outcome::result< primitives::BlockHeader > getBlockHeader(const primitives::BlockId & id) const override
virtual outcome::result< primitives::BlockHash > putBlockHeader(const primitives::BlockHeader & header) override
virtual outcome::result< void > removeBlockHeader(const primitives::BlockId & id) override
virtual outcome::result< blockchain::BlockStatus > getBlockStatus(const primitives::BlockId & id) const override
virtual std::string GetName() override
std::string GetHeaderPath() const
std::vector< uint8_t > GetHeaderSerializedData(const primitives::BlockHeader & header)
primitives::BlockHeader GetBlockHeaderFromSerialized(const std::vector< uint8_t > & serialized_data)

Additional inherited members

Public Functions inherited from sgns::blockchain::BlockHeaderRepository

Name
outcome::result< primitives::BlockNumber > getNumberById(const primitives::BlockId & id) const
outcome::result< base::Hash256 > getHashById(const primitives::BlockId & id) const

Public Functions inherited from IComponent

Name
virtual ~IComponent() =default

Public Functions Documentation

function KeyValueBlockHeaderRepository

KeyValueBlockHeaderRepository(
    std::shared_ptr< crdt::GlobalDB > db,
    std::shared_ptr< crypto::Hasher > hasher,
    const std::string & net_id
)

function ~KeyValueBlockHeaderRepository

~KeyValueBlockHeaderRepository() override =default

function getNumberByHash

virtual outcome::result< primitives::BlockNumber > getNumberByHash(
    const base::Hash256 & hash
) const override

Parameters:

  • hash - a blake2_256 hash of an SCALE encoded block header

Return: the number of the block with the provided hash in case one is in the storage or an error

Reimplements: sgns::blockchain::BlockHeaderRepository::getNumberByHash

function getHashByNumber

virtual outcome::result< base::Hash256 > getHashByNumber(
    const primitives::BlockNumber & number
) const override

Parameters:

  • number - the number of a block, contained in a block header

Return: the hash of the block with the provided number in case one is in the storage or an error

Reimplements: sgns::blockchain::BlockHeaderRepository::getHashByNumber

function getBlockHeader

virtual outcome::result< primitives::BlockHeader > getBlockHeader(
    const primitives::BlockId & id
) const override

Return: block header with corresponding id or an error

Reimplements: sgns::blockchain::BlockHeaderRepository::getBlockHeader

function putBlockHeader

virtual outcome::result< primitives::BlockHash > putBlockHeader(
    const primitives::BlockHeader & header
) override

Reimplements: sgns::blockchain::BlockHeaderRepository::putBlockHeader

function removeBlockHeader

virtual outcome::result< void > removeBlockHeader(
    const primitives::BlockId & id
) override

Reimplements: sgns::blockchain::BlockHeaderRepository::removeBlockHeader

function getBlockStatus

virtual outcome::result< blockchain::BlockStatus > getBlockStatus(
    const primitives::BlockId & id
) const override

Parameters:

  • id of a block which status is returned

Return: status of a block or a storage error

Reimplements: sgns::blockchain::BlockHeaderRepository::getBlockStatus

function GetName

inline virtual std::string GetName() override

Reimplements: IComponent::GetName

function GetHeaderPath

std::string GetHeaderPath() const

function GetHeaderSerializedData

static std::vector< uint8_t > GetHeaderSerializedData(
    const primitives::BlockHeader & header
)

function GetBlockHeaderFromSerialized

static primitives::BlockHeader GetBlockHeaderFromSerialized(
    const std::vector< uint8_t > & serialized_data
)

Updated on 2026-03-04 at 13:10:43 -0800