Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement indexing layer #133

Open
bgits opened this issue Jun 1, 2020 · 0 comments
Open

Implement indexing layer #133

bgits opened this issue Jun 1, 2020 · 0 comments

Comments

@bgits
Copy link

bgits commented Jun 1, 2020

Currently all data is read from a node/node service (infura) using the JSON-RPC for ethereum data and IPFS for file storage.

A client may need to request and process more data than is necessary for a use case. This leads to more bandwidth consumption, longer load times and likely more battery consumption from data processing.

In the case of the JSON-RPC, there is also a lack of error codes so instead of a client receiving an error and handling appropriately it may receive malformed data and assume it to be correct.

An indexing layer can allow us to sidestep these issue by having the client construct efficient queries against it.

What is being described is effectively the REST or graphQL API clients interact with in standard client server applications.

Simply building a service would not be sufficient as it lacks decentralization so a protocol to incentivize data integrity and quality of service needs to be designed and implemented as well.

While the general API is relatively straight forward in that the playbook for designing and building time tested services exists the same can not be said for the protocol layer.

Currently I see three paths to implementation.

  1. The Graph Has already created an indexing service with a roadmap to have a fully incentivized protocol. I'm not aware of any other attempt at this currently.

  2. Fork graph-node and implement our own incentive layer around that.

  3. Create our own indexer and incentive layer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant