Core development notes and updates

2021-11-27

A few quick notes on ongoing work and research.

R&D Offsite: a number of teams contributing to core development met in Lisbon earlier this month, to discuss ongoing & planned work, spanning indexing, contracts & cryptography.

Graph Node 0.25.0: release scheduled for next week, this introduces some new fields in apiVersion 0.0.6, includes NEAR & Firehose Blockstream support, adds support for number_gte specification, as well as bug fixes (more details will be in the release notes!)

Ethereum Firehose: work is ongoing to finalise the Graph Node <> Firehose integration for Ethereum. Recent fixes include more elegant handling of chain re-orgs, and there is ongoing work to better support sparse subgraphs (those with relatively few triggers per block). This integration is crucial to unlock some initial performance enhancements, as well as parallel execution in future.

Multiblockchain work: Tendermint & Solana data extraction & integration work is ongoing. NEAR is being added to graph init, and NEAR block ingestion is in progress, to fully support sync status and pending versions for subgraphs.

Cross-chain PoIs: a thread on PoI recency evolved into a discussion of the correct architecture for supporting cross-chain POIs. This is an area of active research, with a range of proposed approaches.

File data sources: engineering planning for this work has started (see GIP here), which will improve the robustness of Graph Node’s IPFS integration, while preparing for general deterministic off-chain data indexing.

Rust Gateway is live: the new, more performant Gateway was rolled out last week, after extensive performance testing. This also included improvements in indexer selection algorithm, and other requested fixes.

Integration testing: work has begun on an improved open-source integration testing & network monitoring setup, for Graph Node and the indexer components.

GraphQL API Versioning: there is an ongoing discussion about feature support and versioning, specifically focusing on the GraphQL API, (which does not currently have versioning).

GraphQL API iteration: versioning is particularly relevant, as work has started on some new graphQL features - child entity filters, and the ability to filter on entities based on the block at which they changed.

Unit testing: Limechain continue to iterate on the Matchstick unit testing framework, as well as supporting the community in adopting unit testing as part of subgraph development, now part of graph-cli as graph test

graph debug : Limechain have also been working on a simple integration testing framework, described here, focused on solving a bug encountered at a specific block. This will require access to a graph-node, to run the required block.

9 Likes