This past weekend in Colorado, Infura participated in yet another spectacular ETHGlobal event. ETHDenver, now in its second year, was even bigger and better and showcased so much progress and development activity over the last year in the Ethereum community.
Our strategy with EthQL, follows our existing API strategy of following an open standards based model. To that end, we are collaborating with the community on two variants: Standard and Extended.
A core set of standard EthQL building blocks enable compatibility and simplicity. We are working on this standard ratified as an EIP with the goal of having a GraphQL API standard implemented in the Ethereum client itself. We’ve collaborated with the Ethereum client developers and have the initial work on this standard included within the go-ethereum codebase to be released in the next 1.8.x and 1.9 versions of go-ethereum (geth). Support within the Pantheon, Parity, and other clients we hope will be forthcoming.
Building on top of the embedded EthQL standard in the clients, EthQL Extended serves as an overlay that can be extended and fit for purpose for the developers specific needs. EthQL Extended is being developed based on a plug-in architecture so that is customizable and extendable to include more exotic ERCs, specific implementations for systems like ENS, and optimizable for developer specific deployed contracts. In addition, extended filtering and querying will be built.
✅ Block selection: single block, range of blocks, a list of blocks.
✅ Navigating through blocks and accounts.
✅ Automatic batching of requests (via a specialized Web3 + DataLoader).
✅ Transaction filters: with input data, with logs, contract creations.
✅ X-raying into transactions and logs via pluggable decoders.
✅ ERC20 support: token balances, symbol, total supply, etc.
✅ Traversing storage: drilling into maps, arrays, maps of maps, etc.
✅ JSON-RPC transport selection.
By building EthQL as an open standard, it enables community tooling and improvements to be built and contributed across the developer community. At EthDenver, we sponsored $3,000 worth of prizes and a bounties.
This team built a GraphQL playground directly into the Chrome Inspector Developer Tools. They also added an assortment of pre-populated example EthQL queries to make it super quick and easy to get at different blockchain query types. Congratulations to this team and we look forward to seeing what else will be built for EthQL.
To run EthQL using your own local Ethereum node:
git clone https://github.com/ConsenSys/ethql.git cd ethql yarn dev -j <your nodes json rpc> Go to http://localhost:4000
An easier way to get started is to use Infura as your node provider. If you don’t have an Infura account, sign-up and generate a Project ID from the Infura Dashboard, then:
git clone https://github.com/ConsenSys/ethql.git cd ethql INFURA_ID=”<apikey>” yarn dev Go to http://localhost:4000
You can also get started immediately using our EthDenver hosted sandbox: https://ethql-denver.infura.io/.
We invite you to participate and share how you are using EthQL and what you would like to see next. Our github repo is here: https://github.com/ConsenSys/ethql, stop by and say hi with a star!