Show / Hide Table of Contents

Class BaseStore

Common code for several IStore implementations.

Inheritance
System.Object
BaseStore
RocksDBStore
DefaultStore
Implements
IStore
IDisposable
Namespace: Libplanet.Store
Assembly: Libplanet.Store.dll
Syntax
public abstract class BaseStore : object, IStore

Methods

| Improve this Doc View Source

AppendIndex(Guid, BlockHash)

Appends a block to a chain.

Declaration
public abstract long AppendIndex(Guid chainId, BlockHash hash)
Parameters
Type Name Description
Guid chainId

The ID of a chain to append a block to.

BlockHash hash

The hash of a block to append. Assumes the block is already put into the store.

Returns
Type Description
System.Int64

The index of the appended block.

| Improve this Doc View Source

ContainsBlock(BlockHash)

Determines whether the IStore contains Block the specified blockHash.

Declaration
public abstract bool ContainsBlock(BlockHash blockHash)
Parameters
Type Name Description
BlockHash blockHash

The HashDigest<T> of the Block to check if it is in the IStore.

Returns
Type Description
System.Boolean

true if the IStore contains Block with the specified blockHash; otherwise, false.

| Improve this Doc View Source

ContainsCommittedEvidence(EvidenceId)

Determines whether the IStore contains EvidenceBase the specified evidenceId as committed.

Declaration
public abstract bool ContainsCommittedEvidence(EvidenceId evidenceId)
Parameters
Type Name Description
EvidenceId evidenceId

The EvidenceId of the EvidenceBase to check if it is in the IStore and committed.

Returns
Type Description
System.Boolean

true if the IStore contains EvidenceBase with the specified evidenceId as committed; otherwise, false.

| Improve this Doc View Source

ContainsPendingEvidence(EvidenceId)

Determines whether the IStore contains EvidenceBase the specified evidenceId as pending.

Declaration
public abstract bool ContainsPendingEvidence(EvidenceId evidenceId)
Parameters
Type Name Description
EvidenceId evidenceId

The EvidenceId of the EvidenceBase to check if it is in the IStore and pending.

Returns
Type Description
System.Boolean

true if the IStore contains EvidenceBase with the specified evidenceId as pending; otherwise, false.

| Improve this Doc View Source

ContainsTransaction(TxId)

Determines whether the IStore contains Transaction the specified txId.

Declaration
public abstract bool ContainsTransaction(TxId txId)
Parameters
Type Name Description
TxId txId

The TxId of the Transaction to check if it is in the IStore.

Returns
Type Description
System.Boolean

true if the IStore contains Transaction with the specified txId; otherwise, false.

| Improve this Doc View Source

CountBlocks()

Common code for several IStore implementations.

Declaration
public virtual long CountBlocks()
Returns
Type Description
System.Int64
| Improve this Doc View Source

CountIndex(Guid)

Common code for several IStore implementations.

Declaration
public abstract long CountIndex(Guid chainId)
Parameters
Type Name Description
Guid chainId
Returns
Type Description
System.Int64
| Improve this Doc View Source

DeleteBlock(BlockHash)

Removes a block from the store.

Declaration
public abstract bool DeleteBlock(BlockHash blockHash)
Parameters
Type Name Description
BlockHash blockHash

The hash of a block to remove.

Returns
Type Description
System.Boolean

false if such block does not exist. Otherwise true.

| Improve this Doc View Source

DeleteBlockCommit(BlockHash)

Deletes a BlockCommit of given height from store.

Declaration
public abstract void DeleteBlockCommit(BlockHash blockHash)
Parameters
Type Name Description
BlockHash blockHash

The BlockHash of a BlockCommit to delete.

| Improve this Doc View Source

DeleteChainId(Guid)

Deletes an index, tx nonces, and state references in the given chainId. It also deletes chain itself. If there is no such chainId it does nothing.

Declaration
public abstract void DeleteChainId(Guid chainId)
Parameters
Type Name Description
Guid chainId

The ID of chain to delete.

Remarks

This does not delete blocks or transactions that belong to the index of the chainId, but only the index, tx nonces, and state references.

