Show / Hide Table of Contents

Interface IStore

Namespace: Libplanet.Store
Assembly: Libplanet.dll
Syntax
public interface IStore : IDisposable

Methods

| Improve this Doc View Source

AppendIndex(Guid, BlockHash)

Appends a block to a chain.

Declaration
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
Int64

The index of the appended block.

| Improve this Doc View Source

ContainsBlock(BlockHash)

Determines whether the IStore contains Block<T> the specified blockHash.

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

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

Returns
Type Description
Boolean

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

| Improve this Doc View Source

ContainsTransaction(TxId)

Determines whether the IStore contains Transaction<T> the specified txId.

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

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

Returns
Type Description
Boolean

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

| Improve this Doc View Source

CountBlocks()

Declaration
long CountBlocks()
Returns
Type Description
Int64
| Improve this Doc View Source

CountIndex(Guid)

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

CountTransactions()

Declaration
long CountTransactions()
Returns
Type Description
Int64
| Improve this Doc View Source

DeleteBlock(BlockHash)

Removes a block from the store.

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

The hash of a block to remove.

Returns
Type Description
Boolean

false if such block does not exist. Otherwise true.

| 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
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

DeleteTransaction(TxId)

Declaration
bool DeleteTransaction(TxId txid)
Parameters
Type Name Description
TxId txid
Returns
Type Description
Boolean
| Improve this Doc View Source

DeleteTxIdBlockHashIndex(TxId, BlockHash)

Deletes the index for the txId and blockHash.

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

The TxId of the Transaction<T>.

BlockHash blockHash

The BlockHash of the Block<T>.

| Improve this Doc View Source

ForkBlockIndexes(Guid, Guid, BlockHash)

Forks block indexes from sourceChainId to destinationChainId.

Declaration
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<T> to fork.

Exceptions
Type Condition
ChainIdNotFoundException

Thrown when the given sourceChainId does not exist.

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

ForkTxNonces(Guid, Guid)

Forks Transaction<T> Nonces from sourceChainId to destinationChainId.

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

The chain Id of Transaction<T> Nonces to fork.

Guid destinationChainId

The chain Id of destination Transaction<T> Nonces.

Exceptions
Type Condition
ChainIdNotFoundException

Thrown when the given sourceChainId does not exist.

| Improve this Doc View Source

GetBlock<T>(HashAlgorithmGetter, BlockHash)

Gets the corresponding stored Block<T> to the given blockHash.

Declaration
Block<T> GetBlock<T>(HashAlgorithmGetter hashAlgorithmGetter, BlockHash blockHash)
    where T : IAction, new()
Parameters
Type Name Description
HashAlgorithmGetter hashAlgorithmGetter

The function to determine hash algorithm used for proof-of-work mining.

BlockHash blockHash

Hash to find.

Returns
Type Description
Block<T>

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

Type Parameters
Name Description
T

An IAction type. It should match to Block<T>'s type parameter.

| Improve this Doc View Source

GetBlockDigest(BlockHash)

Gets the corresponding stored BlockDigest to the given blockHash.

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

Hash to find.

Returns
Type Description
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
long? GetBlockIndex(BlockHash blockHash)
Parameters
Type Name Description
BlockHash blockHash

Hash to find.

Returns
Type Description
Nullable<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<T>(HashAlgorithmGetter, BlockHash).

| Improve this Doc View Source

GetBlockPerceivedTime(BlockHash)

Queries the perceived time of a block, if it has been recorded.

Declaration
DateTimeOffset? GetBlockPerceivedTime(BlockHash blockHash)
Parameters
Type Name Description
BlockHash blockHash

Hash to query.

Returns
Type Description
Nullable<DateTimeOffset>

The perceived time of a block, if it exists. Otherwise, null.

| Improve this Doc View Source

GetCanonicalChainId()

Gets the ID of the current canonical chain.

Declaration
Guid? GetCanonicalChainId()
Returns
Type Description
Nullable<Guid>

The ID of the current canonical chain. Maybe null.

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

GetFirstTxIdBlockHashIndex(TxId)

Retrieves the BlockHash indexed by the txId.

Declaration
BlockHash? GetFirstTxIdBlockHashIndex(TxId txId)
Parameters
Type Name Description
TxId txId

The TxId of the Transaction<T>.

Returns
Type Description
Nullable<BlockHash>

BlockHash if the index exists. Otherwise null.

| Improve this Doc View Source

GetTransaction<T>(TxId)

