Revealing Data in Ethereum Smart Contracts
Helping web3 users verify blockchain data.
Smart contract data is self-contained and stored in a way that is optimized for building blocks, not reading data. That means it's extremely difficult to gain a global view of activities on a blockchain smart contract system, and attempting to query this data is costly and slow. Efficient storage is the only way a blockchain can create a verifiable record of transactions with validation that's self-contained, without requiring any trusted third party to validate.
Helping you understand what’s happening on Ethereum smart contracts.
Vulcanize sought to create an efficient solution that empowers users to query activity stored on a blockchain and gain a global view of overall activity. VulcanizeDB allows users to index smart contract data in a SQL database. By ingesting live blockchain data and exposing it using a familiar toolset, users can observe the state of Ethereum smart contracts in a direct way.
Verifying results without event logs.
What differentiates VulcanizeDB from other smart contract data indexing tools on the market is indexing of storage changes. Other tools, like The Graph, listen to and index event logs. However, event logs only track the events the smart contract developers included in their contracts, not the full state of a smart contract system. Because VulcanizeDB accesses both events and storage changes, it's able to provide verifiable results that don't rely on event logs written specifically in smart contracts. It is a truly trustless solution for a trustless ecosystem.
Building a suite of tools.
8th Light partnered with Vulcanize to create a suite of Golang tools and libraries for extracting, decoding, and transforming EVM smart contract data.
The toolsuite has four main components:
- A custom patch (or fork) of Geth, the main Ethereum client, which exposes low-level state change data across smart contracts. As part of this work, we maintained a fork of the go-ethereum client enabling subscriptions to smart contract storage changes.
- A DSL and data transformation tool for processing and transforming smart contract data — both events and storage changes — into a legible format.
- A Postgres data store.
- A GraphQL API layer.
By exposing the data using Postgres and Postgraphile, users can write complex queries that are performant and verifiable, using tools that are familiar and trusted.
We continued building out these tools for several years with Maker, creators of the DAI decentralized stablecoin. We created a forked version of the database, providing an application-specific indexer that was more closely tailored for their implementation. Maker used these tools to power their liquidation monitoring, internal monitoring, internal UI, and more bespoke tools.
VulcanizeDB was an ambitious project ahead of its time: an open-source indexer for Ethereum that dApp developers could run themselves. I’m proud that the system we built with Vulcanize helped support the Maker MCD smart contracts, and that our open source work on VulcanizeDB laid a foundation for continued work on verifiable indexing in the Ethereum ecosystem.
Blockchain Support and Applications