| Improve this Doc View Source

DeleteCommittedEvidence(EvidenceId)

Deletes a committed EvidenceBase of given evidenceId from the store.

Declaration
public abstract void DeleteCommittedEvidence(EvidenceId evidenceId)
Parameters
Type Name Description
EvidenceId evidenceId

The EvidenceId of a committed EvidenceBase to delete.

| Improve this Doc View Source

DeleteNextStateRootHash(BlockHash)

Common code for several IStore implementations.

Declaration
public abstract void DeleteNextStateRootHash(BlockHash blockHash)
Parameters
Type Name Description
BlockHash blockHash
| Improve this Doc View Source

DeletePendingEvidence(EvidenceId)

Deletes a pending EvidenceBase of given evidenceId from the store.

Declaration
public abstract void DeletePendingEvidence(EvidenceId evidenceId)
Parameters
Type Name Description
EvidenceId evidenceId

The EvidenceId of a pending EvidenceBase to delete.

| Improve this Doc View Source

DeleteTxIdBlockHashIndex(TxId, BlockHash)

Deletes the index for the txId and blockHash.

Declaration
public abstract void DeleteTxIdBlockHashIndex(TxId txId, BlockHash blockHash)
Parameters
Type Name Description
TxId txId

The TxId of the Transaction.

BlockHash blockHash

The BlockHash of the Block.

| Improve this Doc View Source

DeserializeTxExecution(BlockHash, TxId, IValue, ILogger)

Common code for several IStore implementations.

Declaration
protected static TxExecution DeserializeTxExecution(BlockHash blockHash, TxId txid, IValue decoded, ILogger logger)
Parameters
Type Name Description
BlockHash blockHash
TxId txid
IValue decoded
ILogger logger
Returns
Type Description
TxExecution
| Improve this Doc View Source

Dispose()

Common code for several IStore implementations.

Declaration
public abstract void Dispose()
| Improve this Doc View Source

ForkBlockIndexes(Guid, Guid, BlockHash)

Forks block indexes from sourceChainId to destinationChainId.

Declaration
public abstract void ForkBlockIndexes(Guid sourceChainId, Guid destinationChainId, BlockHash branchpoint)
Parameters
Type Name Description
Guid sourceChainId

The chain ID of block indexes to fork.

Guid destinationChainId

The chain ID of destination block indexes.

BlockHash branchpoint

The branchpoint Block to fork.

See Also
IterateIndexes(Guid, System.Int32, System.Nullable<System.Int32>)
AppendIndex(Guid, BlockHash)
| Improve this Doc View Source

ForkTxNonces(Guid, Guid)

Forks Transaction Nonces from sourceChainId to destinationChainId.

Declaration
public abstract void ForkTxNonces(Guid sourceChainId, Guid destinationChainId)
Parameters
Type Name Description
Guid sourceChainId

The chain of Transaction Nonces to fork.

Guid destinationChainId

The chain of destination Transaction Nonces.

| Improve this Doc View Source

GetBlock(BlockHash)

Gets the corresponding stored Block to the given blockHash.

Declaration
public Block GetBlock(BlockHash blockHash)
Parameters
Type Name Description
BlockHash blockHash

Hash to find.

Returns
Type Description
Block

A found block, or null if no block having such blockHash is stored.

| Improve this Doc View Source

GetBlockCommit(BlockHash)

Gets the BlockCommit for given blockHash from the store.

Declaration
public abstract BlockCommit GetBlockCommit(BlockHash blockHash)
Parameters
Type Name Description
BlockHash blockHash

The BlockHash of a BlockCommit to retrieve.

Returns
Type Description
BlockCommit

Returns BlockCommit if given blockHash is stored and available, otherwise returns null.

| Improve this Doc View Source

GetBlockCommitHashes()

Gets every BlockHashes of BlockCommits from store.

Declaration
public abstract IEnumerable<BlockHash> GetBlockCommitHashes()
Returns
Type Description
IEnumerable<BlockHash>

Returns an of BlockHashes of all BlockCommits.

| Improve this Doc View Source

GetBlockDigest(BlockHash)

