mirror of
https://github.com/status-im/nimbus-eth1.git
synced 2025-01-15 06:44:12 +00:00
786263c0b8
* CoreDB: Re-org API details: Legacy API internally uses vertex ID for root node abstraction * Cosmetics: Move some unit test helpers to common sub-directory * Extract constant from `accouns_cache.nim` => `constants.nim` * Fix tracer methods why: Logger dump data were wrongly dumped from the production database. This caused an assert exception when iterating over the persistent database (instead of the memory logger.) This event in turn was enabled after fixing another inconsistency which just set up an empty iterator. Unit tests failed to detect that.
42 lines
1.2 KiB
Nim
42 lines
1.2 KiB
Nim
# * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
|
|
# http://www.apache.org/licenses/LICENSE-2.0)
|
|
# * MIT license ([LICENSE-MIT](LICENSE-MIT) or
|
|
# http://opensource.org/licenses/MIT)
|
|
# at your option. This file may not be copied, modified, or distributed except
|
|
# according to those terms.
|
|
|
|
## This module automatically pulls in the persistent backend libraries at the
|
|
## linking stage (e.g. `rocksdb`) which can be avoided for pure memory DB
|
|
## applications by importing `db/code_db/memory_only` (rather than
|
|
## `db/core_db/persistent`.)
|
|
##
|
|
{.push raises: [].}
|
|
|
|
import
|
|
../aristo,
|
|
./backend/[legacy_rocksdb],
|
|
./memory_only
|
|
|
|
export
|
|
memory_only,
|
|
toRocksStoreRef
|
|
|
|
proc newCoreDbRef*(
|
|
dbType: static[CoreDbType]; # Database type symbol
|
|
path: string; # Storage path for database
|
|
): CoreDbRef =
|
|
## Constructor for persistent type DB
|
|
##
|
|
## Note: Using legacy notation `newCoreDbRef()` rather than
|
|
## `CoreDbRef.init()` because of compiler coughing.
|
|
when dbType == LegacyDbPersistent:
|
|
newLegacyPersistentCoreDbRef path
|
|
|
|
elif dbType == AristoDbRocks:
|
|
newAristoRocksDbCoreDbRef path
|
|
|
|
else:
|
|
{.error: "Unsupported dbType for persistent newCoreDbRef()".}
|
|
|
|
# End
|