The EOSIO developers website says:

Nodeos stores the transaction history and a current state. The transaction history is stored in the blocks.log file on disk. State, which is changed by the execution of transactions, is currently stored using chainbase. EOSIO 2.1 introduces configurable state storage and currently supports these backing stores:

  • Chainbase
  • RocksDB

Chainbase is an in-memory transactional database which uses memory mapped files for persistence. Chainbase is built by block.one.

RocksDB is an open source persistent key value store. Storing state in memory is fast, however limited by the amount of available RAM. RocksDB utilises low latency storage such as flash drives and high-speed disk drives to persist data and memory caches for fast data access. For some deployments RocksDB may be a better state store. See the RocksDB website for more information.

Under what circumstances would it be better to use RocksDB instead of Chainbase? What are the specific advantages and disadvantages of each method?

2 Answers 2


RocksDB intended use is to perform better than Chainbase with data sets that have larger (64KiB+) data associated with the average row in the database and data access patterns that favor fewer highly trafficked rows.

It also has an operational advantage when there is a preference for SSD or disk storage rather than physical RAM.

However, remember that RocksDB is in early Developer Preview stage at the moment and is not intended to be used in Production environments.


Note: RocksDB is currently not merged into the new Mandel-Repositories and there's no plan to integrate it atm.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.