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