We’re very grateful for the GMC for initiating this process! Data Nexus helped build the Rocket Pool subgraph just before the launch of the network.
At that time it was used to power the rp-metrics-dashboard created by VGR. The metrics page was compensated work, and VGR compensated us for the time spent building the initial version of the subgraph. Since then, the protocol has added new functionality and the subgraph has become less reliable - and thus needs some maintenance work.
Grants Application
Project - Rocket Pool Subgraph Update
What is the work being proposed?
A subgraph is an open API that can be utilized to query aggregated information from on-chain events. In laymen’s terms, we listen to the blockchain and as people interact with the protocol we update information in an exterior dB that stores key rocket pool metrics. The subgraph is served by a decentralized group of server operators (indexers).
Is there any related work this builds off of?
The current deployed subgraph.
Will the results of this project be entirely open source (MIT, GPL, Apache, CC BY license or similar)? If not, which parts will not be, why, and under what license will they be published?
Yes. The repo was transferred to the Rocket Pool Team.
Benefits - enter N/A where appropriate
Most of the answers are all common with the fact that the subgraph aggregates protocol information in and is stored by a distributed group of server operators.
Since the subgraph aggregates protocol information it exposes:
How does this help people looking to stake ETH for rETH?
- Metrics regarding staking ETH for rETH (APY, total volumes etc.)
How does this help rETH holders?
- Metrics regarding individual holders activity (balance adjustments, rETH:ETH ratio etc.)
How does this help people looking to run a Rocket Pool node for the first time?
How does this help people already running a Rocket Pool node?
- Metrics aggregating node operator data and RPL staking data (though the node specific information is not nearly as useful as beaconcha.in)
How does this help the Rocket Pool community?
- By offering rich data we can improve UX in giving new node operators key information they need to make decisions. A lot of this is largely already accomplished, but the subgraph can also be a data source for this.
How does this help RPL holders?
What other non-RPL protocols, DAOs, projects, or individuals, would stand to benefit from this grant?
- Any project desiring to display Rocket Pool’s information can benefit from this.
Team
Who is doing the work?
- We have a smaller team who builds and indexes subgraphs. In addition to our work with The Graph we also run stake ETH through Rocket Pool.
What is the background of the person(s) doing the work? What experience do they have with such projects in the past?
- I have 6 years of DBA experience (prior to starting Data Nexus) and have been working for the past year and a half focusing on blockchain indexing with The Graph. As mentioned earlier, we built the first iteration of the subgraph and have since worked with other’s on building out their API.
What is the breakdown of the proposed work, in terms of milestones and/or deadlines?
- Key things that would be targeted in this maintenance round are:
- Smoothing Pool Interactions
- New RPL functionality (such as
stakeRPLFor()
on the RocketNodeStaking contract) - The prior version assumed only 1
BalancesUpdated()
would be emitted each day which has lead to missing checkpoints. - Initial methodology for tracking individuals profits has a cumbersome indexing loop that can be optimized.
- Subgraph should be templated so it can be deployed on the other networks that rETH and RPL are on.
How is the work being tested? Is testing included in the schedule?
- We will test the information through looking at on chain activity and using identified nodes & stakers are test cases (such as our own node which currently does not display due to a few new contract interactions).
How will the work be maintained after delivery?
- The Rocket Pool team now has ownership of the subgraph (we transferred it a few months back) and has stated that they’re looking to maintain it. We’re putting this grant in to help alleviate some of the tasks on their TODO list.
Payment and Verification
What is the acceptance criteria?
- Subgraph is successfully tested and deployed to The Graph protocol and indexers are returning expected information.
What is the proposed payment schedule for the grant? How much RPL and over what period of time is the applicant requesting?
- We’re estimating this round of maintenance to cost $13,000 in RPL for development, testing, query/migration assistance and technical documentation updates. We would request this upon completion of the work.
How will the GMC verify that the work’s deliveries match the proposed cadence?
- GMC can monitor our working repo for progress status
What alternatives or options have been considered in order to save costs for the proposed project?
- Subgraph ownership has been transferred to the Rocket Pool team. It could ‘save costs’ to have the team work on it, however we wager that their time is better spend in continuing to develop the protocol.
Conflict of Interest
Does the person or persons proposing the grant have any conflicts of interest to disclose? (Please disclose here if you are a member of the GMC or if any member of the GMC would benefit directly financially from the grant).
- No
Will the recipient of the grant, or any protocol or project in which the recipient has a vested interest (other than Rocket Pool), benefit financially if the grant is successful?
- We run an indexer on The Graph. So there is a conflict of interest in that we will be paid a portion of the query fees (split proportionally with all other indexers). This does not equate to any large figure at the moment.