The Graph Core Dev Call #20

:information_source: The 20th Core Dev call is happening this Thursday 2023-04-27T15:00:00Z.

Join us!

:point_right: Launch Meeting - Zoom

This is a recurring call where different contributors from various teams gather around to discuss major updates from different working groups and brainstorm around active R&D tracks.

:calendar: Please subscribe to The Graph Foundation’s Ecosystem Calendar so you don’t miss any of the upcoming calls!

:notebook: Tentative agenda:

  • Updates on the move to L2 [Edge & Node]
    • GIP 0052 + GIP 0046 (rewards increase, migration helpers status update & L2 subgraph migration process) [Edge & Node]
  • GIP-0051: Exponential Query Fee Rebates for Indexers [Edge & Node]
  • Substreams cli new features (GUI ) [StreamingFast]
  • Substreams-powered subgraphs (rollout plan & MIPs mission) [Edge & Node]
  • Q&A

:tv: The recording will be uploaded here.

:rocket: The Graph Core R&D Workspace

As The Graph is being built in public and in a decentralized way, we’ve put together a new publicly accessible The Graph Core R&D Workspace . You can use this page to follow along with each working group’s progress on significant workstreams and access meeting notes and recordings.

:crystal_ball: Monthly Core Dev updates [NEW! :eyes: ]

Core development teams are now posting monthly updates in this forum section Core Team Updates - The Graph.
Soon you’ll also find regular updates from all Working Groups and Task Forces on all major components of The Graph stack. Stay tuned!

See you Thursday! :astronaut:


On April 27, 2023, the 20th Core Devs Call took place, focusing on updates, discussing upcoming features, and protocol changes within The Graph Ecosystem.

  1. The first GIP discussed the move to Arbitrum One, an L2 solution for Ethereum. The conversation covered increasing indexing rewards, migration helpers, and plans to ensure no downtime when migrating subgraphs to layer two. This move requires the participation of Indexers, Delegators, Curators, and subgraph owners.

  2. GIP-0051 was introduced, proposing a new exponential rebate mechanism to replace the current Cobb Douglas-inspired one used in the protocol to distribute query rebates to indexers. Howard, one of the GIP authors, presented the details, implications, and implementation plan.

  3. The next topic was Substreams, with updates from the StreamingFast team with their work on the CLI and their new GUI. Alex from StreamingFast demonstrated the latest developments and solicited feedback. The call also featured a discussion on Substreams-powered subgraphs, which have shown 8x indexing speed improvements. Adam shared the rollout plan for Substreams on the network.

Throughout the call, attendees were encouraged to ask questions, participate in the discussions, and to use the forum to engage with developers. The importance of community participation was emphasized, especially for those directly impacted by the proposed changes.

L2 Scaling Process (04:50)

In Core Devs Call #20, updates were provided on the L2 scaling process of The Graph network. The process is aimed at migrating the network to Arbitrum One and having participants conduct all their on-chain operations on Arbitrum instead of Ethereum Mainnet. The process has been divided into several stages, and the network is currently at Stage 2.

Stage 2 involves enabling indexing rewards on Arbitrum. Currently, 5% of token issuance is happening on Arbitrum, while 95% is still on the Ethereum Mainnet. To achieve this, indexing rewards now follow a linear formula instead of the exponential one used before.

Stage 3 aims to enable easy migration from Mainnet to Arbitrum to benefit from L2 and lowered gas costs. As of now, 120 subgraphs have been deployed to the L2 network, and around 20 million GRT has been staked. Migration helpers for subgraph activation, stake delegation, and vesting contracts are being audited and tested, with the final report expected soon. UI development for the Migration Hub is also underway.

GIP-0052 proposes increasing L2 rewards in four steps until 100% of token issuance and indexing rewards happen on Arbitrum. Migration helpers are a prerequisite for these increases. The Graph community will monitor progress at each step, and timelines will be adjusted as needed.

As part of the migration process, improvements to the Indexer stack are being made to handle subgraph migrations to L2. These changes include making the Indexer agent aware of both L1 and L2 networks, supporting a combined strategy of allocating stake across both networks, and updating the agent to connect to an RPC provider and network subgraph from each network.

Answers to questions asked about L2 Scaling:

  • Subgraph developers must initiate the migration to L2 by executing a transaction through the Explorer or Studio UI.
  • Participants can choose their L2 address during the migration process, except in the case of vesting contracts where it’s auto-assigned.
  • If a significant number of participants don’t want to migrate to L2 by the 95% stage, the community will revisit the decision and determine the best course of action.

Substreams GUI Updates (43:30)

Alexander Bourget demonstrated the new GUI application for Substreams, showcasing new features aimed at improving the debugging experience for developers. The terminal-based GUI has multiple tabs for navigating and understanding data. The update includes a module switcher, search features, and the ability to jump between blocks with matching data. Additionally, the GUI now supports JQ (JSON Query Language) and has search history.

Other features include:

  • Decoding bytes and various formats right in the GUI
  • Restarting the stream with the ‘R’ key after making code changes
  • A visualizer for the structure of substrings module
  • A separate tool for testing The Graph out module, which can compare and validate data against the Graph QL output

The team will be releasing this update soon, and it can already be built from the source. Developers can use the Substreams channel on The Graph’s Discord server for questions and comments related to these features.

Substreams Based Subgraphs (51:18)

Substreams have a similar structure to subgraphs, with protobuf shaping the data, modules processing it, and the substream.yaml coordinating everything. To feed a subgraph with Substream data, Substreams need stateless sinks, and a subgraph can act as a sink. By utilizing entity changes, graph-node can consume the data produced by Substreams, as long as it matches the schema.GraphQL file.

The local developer experience was highlighted, emphasizing the benefits of Substreams for quicker testing, learning, and deployment. An example was given on building Substreams using the Ethereum supply, with the end output being entity changes for subgraph consumption. The process involves using both Substream CLI and The Graph CLI with a few commands to integrate everything.

The status of the integration includes substring-based data sources supported in graph-node, core developers dogfooding integration, and ecosystem participants starting to run Firehose and Substream infrastructure. A MIPS mission is being prepared to get Indexers running Substreams by exposing Substream endpoints and connecting the graph-node for indexing. Efforts are being made to create better documentation for Substreams and their integration into subgraphs.

Improvements being considered include more efficient database writes, parameterized Substreams for more modularity, and cookbooks and examples for better guidance. The next steps include testing, documentation, an open alpha on the subgraph studio, a MIPS program for Indexers, an open beta, and general availability on the network.

Stay Tuned!

Join us next month for Core Devs Call #21!

Keep up to date by joining discussions in the forum, following The Graph on Twitter or joining the Discord server.