Synopsis
Fund development of a multi-chain data store and query API to replace existing subgraph infrastructure. Move 20 ETH from JB Safe into treasury to cover expenses.
Motivation
The launch of Juicebox v4 contracts on multiple blockchains has made the current subgraph infrastructure inadequate. Frontends interfacing with v4 contracts require 4x the expected network requests to retrieve subgraph data, leading to rate limiting problems and unnecessary burdens on code architecture. We need an infrastructure that allows retrieving data from any/all blockchains in a single request.
Specification
Note: 20 ETH should be moved from JB Safe into treasury to cover expenses.
Multiple alternatives to traditional subgraphs have been explored over the last couple months, including Goldsky (pipelines feature) and TheGraph "substreams". As of now, the preferred stack is Ponder.
Ponder is an open-source and free to use framework for processing and storing on-chain event data. The plan is to deploy a Ponder instance with an accompanying database using Railway, where our only operating costs will be incurred (expected <$100/mo).
We will not only be able to achieve functional parity with the current subgraphs, but will have far greater flexibility in how data is processed, stored and queried.
Goals:
- Phase 1: Feature parity with existing v4 subgraphs. Functional query API with documentation as necessary.
- Phase 2: Feature parity with existing v1-3 subgraphs. Once this is achieved, we can deprecate our current Alchemy Subgraphs service entirely.
- Phase 3: Optimization of protocol insights & statistics. We can improve upon the current implementation of stats like project trending score and volume, and make new data sets accessible for charts/timelines, which require complex and expensive queries by frontends.
Peri will also assist in upgrading frontends to accommodate any deviations from the current subgraph pattern. This is expected to include a slightly changed query format, the use of a new `chainId` property on all entities, and some other small (TBD) changes to the schema.
Rationale
Ponder is a new framework (less than a year old), but their team is active and communicative. Based on research and experimentation with all viable options, this seems to be the best solution.
Risks
Ponder may fail or prove unviable, and we'll have to start over with a different option.
Timeline
It should take effect as soon as possible, and end when no more work is required on the Ponder stack.
--- nance-actions
- type: Payout
uuid: d34b506f0734492091eb76614b9087b1
payload:
amount: "5000"
type: address
address: "0x63A2368F4B509438ca90186cb1C15156713D5834"
governanceCycles:
- 97
- 98
- 99
- 100
- 101
- 102
pollRequired: false