Gets the corresponding stored BlockDigest to the given blockHash.

Declaration
public abstract BlockDigest? GetBlockDigest(BlockHash blockHash)
Parameters
Type Name Description
BlockHash blockHash

Hash to find.

Returns
Type Description
System.Nullable<BlockDigest>

A found BlockDigest, or null if no block having such blockHash is stored.

| Improve this Doc View Source

GetBlockIndex(BlockHash)

Gets a stored block's Index by its Hash.

Declaration
public long? GetBlockIndex(BlockHash blockHash)
Parameters
Type Name Description
BlockHash blockHash

Hash to find.

Returns
Type Description
System.Nullable<System.Int64>

A found block's Index, or null if no block having such blockHash is stored.

Remarks

It provides only limited information, but can be called without any type parameter unlike GetBlock(BlockHash).

| Improve this Doc View Source

GetCanonicalChainId()

Gets the ID of the current canonical chain.

Declaration
public abstract Guid? GetCanonicalChainId()
Returns
Type Description
System.Nullable<Guid>

The ID of the current canonical chain. Maybe null.

See Also
SetCanonicalChainId(Guid)
| Improve this Doc View Source

GetChainBlockCommit(Guid)

Gets a BlockCommit associated with a with chainId as its .

Declaration
public abstract BlockCommit GetChainBlockCommit(Guid chainId)
Parameters
Type Name Description
Guid chainId

The of the to retrieve BlockCommit.

Returns
Type Description
BlockCommit

Returns BlockCommit if given chainId is stored and available, otherwise returns null.

| Improve this Doc View Source

GetCommittedEvidence(EvidenceId)

Gets every committed EvidenceBase of given evidenceId from the store.

Declaration
public abstract EvidenceBase GetCommittedEvidence(EvidenceId evidenceId)
Parameters
Type Name Description
EvidenceId evidenceId

The EvidenceId of a committed EvidenceBase to retrieve.

Returns
Type Description
EvidenceBase

Returns EvidenceBase if given evidenceId is stored, committed and available, otherwise returns null.

| Improve this Doc View Source

GetFirstTxIdBlockHashIndex(TxId)

Common code for several IStore implementations.

Declaration
public BlockHash? GetFirstTxIdBlockHashIndex(TxId txId)
Parameters
Type Name Description
TxId txId
Returns
Type Description
System.Nullable<BlockHash>
| Improve this Doc View Source

GetNextStateRootHash(BlockHash)

Common code for several IStore implementations.

Declaration
public abstract HashDigest<SHA256>? GetNextStateRootHash(BlockHash blockHash)
Parameters
Type Name Description
BlockHash blockHash
Returns
Type Description
System.Nullable<HashDigest<SHA256>>
| Improve this Doc View Source

GetPendingEvidence(EvidenceId)

Gets every pending EvidenceBase of given evidenceId from the store.

Declaration
public abstract EvidenceBase GetPendingEvidence(EvidenceId evidenceId)
Parameters
Type Name Description
EvidenceId evidenceId

The EvidenceId of a pending EvidenceBase to retrieve.

Returns
Type Description
EvidenceBase

Returns EvidenceBase if given evidenceId is stored, pending and available, otherwise returns null.

| Improve this Doc View Source

GetTransaction(TxId)

Common code for several IStore implementations.

Declaration
public abstract Transaction GetTransaction(TxId txid)
Parameters
Type Name Description
TxId txid
Returns
Type Description
Transaction
| Improve this Doc View Source

GetTxExecution(BlockHash, TxId)

Retrieves the recorded transaction execution summary.

Declaration
public abstract TxExecution GetTxExecution(BlockHash blockHash, TxId txid)
Parameters
Type Name Description
BlockHash blockHash

The Hash of the recorded transaction execution to retrieve.

TxId txid

The Id of the recorded transaction execution to retrieve.

Returns
Type Description
TxExecution

The recorded transaction execution summary. If it has been never recorded null is returned instead.

See Also
PutTxExecution(TxExecution)
| Improve this Doc View Source

GetTxNonce(Guid, Address)

Gets Transaction nonce of the address.

