Links

Database

dbpath and databases info
Nethermind uses the RocksDB database to store state. By default the database is stored in the same directory where the client binaries are. You can change it by providing a --baseDbPath config switch in the command line, e.g../Nethermind.Runner --config goerli --baseDbPath /home/username/nethermind_db
After Nethermind is started, you will see multiple directories appearing in the baseDbPath directory.
Example of the DB directory on a freshly deployed Ubuntu VM with Nethermind.
DB Directory
Content
blockInfos
information about blocks at each level of the block tree (canonical chain and branches)
blocks
block bodies (block transactions and uncle data)
bloom
bloom indexes for fast log searches
canonicalHashTrie
LES protocol related data
code
contract bytecodes
discoveryNodes
peers discovered via discovery protocol - used for quick peering after restarts (you can copy this DB between nodes to speed up peering)
headers
block headers only
pendingTx
(this DB is wiped out on each restart) 2nd level cache of pending transactions / mempool (1st level is in memory)
peers
stores additional sync peers information (like peer reputation) - you can copy this DB between nodes to speed up peering on fresh sync
receipts
transaction receipts data
state
blockchain state including accounts and contract storage (Patricia trie nodes)
You can use rsync between your nodes to clone the database (One of our users copied entire 4.5TB archive state this way while the node was running and only stopped the node for the very last stage of rsync ). You can also simply copy the database between Unix and Windows systems (and most likely macOS).