Class RocksDBStore
The RocksDB IStore implementation,
which is more production-ready than DefaultStore.
This stores data in the RocksDB with multiple partitions under the hood.
Assembly: Libplanet.RocksDBStore.dll
Syntax
public class RocksDBStore : BaseStore, IStore, IDisposable
Constructors
|
Improve this Doc
View Source
RocksDBStore(String, Int32, Int32, Nullable<UInt64>, Nullable<UInt64>, Nullable<UInt64>, Int32, Int32, Int32)
Declaration
public RocksDBStore(string path, int blockCacheSize = 512, int txCacheSize = 1024, ulong? maxTotalWalSize = null, ulong? keepLogFileNum = null, ulong? maxLogFileSize = null, int txEpochUnitSeconds = 86400, int blockEpochUnitSeconds = 86400, int dbConnectionCacheSize = 100)
Parameters
Type |
Name |
Description |
String |
path |
The path of the directory where the storage files will be saved.
|
Int32 |
blockCacheSize |
The capacity of the block cache.
|
Int32 |
txCacheSize |
The capacity of the transaction cache.
|
Nullable<UInt64> |
maxTotalWalSize |
The number to configure max_total_wal_size RocksDB
option.
|
Nullable<UInt64> |
keepLogFileNum |
The number to configure keep_log_file_num RocksDB
option.
|
Nullable<UInt64> |
maxLogFileSize |
The number to configure max_log_file_size
RocksDB option.
|
Int32 |
txEpochUnitSeconds |
The interval between epochs of DB partions containing
transactions. 86,400 seconds by default.
|
Int32 |
blockEpochUnitSeconds |
The interval between epochs of DB partions
containing blocks. 86,400 seconds by default.
|
Int32 |
dbConnectionCacheSize |
The capacity of the block and transaction
RocksDB connection cache. 100 by default.
|
Methods
|
Improve this Doc
View Source
AppendIndex(Guid, BlockHash)
Declaration
public override long AppendIndex(Guid chainId, BlockHash hash)
Parameters
Returns
|
Improve this Doc
View Source
ContainsBlock(BlockHash)
Determines whether the IStore contains Block<T>
the specified blockHash
.
Declaration
public override bool ContainsBlock(BlockHash 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
|
Improve this Doc
View Source
CountTransactions()
Declaration
public override long CountTransactions()
Returns
Overrides
|
Improve this Doc
View Source
DeleteBlock(BlockHash)
Removes a block from the store.
Declaration
public override 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 .
|
Overrides
|
Improve this Doc
View Source
DeleteChainId(Guid)
Declaration
public override void DeleteChainId(Guid chainId)
Parameters
Type |
Name |
Description |
Guid |
chainId |
|
|
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
DeleteTxIdBlockHashIndex(TxId, BlockHash)
Deletes the index for the txId
and blockHash
.
Declaration
public override void DeleteTxIdBlockHashIndex(TxId txId, BlockHash blockHash)
Parameters
Overrides
|
Improve this Doc
View Source
Dispose()
Declaration
public override void Dispose()
Overrides
|
Improve this Doc
View Source
ForkBlockIndexes(Guid, Guid, BlockHash)
Declaration
public override void ForkBlockIndexes(Guid sourceChainId, Guid destinationChainId, BlockHash branchpoint)
Parameters
Type |
Name |
Description |
Guid |
sourceChainId |
|
Guid |
destinationChainId |
|
BlockHash |
branchpoint |
|
|
Improve this Doc
View Source
ForkTxNonces(Guid, Guid)
Declaration
public override void ForkTxNonces(Guid sourceChainId, Guid destinationChainId)
Parameters
Type |
Name |
Description |
Guid |
sourceChainId |
|
Guid |
destinationChainId |
|
|
Improve this Doc
View Source
GetBlockDigest(BlockHash)
Gets the corresponding stored BlockDigest to the given
blockHash
.
Declaration
public override BlockDigest? GetBlockDigest(BlockHash blockHash)
Parameters
Returns
Overrides
|
Improve this Doc
View Source
GetBlockPerceivedTime(BlockHash)
Queries the perceived time of a block, if it has been recorded.
Declaration
public override DateTimeOffset? GetBlockPerceivedTime(BlockHash blockHash)
Parameters
Returns
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
GetTxExecution(BlockHash, TxId)
Retrieves the recorded transaction execution summary.
Declaration
public override 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.
|
Overrides
See Also
|
Improve this Doc
View Source
GetTxNonce(Guid, Address)
Declaration
public override long GetTxNonce(Guid chainId, Address address)
Parameters
Returns
|
Improve this Doc
View Source
IncreaseTxNonce(Guid, Address, Int64)
Declaration
public override void IncreaseTxNonce(Guid chainId, Address signer, long delta = 1L)
Parameters
|
Improve this Doc
View Source
IndexBlockHash(Guid, Int64)
Declaration
public override BlockHash? IndexBlockHash(Guid chainId, long index)
Parameters
Type |
Name |
Description |
Guid |
chainId |
|
Int64 |
index |
|
Returns
|
Improve this Doc
View Source
IterateBlockHashes()
Lists all block hashes in the store, regardless of their belonging chains.
Declaration
public override IEnumerable<BlockHash> IterateBlockHashes()
Returns
Overrides
|
Improve this Doc
View Source
IterateIndexes(Guid, Int32, Nullable<Int32>)
Declaration
public override IEnumerable<BlockHash> IterateIndexes(Guid chainId, int offset, int? limit)
Parameters
Returns
|
Improve this Doc
View Source
IterateTransactionIds()
Declaration
public override IEnumerable<TxId> IterateTransactionIds()
Returns
Overrides
|
Improve this Doc
View Source
IterateTxIdBlockHashIndex(TxId)
Declaration
public override IEnumerable<BlockHash> IterateTxIdBlockHashIndex(TxId txId)
Parameters
Returns
Overrides
|
Improve this Doc
View Source
ListChainIds()
Lists existing chain IDs.
Declaration
public override IEnumerable<Guid> ListChainIds()
Returns
Overrides
|
Improve this Doc
View Source
ListTxNonces(Guid)
Declaration
public override IEnumerable<KeyValuePair<Address, long>> ListTxNonces(Guid chainId)
Parameters
Type |
Name |
Description |
Guid |
chainId |
|
Returns
|
Improve this Doc
View Source
MigrateChainDBFromColumnFamilies(String)
Declaration
public static bool MigrateChainDBFromColumnFamilies(string path)
Parameters
Type |
Name |
Description |
String |
path |
|
Returns
|
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
public override 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 .
|
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
PutTxExecution(TxFailure)
Records the given txFailure
.
Declaration
public override void PutTxExecution(TxFailure txFailure)
Parameters
Type |
Name |
Description |
TxFailure |
txFailure |
The failed transaction execution summary to record.
Must not be null .
|
Overrides
See Also
|
Improve this Doc
View Source
PutTxExecution(TxSuccess)
Records the given txSuccess
.
Declaration
public override void PutTxExecution(TxSuccess txSuccess)
Parameters
Type |
Name |
Description |
TxSuccess |
txSuccess |
The successful transaction execution summary to record.
Must not be null .
|
Overrides
See Also
|
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 override void PutTxIdBlockHashIndex(TxId txId, BlockHash blockHash)
Parameters
Overrides
|
Improve this Doc
View Source
SetBlockPerceivedTime(BlockHash, DateTimeOffset)
Declaration
public override void SetBlockPerceivedTime(BlockHash blockHash, DateTimeOffset perceivedTime)
Parameters
|
Improve this Doc
View Source
SetCanonicalChainId(Guid)
Declaration
public override void SetCanonicalChainId(Guid chainId)
Parameters
Type |
Name |
Description |
Guid |
chainId |
|
Implements
IDisposable
See Also