Declaration
public abstract long GetTxNonce(Guid chainId, Address address)
Parameters
Type Name Description
Guid chainId

The ID of the chain to get Transaction nonce.

Address address

The Address to get Transaction nonce.

Returns
Type Description
System.Int64

A Transaction nonce. If there is no previous Transaction, return 0.

See Also
IncreaseTxNonce(Guid, Address, System.Int64)
| Improve this Doc View Source

IncreaseTxNonce(Guid, Address, Int64)

Increases (or decreases if a negative delta is given) the tx nonce counter for signer.

Declaration
public abstract void IncreaseTxNonce(Guid chainId, Address signer, long delta = null)
Parameters
Type Name Description
Guid chainId

The ID of the chain to increase Transaction nonce.

Address signer

The address of the account to increase tx nonce.

System.Int64 delta

How many to increase the counter. A negative number decreases the counter. 1 by default.

See Also
GetTxNonce(Guid, Address)
| Improve this Doc View Source

IndexBlockHash(Guid, Int64)

Determines the block hash by its index.

Declaration
public abstract BlockHash? IndexBlockHash(Guid chainId, long index)
Parameters
Type Name Description
Guid chainId

The chain ID of the index that contains the block.

System.Int64 index

The index of the block to query its hash. Negative indices mean the offset from the end. For example, -1 means the topmost block.

Returns
Type Description
System.Nullable<BlockHash>

The block hash of the index in the chain. If there is no such index, it returns null.

| Improve this Doc View Source

IterateBlockHashes()

Lists all block hashes in the store, regardless of their belonging chains.

Declaration
public abstract IEnumerable<BlockHash> IterateBlockHashes()
Returns
Type Description
IEnumerable<BlockHash>

All block hashes in the store.

| Improve this Doc View Source

IterateIndexes(Guid, Int32, Nullable<Int32>)

Lists all block hashes in chainId.

Declaration
public abstract IEnumerable<BlockHash> IterateIndexes(Guid chainId, int offset, int? limit)
Parameters
Type Name Description
Guid chainId

The chain ID of the index that contains block hashes to iterate.

System.Int32 offset

The starting point to return block hashes.

System.Nullable<System.Int32> limit

The maximum number of block hashes to get.

Returns
Type Description
IEnumerable<BlockHash>

Block hashes in the index of the chainId, in ascending order; the genesis block goes first, and the tip block goes last.

| Improve this Doc View Source

IteratePendingEvidenceIds()

Gets every EvidenceIds of pending EvidenceBases from the store.

Declaration
public abstract IEnumerable<EvidenceId> IteratePendingEvidenceIds()
Returns
Type Description
IEnumerable<EvidenceId>

Returns an of EvidenceIds of all pending EvidenceBases.

| Improve this Doc View Source

IterateTxIdBlockHashIndex(TxId)

Retrieves BlockHashes indexed by the txId.

Declaration
public abstract IEnumerable<BlockHash> IterateTxIdBlockHashIndex(TxId txId)
Parameters
Type Name Description
TxId txId

The TxId of the Transaction.

Returns
Type Description
IEnumerable<BlockHash>

BlockHashes if the index exists.

| Improve this Doc View Source

ListChainIds()

Lists chain IDs containing at least a single block.

Declaration
public abstract IEnumerable<Guid> ListChainIds()
Returns
Type Description
IEnumerable<Guid>

Chain IDs with at least a single block.

| Improve this Doc View Source

ListTxNonces(Guid)

Lists all Addresses that have ever signed Transaction, and their corresponding Transaction nonces.

Declaration
public abstract IEnumerable<KeyValuePair<Address, long>> ListTxNonces(Guid chainId)
Parameters
Type Name Description
Guid chainId

The ID of the chain to list Addresses and their Transaction nonces.

Returns
Type Description
IEnumerable<KeyValuePair<Address, System.Int64>>

Pairs of an Address and its tx nonce. All nonces are greater than 0. (If there are underlying entries having zero nonces these must be hidden.)

See Also
GetTxNonce(Guid, Address)
| Improve this Doc View Source

PruneOutdatedChains(Boolean)

Delete all non-canonical chains.

