Class DefaultStore
The default built-in IStore implementation. This stores data in
the file system or in memory. It also uses LiteDB
for some complex indices.
Assembly: Libplanet.dll
Syntax
public class DefaultStore : BaseBlockStatesStore, IStore, IDisposable, IBlockStatesStore, IStateStore
Constructors
|
Improve this Doc
View Source
DefaultStore(String, Boolean, Boolean, Int32, Int32, Int32, Int32, Boolean, Boolean)
Declaration
public DefaultStore(string path, bool compress = false, bool journal = true, int indexCacheSize = 50000, int blockCacheSize = 512, int txCacheSize = 1024, int statesCacheSize = 10000, bool flush = true, bool readOnly = false)
Parameters
Type |
Name |
Description |
String |
path |
The path of the directory where the storage files will be saved.
If the path is null , the database is created in memory.
|
Boolean |
compress |
Whether to compress data. Does not compress by default.
|
Boolean |
journal |
Enables or disables double write check to ensure durability.
|
Int32 |
indexCacheSize |
Max number of pages in the index cache.
|
Int32 |
blockCacheSize |
The capacity of the block cache.
|
Int32 |
txCacheSize |
The capacity of the transaction cache.
|
Int32 |
statesCacheSize |
The capacity of the states cache.
|
Boolean |
flush |
Writes data direct to disk avoiding OS cache. Turned on by default.
|
Boolean |
readOnly |
Opens database readonly mode. Turned off by default.
|
Methods
|
Improve this Doc
View Source
AppendIndex(Guid, HashDigest<SHA256>)
Declaration
public override long AppendIndex(Guid chainId, HashDigest<SHA256> hash)
Parameters
Type |
Name |
Description |
Guid |
chainId |
|
HashDigest<SHA256> |
hash |
|
Returns
Overrides
|
Improve this Doc
View Source
ContainsBlock(HashDigest<SHA256>)
Determines whether the IStore contains Block<T>
the specified blockHash
.
Declaration
public override bool ContainsBlock(HashDigest<SHA256> blockHash)
Parameters
Returns
Type |
Description |
Boolean |
true if the IStore contains Block<T> with
the specified blockHash ; otherwise, false .
|
Overrides
|
Improve this Doc
View Source
ContainsTransaction(TxId)
Declaration
public override bool ContainsTransaction(TxId txId)
Parameters
Returns
Overrides
|
Improve this Doc
View Source
CountBlocks()
Declaration
public override long CountBlocks()
Returns
Overrides
|
Improve this Doc
View Source
CountIndex(Guid)
Declaration
public override long CountIndex(Guid chainId)
Parameters
Type |
Name |
Description |
Guid |
chainId |
|
Returns
Overrides
|
Improve this Doc
View Source
CountTransactions()
Declaration
public override long CountTransactions()
Returns
Overrides
|
Improve this Doc
View Source
DeleteBlock(HashDigest<SHA256>)
Declaration
public override bool DeleteBlock(HashDigest<SHA256> blockHash)
Parameters
Type |
Name |
Description |
HashDigest<SHA256> |
blockHash |
|
Returns
Overrides
|
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 override void DeleteChainId(Guid chainId)
Parameters
Type |
Name |
Description |
Guid |
chainId |
The ID of chain to delete.
|
Overrides
|
Improve this Doc
View Source
DeleteTransaction(TxId)
Declaration
public override bool DeleteTransaction(TxId txid)
Parameters
Type |
Name |
Description |
TxId |
txid |
|
Returns
Overrides
|
Improve this Doc
View Source
Dispose()
Declaration
public override void Dispose()
Overrides
|
Improve this Doc
View Source
ForkBlockIndexes(Guid, Guid, HashDigest<SHA256>)
Forks block indexes from
sourceChainId
to
destinationChainId
.
Declaration
public override void ForkBlockIndexes(Guid sourceChainId, Guid destinationChainId, HashDigest<SHA256> branchPoint)
Parameters
Type |
Name |
Description |
Guid |
sourceChainId |
The chain ID of block indexes to
fork.
|
Guid |
destinationChainId |
The chain ID of destination
block indexes.
|
HashDigest<SHA256> |
branchPoint |
The branch point Block<T>
to fork.
|
Overrides
Exceptions
See Also
|
Improve this Doc
View Source
ForkStateReferences<T>(Guid, Guid, Block<T>)
Declaration
public override void ForkStateReferences<T>(Guid sourceChainId, Guid destinationChainId, Block<T> branchPoint)
where T : IAction, new()
Parameters
Type |
Name |
Description |
Guid |
sourceChainId |
|
Guid |
destinationChainId |
|
Block<T> |
branchPoint |
|
Type Parameters
Overrides
Libplanet.Store.BaseBlockStatesStore.ForkStateReferences<T>(Guid, Guid, Libplanet.Blocks.Block<T>)
|
Improve this Doc
View Source
GetBlockDigest(HashDigest<SHA256>)
Gets the corresponding stored BlockDigest to the given
blockHash
.
Declaration
public override BlockDigest? GetBlockDigest(HashDigest<SHA256> blockHash)
Parameters
Returns
Overrides
|
Improve this Doc
View Source
GetBlockStates(HashDigest<SHA256>)
Declaration
public override IImmutableDictionary<string, IValue> GetBlockStates(HashDigest<SHA256> blockHash)
Parameters
Type |
Name |
Description |
HashDigest<SHA256> |
blockHash |
|
Returns
Type |
Description |
IImmutableDictionary<String, IValue> |
|
Overrides
|
Improve this Doc
View Source
GetCanonicalChainId()
Gets the ID of the current canonical chain.
Declaration
public override Guid? GetCanonicalChainId()
Returns
Type |
Description |
Nullable<Guid> |
The ID of the current canonical chain. Maybe null .
|
Overrides
See Also
|
Improve this Doc
View Source
GetTransaction<T>(TxId)
Declaration
public override Transaction<T> GetTransaction<T>(TxId txid)
where T : IAction, new()
Parameters
Type |
Name |
Description |
TxId |
txid |
|
Returns
Type Parameters
Overrides
|
Improve this Doc
View Source
GetTxNonce(Guid, Address)
Declaration
public override long GetTxNonce(Guid chainId, Address address)
Parameters
Returns
Overrides
See Also
|
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 override 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.
|
Overrides
See Also
|
Improve this Doc
View Source
IndexBlockHash(Guid, Int64)
Declaration
public override HashDigest<SHA256>? IndexBlockHash(Guid chainId, long index)
Parameters
Type |
Name |
Description |
Guid |
chainId |
|
Int64 |
index |
|
Returns
Overrides
|
Improve this Doc
View Source
IterateBlockHashes()
Declaration
public override IEnumerable<HashDigest<SHA256>> IterateBlockHashes()
Returns
Overrides
|
Improve this Doc
View Source
IterateIndexes(Guid, Int32, Nullable<Int32>)
Declaration
public override IEnumerable<HashDigest<SHA256>> IterateIndexes(Guid chainId, int offset, int? limit)
Parameters
Returns
Overrides
|
Improve this Doc
View Source
IterateStagedTransactionIds()
Declaration
public override IEnumerable<TxId> IterateStagedTransactionIds()
Returns
Type |
Description |
IEnumerable<TxId> |
Staged TxIds.
|
Overrides
|
Improve this Doc
View Source
IterateStateReferences(Guid, String, Nullable<Int64>, Nullable<Int64>, Nullable<Int32>)
Declaration
public override IEnumerable<Tuple<HashDigest<SHA256>, long>> IterateStateReferences(Guid chainId, string key, long? highestIndex, long? lowestIndex, int? limit)
Parameters
Returns
Overrides
|
Improve this Doc
View Source
IterateTransactionIds()
Declaration
public override IEnumerable<TxId> IterateTransactionIds()
Returns
Type |
Description |
IEnumerable<TxId> |
|
Overrides
|
Improve this Doc
View Source
ListAllStateReferences(Guid, Int64, Int64)
Declaration
public override IImmutableDictionary<string, IImmutableList<HashDigest<SHA256>>> ListAllStateReferences(Guid chainId, long lowestIndex = null, long highestIndex = null)
Parameters
Type |
Name |
Description |
Guid |
chainId |
|
Int64 |
lowestIndex |
|
Int64 |
highestIndex |
|
Returns
Type |
Description |
IImmutableDictionary<String, IImmutableList<HashDigest<SHA256>>> |
|
Overrides
|
Improve this Doc
View Source
ListChainIds()
Lists existing chain IDs.
Declaration
public override IEnumerable<Guid> ListChainIds()
Returns
Type |
Description |
IEnumerable<Guid> |
Existing chain IDs.
|
Overrides
|
Improve this Doc
View Source
ListStateKeys(Guid)
Declaration
public override IEnumerable<string> ListStateKeys(Guid chainId)
Parameters
Type |
Name |
Description |
Guid |
chainId |
|
Returns
Type |
Description |
IEnumerable<String> |
|
Overrides
|
Improve this Doc
View Source
ListTxNonces(Guid)
Declaration
public override 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.)
|
Overrides
See Also
|
Improve this Doc
View Source
LookupStateReference(Guid, String, Int64)
Declaration
public override Tuple<HashDigest<SHA256>, long> LookupStateReference(Guid chainId, string key, long lookupUntilBlockIndex)
Parameters
Type |
Name |
Description |
Guid |
chainId |
|
String |
key |
|
Int64 |
lookupUntilBlockIndex |
|
Returns
Overrides
|
Improve this Doc
View Source
PruneBlockStates<T>(Guid, Block<T>)
Declaration
public override void PruneBlockStates<T>(Guid chainId, Block<T> until)
where T : IAction, new()
Parameters
Type |
Name |
Description |
Guid |
chainId |
|
Block<T> |
until |
|
Type Parameters
Overrides
Libplanet.Store.BaseBlockStatesStore.PruneBlockStates<T>(Guid, Libplanet.Blocks.Block<T>)
|
Improve this Doc
View Source
PutBlock<T>(Block<T>)
Declaration
public override void PutBlock<T>(Block<T> block)
where T : IAction, new()
Parameters
Type |
Name |
Description |
Block<T> |
block |
|
Type Parameters
Overrides
Libplanet.Store.BaseStore.PutBlock<T>(Libplanet.Blocks.Block<T>)
|
Improve this Doc
View Source
PutTransaction<T>(Transaction<T>)
Declaration
public override void PutTransaction<T>(Transaction<T> tx)
where T : IAction, new()
Parameters
Type Parameters
Overrides
Libplanet.Store.BaseStore.PutTransaction<T>(Libplanet.Tx.Transaction<T>)
|
Improve this Doc
View Source
SetBlockStates(HashDigest<SHA256>, IImmutableDictionary<String, IValue>)
Declaration
public override void SetBlockStates(HashDigest<SHA256> blockHash, IImmutableDictionary<string, IValue> states)
Parameters
Type |
Name |
Description |
HashDigest<SHA256> |
blockHash |
|
IImmutableDictionary<String, IValue> |
states |
|
Overrides
|
Improve this Doc
View Source
SetCanonicalChainId(Guid)
Sets the canonical chain.
Declaration
public override void SetCanonicalChainId(Guid chainId)
Parameters
Type |
Name |
Description |
Guid |
chainId |
The ID of a new canonical chain.
|
Overrides
See Also
|
Improve this Doc
View Source
StageTransactionIds(IImmutableSet<TxId>)
Declaration
public override void StageTransactionIds(IImmutableSet<TxId> txids)
Parameters
Type |
Name |
Description |
IImmutableSet<TxId> |
txids |
TxIds to add to pending list.
|
Overrides
|
Improve this Doc
View Source
StoreStateReference(Guid, IImmutableSet<String>, HashDigest<SHA256>, Int64)
Declaration
public override void StoreStateReference(Guid chainId, IImmutableSet<string> keys, HashDigest<SHA256> blockHash, long blockIndex)
Parameters
Type |
Name |
Description |
Guid |
chainId |
|
IImmutableSet<String> |
keys |
|
HashDigest<SHA256> |
blockHash |
|
Int64 |
blockIndex |
|
Overrides
|
Improve this Doc
View Source
UnstageTransactionIds(ISet<TxId>)
Declaration
public override void UnstageTransactionIds(ISet<TxId> txids)
Parameters
Type |
Name |
Description |
ISet<TxId> |
txids |
|
Overrides
Implements
IDisposable
See Also