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.
RocksDBStore and RocksDBKeyValueStore-backed
TrieStateStore can be instantiated from a URI with rocksdb+file:
scheme
using , e.g.:
rocksdb+file:///var/data/planet/
rocksdb+file:///c:/Users/john/AppData/Local/planet/
rocksdb+file:///var/data/planet/?secure=true
(trie keys are hashed)
The following query string parameters are supported:
block-cache | Corresponds to
RocksDBStore(String, Int32, Int32, Nullable<UInt64>, Nullable<UInt64>, Nullable<UInt64>, Int32, Int32, Int32)'s
blockCacheSize parameter. 512 by default. |
tx-cache | Corresponds to
RocksDBStore(String, Int32, Int32, Nullable<UInt64>, Nullable<UInt64>, Nullable<UInt64>, Int32, Int32, Int32)'s
txCacheSize parameter. 1024 by default. |
max-total-wal-size | Corresponds to RocksDB's max_total_wal_size option. |
keep-log-file-num | Corresponds to RocksDB's keep_log_file_num option. |
max_log_file_size | Corresponds to RocksDB's max_log_file_size option. |
tx-epoch-unit-secs | Corresponds to
RocksDBStore(String, Int32, Int32, Nullable<UInt64>, Nullable<UInt64>, Nullable<UInt64>, Int32, Int32, Int32)'s
txEpochUnitSeconds parameter. 86400 by default. |
block-epoch-unit-secs | Corresponds to
RocksDBStore(String, Int32, Int32, Nullable<UInt64>, Nullable<UInt64>, Nullable<UInt64>, Int32, Int32, Int32)'s
blockEpochUnitSeconds parameter. 86400 by default. |
connection-cache | Corresponds to
RocksDBStore(String, Int32, Int32, Nullable<UInt64>, Nullable<UInt64>, Nullable<UInt64>, Int32, Int32, Int32)'s
dbConnectionCacheSize parameter. 100 by default. |
states-dir | Corresponds to RocksDBKeyValueStore(String)'s path
parameter. It is relative to the URI path, and defaults to states . |
secure | true or false (default). Corresponds to
's secure
parameter. |
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
Type |
Name |
Description |
Guid |
chainId |
|
BlockHash |
hash |
|
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
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
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
Type |
Description |
Nullable<DateTimeOffset> |
The perceived time of a block, if it exists. Otherwise, null .
|
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
Type |
Name |
Description |
Guid |
chainId |
|
Address |
address |
|
Returns
|
Improve this Doc
View Source
IncreaseTxNonce(Guid, Address, Int64)
Declaration
public override void IncreaseTxNonce(Guid chainId, Address signer, long delta = null)
Parameters
Type |
Name |
Description |
Guid |
chainId |
|
Address |
signer |
|
Int64 |
delta |
|
|
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
Type |
Description |
IEnumerable<BlockHash> |
All block hashes in the store.
|
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
IterateTxIdBlockHashIndex(TxId)
Declaration
public override IEnumerable<BlockHash> IterateTxIdBlockHashIndex(TxId txId)
Parameters
Returns
Overrides
|
Improve this Doc
View Source
ListChainIds()
Lists chain IDs containing at least a single block.
Declaration
public override IEnumerable<Guid> ListChainIds()
Returns
Type |
Description |
IEnumerable<Guid> |
Chain IDs with at least a single block.
|
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
PruneOutdatedChains(Boolean)
Declaration
public override void PruneOutdatedChains(bool noopWithoutCanon = false)
Parameters
Type |
Name |
Description |
Boolean |
noopWithoutCanon |
|
|
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
Type |
Name |
Description |
BlockHash |
blockHash |
|
DateTimeOffset |
perceivedTime |
|
|
Improve this Doc
View Source
SetCanonicalChainId(Guid)
Declaration
public override void SetCanonicalChainId(Guid chainId)
Parameters
Type |
Name |
Description |
Guid |
chainId |
|
Implements
IDisposable
See Also