Class RocksDBStore
The RocksDB IStore implementation,
which is more production-ready than Default
Inherited Members
Namespace: Libplanet.RocksDBStore
Assembly: Libplanet.RocksDBStore.dll
Syntax
public class RocksDBStore : BaseStore, IStore, IDisposable
Constructors
| Improve this Doc View SourceRocksDBStore(String, Int32, Int32, Nullable<UInt64>, Nullable<UInt64>, Nullable<UInt64>, Int32, Int32, Int32)
Creates a new Rocks
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 |
Nullable<UInt64> | keepLogFileNum | The number to configure |
Nullable<UInt64> | maxLogFileSize | The number to configure |
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 SourceAppendIndex(Guid, BlockHash)
Declaration
public override long AppendIndex(Guid chainId, BlockHash hash)
Parameters
Returns
Type | Description |
---|---|
Int64 |
ContainsBlock(BlockHash)
Declaration
public override bool ContainsBlock(BlockHash blockHash)
Parameters
Type | Name | Description |
---|---|---|
Block |
blockHash | The HashDigest<T> of the Block<T> to check if it is in the IStore. |
Returns
Type | Description |
---|---|
Boolean |
|
Overrides
| Improve this Doc View SourceContainsTransaction(TxId)
Determines whether the IStore contains Transaction<T>
the specified txId
.
Declaration
public override bool ContainsTransaction(TxId txId)
Parameters
Type | Name | Description |
---|---|---|
Tx |
txId | The Tx |
Returns
Type | Description |
---|---|
Boolean |
|
Overrides
| Improve this Doc View SourceCountBlocks()
Declaration
public override long CountBlocks()
Returns
Type | Description |
---|---|
Int64 |
Overrides
| Improve this Doc View SourceCountIndex(Guid)
Declaration
public override long CountIndex(Guid chainId)
Parameters
Type | Name | Description |
---|---|---|
Guid | chainId |
Returns
Type | Description |
---|---|
Int64 |
CountTransactions()
Declaration
public override long CountTransactions()
Returns
Type | Description |
---|---|
Int64 |
Overrides
| Improve this Doc View SourceDeleteBlock(BlockHash)
Removes a block from the store.
Declaration
public override bool DeleteBlock(BlockHash blockHash)
Parameters
Type | Name | Description |
---|---|---|
Block |
blockHash | The hash of a block to remove. |
Returns
Type | Description |
---|---|
Boolean |
|
Overrides
| Improve this Doc View SourceDeleteChainId(Guid)
Declaration
public override void DeleteChainId(Guid chainId)
Parameters
Type | Name | Description |
---|---|---|
Guid | chainId |
DeleteTransaction(TxId)
Declaration
public override bool DeleteTransaction(TxId txid)
Parameters
Type | Name | Description |
---|---|---|
Tx |
txid |
Returns
Type | Description |
---|---|
Boolean |
Overrides
| Improve this Doc View SourceDeleteTxIdBlockHashIndex(TxId, BlockHash)
Deletes the index for the txId
and blockHash
.
Declaration
public override void DeleteTxIdBlockHashIndex(TxId txId, BlockHash blockHash)
Parameters
Type | Name | Description |
---|---|---|
Tx |
txId | The Tx |
Block |
blockHash |
Overrides
| Improve this Doc View SourceDispose()
Declaration
public override void Dispose()
Overrides
| Improve this Doc View SourceForkBlockIndexes(Guid, Guid, BlockHash)
Declaration
public override void ForkBlockIndexes(Guid sourceChainId, Guid destinationChainId, BlockHash branchpoint)
Parameters
| Improve this Doc View SourceForkTxNonces(Guid, Guid)
Declaration
public override void ForkTxNonces(Guid sourceChainId, Guid destinationChainId)
Parameters
| Improve this Doc View SourceGetBlockDigest(BlockHash)
Gets the corresponding stored BlockblockHash
.
Declaration
public override BlockDigest? GetBlockDigest(BlockHash blockHash)
Parameters
Returns
Type | Description |
---|---|
Nullable<Block |
A found Block |
Overrides
| Improve this Doc View SourceGetBlockPerceivedTime(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<Date |
The perceived time of a block, if it exists. Otherwise, |
Overrides
| Improve this Doc View SourceGetCanonicalChainId()
Gets the ID of the current canonical chain.
Declaration
public override Guid? GetCanonicalChainId()
Returns
Overrides
See Also
GetTransaction<T>(TxId)
Declaration
public override Transaction<T> GetTransaction<T>(TxId txid)
where T : IAction, new()
Parameters
Type | Name | Description |
---|---|---|
Tx |
txid |
Returns
Type | Description |
---|---|
Transaction<T> |
Type Parameters
Name | Description |
---|---|
T |
Overrides
| Improve this Doc View SourceGetTxExecution(BlockHash, TxId)
Retrieves the recorded transaction execution summary.
Declaration
public override TxExecution GetTxExecution(BlockHash blockHash, TxId txid)
Parameters
Type | Name | Description |
---|---|---|
Block |
blockHash | The Hash of the recorded transaction execution to retrieve. |
Tx |
txid | The Id of the recorded transaction execution to retrieve. |
Returns
Type | Description |
---|---|
Tx |
The recorded transaction execution summary. If it has been never recorded
|
Overrides
See Also
| Improve this Doc View SourceGetTxNonce(Guid, Address)
Declaration
public override long GetTxNonce(Guid chainId, Address address)
Parameters
Returns
Type | Description |
---|---|
Int64 |
IncreaseTxNonce(Guid, Address, Int64)
Declaration
public override void IncreaseTxNonce(Guid chainId, Address signer, long delta = 1L)
Parameters
| Improve this Doc View SourceIndexBlockHash(Guid, Int64)
Declaration
public override BlockHash? IndexBlockHash(Guid chainId, long index)
Parameters
Returns
| Improve this Doc View SourceIterateBlockHashes()
Lists all block hashes in the store, regardless of their belonging chains.
Declaration
public override IEnumerable<BlockHash> IterateBlockHashes()
Returns
Type | Description |
---|---|
IEnumerable<Block |
All block hashes in the store. |
Overrides
| Improve this Doc View SourceIterateIndexes(Guid, Int32, Nullable<Int32>)
Declaration
public override IEnumerable<BlockHash> IterateIndexes(Guid chainId, int offset, int? limit)
Parameters
Returns
Type | Description |
---|---|
IEnumerable<Block |
IterateTransactionIds()
Declaration
public override IEnumerable<TxId> IterateTransactionIds()
Returns
Type | Description |
---|---|
IEnumerable<Tx |
Overrides
| Improve this Doc View SourceIterateTxIdBlockHashIndex(TxId)
Retrieves BlocktxId
.
Declaration
public override IEnumerable<BlockHash> IterateTxIdBlockHashIndex(TxId txId)
Parameters
Type | Name | Description |
---|---|---|
Tx |
txId | The Tx |
Returns
Type | Description |
---|---|
IEnumerable<Block |
Block |
Overrides
| Improve this Doc View SourceListChainIds()
Lists existing chain IDs.
Declaration
public override IEnumerable<Guid> ListChainIds()
Returns
Type | Description |
---|---|
IEnumerable<Guid> | Existing chain IDs. |
Overrides
| Improve this Doc View SourceListTxNonces(Guid)
Declaration
public override IEnumerable<KeyValuePair<Address, long>> ListTxNonces(Guid chainId)
Parameters
Type | Name | Description |
---|---|---|
Guid | chainId |
Returns
Type | Description |
---|---|
IEnumerable<Key |
MigrateChainDBFromColumnFamilies(String)
Declaration
public static bool MigrateChainDBFromColumnFamilies(string path)
Parameters
Type | Name | Description |
---|---|---|
String | path |
Returns
Type | Description |
---|---|
Boolean |
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 Parameters
Name | Description |
---|---|
T | An IAction class used with
|
Overrides
PutTransaction<T>(Transaction<T>)
Declaration
public override void PutTransaction<T>(Transaction<T> tx)
where T : IAction, new()
Parameters
Type | Name | Description |
---|---|---|
Transaction<T> | tx |
Type Parameters
Name | Description |
---|---|
T |
Overrides
PutTxExecution(TxFailure)
Records the given txFailure
.
Declaration
public override void PutTxExecution(TxFailure txFailure)
Parameters
Type | Name | Description |
---|---|---|
Tx |
txFailure | The failed transaction execution summary to record.
Must not be |
Overrides
Remarks
See Also
| Improve this Doc View SourcePutTxExecution(TxSuccess)
Records the given txSuccess
.
Declaration
public override void PutTxExecution(TxSuccess txSuccess)
Parameters
Type | Name | Description |
---|---|---|
Tx |
txSuccess | The successful transaction execution summary to record.
Must not be |
Overrides
Remarks
See Also
| Improve this Doc View SourcePutTxIdBlockHashIndex(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
Type | Name | Description |
---|---|---|
Tx |
txId | The Tx |
Block |
blockHash |
Overrides
| Improve this Doc View SourceSetBlockPerceivedTime(BlockHash, DateTimeOffset)
Declaration
public override void SetBlockPerceivedTime(BlockHash blockHash, DateTimeOffset perceivedTime)
Parameters
Type | Name | Description |
---|---|---|
Block |
blockHash | |
System. |
perceivedTime |
SetCanonicalChainId(Guid)
Declaration
public override void SetCanonicalChainId(Guid chainId)
Parameters
Type | Name | Description |
---|---|---|
Guid | chainId |