💙 Are you a DApp? We're helping DApps reach out to more users with our promotion service. Contact us now!
View all posts

History of Histories by Daniel Larimer


Dan Larimer recently published an article on Voice regarding the evolution of the database systems used on EOSIO, and how they have been instrumental in improving performances.

The history-plugin

  • Pros: allowed operators to query a dataset of all actions that were present on the blockchain that could be easily filtered.

  • Cons: he in-memory nature of the database meant that storing historical information in volatile RAM was difficult to scale and maintain.

Deprecated on August 12, 2018

The mongodb-plugin

Released on July 20th 2018 as part of EOSIO 1.1

  • Pros: stored much of the same data that the history-data plugin stored in documents as part of a MongoDB database.

  • Cons: did not include an HTTP API equivalent to the history-plugin

Deprecated on June 28th, 2019


This is a javascript frameworks that helps developers map a stream of transactions from an EOSIO blockchain into an “off-chain” data store. This reduces the development effort, but it does not have the the ability to inspect full transaction traces.

The state-history-plugin

Released on June 28th, 2019 and currently in use.

  • Pros: allows the main operation of the blockchain network to continue without being disrupted by history indexing and analysis.

  • Cons: the output of the state-history-plugin is not directly usable as a solution for querying history.

There is still not stable release of the history-tools

What's coming?

  • History-tools/fill-pg: consume the output of the state-history-plugin in order to facilitate the larger operational needs of an application. Initial stable release is coming. It creates and populates a postgreSQL which can be easily queried.

  • History-tools/Custom fill-pg: developers can use it to customize the tables it produces to be more domain specific to their application. In this way it will be possible to filter out extraneous data which is not relevant. This is currently used by Voice.com.

  • History-tools/WASM-QL: allows contract authors the capacity to provide data serializers and domain-specific queries as part of the deployed contract.

From the Community

  • DFuse: SaaS offering from EOSCanada that provides a flexible and fast GraphQL based query engine on top of EOSIO blockchains.

  • Hyperion: open-source product maintained by EOSRio which provides a scalable “v2” of the history API built on top of elastic search, rabbitMQ and redis.

"The days in which blockchain performance could run cover for inefficient integrations are numbered. The next generation of EOSIO-based blockchains will demand enterprise-grade integration as they scale to achieve their potential."

dan history


Suggested News