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.
information about blocks at each level of the block tree (canonical chain and branches)
block bodies (block transactions and uncle data)
bloom indexes for fast log searches
LES protocol related data
peers discovered via discovery protocol - used for quick peering after restarts (you can copy this DB between nodes to speed up peering)
block headers only
(this DB is wiped out on each restart) 2nd level cache of pending transactions / mempool (1st level is in memory)
stores additional sync peers information (like peer reputation) - you can copy this DB between nodes to speed up peering on fresh sync
transaction receipts data
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).