This how-to describes configuration of the Nodeos backing store. Nodeos can now use chainbase or rocksdb as a backing store for smart contract state.
Version 2.1 or above of the EOSIO-Taurus development environment.
Specify which backing store to use with the chain_plugin --backing-store argument. This argument sets state storage to either chainbase, the default, or rocksdb.
Config Options for eosio::chain_plugin:
--backing-store arg (=chainbase) The storage for state, chainbase or
rocksdb
--persistent-storage-num-threads arg Number of rocksdb threads for flush and
compaction.
--persistent-storage-max-num-files arg (=-1)
Max number of rocksdb files to keep
open. -1 = unlimited.
--persistent-storage-write-buffer-size-mb arg (=128)
Size of a single rocksdb memtable (in MiB).
--persistent-storage-bytes-per-sync Rocksdb write rate of flushes and compactions.
--persistent-storage-mbytes-snapshot-batch
Rocksdb batch size threshold before writing read in snapshot data to database.To use rocksdb for state storage:
nodeos -e -p eosio --plugin eosio::producer_plugin --plugin eosio::producer_api_plugin --plugin eosio::chain_api_plugin --backing-store=’rocksdb’ --persistent-storage-num-threads=’2’ --persistent-storage-max-num-files=’2’ --persistent-storage-write-buffer-size-mb=’128’ --plugin eosio::http_plugin To use chainbase for state storage:
nodeos -e -p eosio --plugin eosio::producer_plugin --plugin eosio::producer_api_plugin --plugin eosio::chain_api_plugin --backing-store=’chainbase’ --plugin eosio::http_plugin or
nodeos -e -p eosio --plugin eosio::producer_plugin --plugin eosio::producer_api_plugin --plugin eosio::chain_api_plugin --plugin eosio::http_plugin