Declaration
Transaction<T> GetTransaction<T>(TxId txid)
    where T : IAction, new()
Parameters
Type Name Description
TxId txid
Returns
Type Description
Transaction<T>
Type Parameters
Name Description
T
| Improve this Doc View Source

GetTxExecution(BlockHash, TxId)

Retrieves the recorded transaction execution summary.

Declaration
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(TxFailure)
PutTxExecution(TxSuccess)
| Improve this Doc View Source

GetTxNonce(Guid, Address)

Gets Transaction<T> nonce of the address.

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

The ID of the chain to get Transaction<T> nonce.

Address address

The Address to get Transaction<T> nonce.

Returns
Type Description
Int64

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

See Also
IncreaseTxNonce(Guid, Address, 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
void IncreaseTxNonce(Guid chainId, Address signer, long delta = null)
Parameters
Type Name Description
Guid chainId

The ID of the chain to increase Transaction<T> nonce.

Address signer

The address of the account to increase tx nonce.

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
BlockHash? IndexBlockHash(Guid chainId, long index)
Parameters
Type Name Description
Guid chainId

The chain ID of the index that contains the block.

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
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
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 the .

Declaration
IEnumerable<BlockHash> IterateIndexes(Guid chainId, int offset = 0, int? limit = null)
Parameters
Type Name Description
Guid chainId

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

Int32 offset

The starting point to return block hashes.

Nullable<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

IterateTransactionIds()

Declaration
IEnumerable<TxId> IterateTransactionIds()
Returns
Type Description
IEnumerable<TxId>
| Improve this Doc View Source

IterateTxIdBlockHashIndex(TxId)

Retrieves BlockHashes indexed by the txId.

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

The TxId of the Transaction<T>.

Returns
Type Description
IEnumerable<BlockHash>

BlockHashes if the index exists.

| Improve this Doc View Source

ListChainIds()

Lists existing chain IDs.

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

Existing chain IDs.

| Improve this Doc View Source

ListTxNonces(Guid)

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

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

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

Returns
Type Description
IEnumerable<KeyValuePair<Address, 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

PutBlock<T>(Block<T>)

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

Declaration
void PutBlock<T>(Block<T> block)
    where T : IAction, new()
Parameters
Type Name Description
Block<T> block

A Block<T> to put into the store.

Type Parameters
Name Description
T

An IAction class used with block.

| Improve this Doc View Source

PutTransaction<T>(Transaction<T>)

Puts a given Transaction<T> to the store. If the same transaction already exists in the store it does nothing.

Declaration
void PutTransaction<T>(Transaction<T> tx)
    where T : IAction, new()
Parameters
Type Name Description
Transaction<T> tx

A transaction to put into the store.

Type Parameters
Name Description
T

An IAction type. It should match to Transaction<T>'s type parameter.

| Improve this Doc View Source

PutTxExecution(TxFailure)

Records the given txFailure.

Declaration
void PutTxExecution(TxFailure txFailure)
Parameters
Type Name Description
TxFailure txFailure

The failed 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
PutTxExecution(TxSuccess)
GetTxExecution(BlockHash, TxId)
| Improve this Doc View Source

PutTxExecution(TxSuccess)

Records the given txSuccess.

Declaration
void PutTxExecution(TxSuccess txSuccess)
Parameters
Type Name Description
TxSuccess txSuccess

The successful 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
PutTxExecution(TxFailure)
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
void PutTxIdBlockHashIndex(TxId txId, BlockHash blockHash)
Parameters
Type Name Description
TxId txId

The TxId of the Transaction<T>.

BlockHash blockHash

The BlockHash of the Block<T>.

| Improve this Doc View Source

SetBlockPerceivedTime(BlockHash, DateTimeOffset)

Records the perceived time of a block. If there is already a record, it is overwritten.

Declaration
void SetBlockPerceivedTime(BlockHash blockHash, DateTimeOffset perceivedTime)
Parameters
Type Name Description
BlockHash blockHash

Hash to record its perceived time.

DateTimeOffset perceivedTime

The perceived time to record.

| Improve this Doc View Source

SetCanonicalChainId(Guid)

Sets the canonical chain.

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

The ID of a new canonical chain.

See Also
GetCanonicalChainId()

Extension Methods

StoreExtensions.Copy(IStore, IStore)
StoreExtensions.GetStateRootHash(IStore, Nullable<BlockHash>)
  • Improve this Doc
  • View Source
In This Article
Back to top Copyright © 2018–2021 Planetarium