Declaration
public abstract void PruneOutdatedChains(bool noopWithoutCanon = false)
Parameters
Type Name Description
System.Boolean noopWithoutCanon

Flag to determine whether the function throws exception when the canonical chain is not assigned. false by default. If it set to true, does not throw exception when there is no canonical chain. Otherwise, throws when there is no canonical chain.

Remarks

If an is thrown, this results in no-op for the IStore.

| Improve this Doc View Source

PutBlock(Block)

Puts the given block in to the store. If the same block already exists in the store it does nothing.

Declaration
public abstract void PutBlock(Block block)
Parameters
Type Name Description
Block block

A Block to put into the store.

| Improve this Doc View Source

PutBlockCommit(BlockCommit)

Puts a BlockCommit to the store.

Declaration
public abstract void PutBlockCommit(BlockCommit blockCommit)
Parameters
Type Name Description
BlockCommit blockCommit

A BlockCommit to store.

| Improve this Doc View Source

PutChainBlockCommit(Guid, BlockCommit)

Puts a BlockCommit associated with a with chainId as its . The given BlockCommit should have the same BlockHash as the .

Declaration
public abstract void PutChainBlockCommit(Guid chainId, BlockCommit blockCommit)
Parameters
Type Name Description
Guid chainId

The of the to store BlockCommit.

BlockCommit blockCommit

The BlockCommit to store.

| Improve this Doc View Source

PutCommittedEvidence(EvidenceBase)

Puts a EvidenceBase to the store as committed evidence.

Declaration
public abstract void PutCommittedEvidence(EvidenceBase evidence)
Parameters
Type Name Description
EvidenceBase evidence

A committed EvidenceBase to store.

| Improve this Doc View Source

PutNextStateRootHash(BlockHash, HashDigest<SHA256>)

Common code for several IStore implementations.

Declaration
public abstract void PutNextStateRootHash(BlockHash blockHash, HashDigest<SHA256> nextStateRootHash)
Parameters
Type Name Description
BlockHash blockHash
HashDigest<SHA256> nextStateRootHash
| Improve this Doc View Source

PutPendingEvidence(EvidenceBase)

Puts a EvidenceBase to the store as pending evidence.

Declaration
public abstract void PutPendingEvidence(EvidenceBase evidence)
Parameters
Type Name Description
EvidenceBase evidence

A pending EvidenceBase to store.

| Improve this Doc View Source

PutTransaction(Transaction)

Common code for several IStore implementations.

Declaration
public abstract void PutTransaction(Transaction tx)
Parameters
Type Name Description
Transaction tx
| Improve this Doc View Source

PutTxExecution(TxExecution)

Records the given txExecution.

Declaration
public abstract void PutTxExecution(TxExecution txExecution)
Parameters
Type Name Description
TxExecution txExecution

The transaction execution summary to record. Must not be null.

Remarks

If there is already the record for the same BlockHash and TxId, the record is silently overwritten.

See Also
GetTxExecution(BlockHash, TxId)
| Improve this Doc View Source

PutTxIdBlockHashIndex(TxId, BlockHash)

Records a index for given pair txId and blockHash. If there exist a record for txId already, it overwrites the record silently.

Declaration
public abstract void PutTxIdBlockHashIndex(TxId txId, BlockHash blockHash)
Parameters
Type Name Description
TxId txId

The TxId of the Transaction.

BlockHash blockHash

The BlockHash of the Block.

| Improve this Doc View Source

SerializeTxExecution(TxExecution)

Common code for several IStore implementations.

Declaration
protected static IValue SerializeTxExecution(TxExecution txExecution)
Parameters
Type Name Description
TxExecution txExecution
Returns
Type Description
IValue
| Improve this Doc View Source

SetCanonicalChainId(Guid)

Sets the canonical chain.

Declaration
public abstract void SetCanonicalChainId(Guid chainId)
Parameters
Type Name Description
Guid chainId

The ID of a new canonical chain.

See Also
GetCanonicalChainId()

Implements

IStore
IDisposable
  • Improve this Doc
  • View Source
In This Article
Back to top Copyright © 2018–2023 Planetarium