paint-brush
Here's How and Why We're Building A Decentralized Caching Layer on Ethereumby@outforaditya
545 reads
545 reads

Here's How and Why We're Building A Decentralized Caching Layer on Ethereum

by Aditya SinghNovember 15th, 2020
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

The Graph project is building a decentralized data network to enable fast access to Ethereum and IPFS data for Dapps. The Graph network is a network of Graph nodes responsible for extracting and indexing data from the Etherum network. There are multiple actors in the Graph network that are incentivized to keep the network secure and provide continuous and efficient data services. Curators deposit GRT tokens into a bonding curve to signal on a specific subgraph, and earn a portion of query fees for their services. This helps Dapp builders build completely decentralized applications without depending on centralized servers.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coins Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Here's How and Why We're Building A Decentralized Caching Layer on Ethereum
Aditya Singh HackerNoon profile picture

The Graph project is building a decentralized data network to enable fast access to Ethereum and IPFS data for Dapps.

Problem

Blockchains are not efficient for real-time data extraction. Today, Decentralized applications (Dapps) such as Cryptokitties use centralized servers for multiple reasons, such as enabling third-party APIs or providing better UX to their users. This is problematic if you want to build a completely decentralized application.

Solution

The Graph provides a decentralized network where developers can index smart contract data for fast and efficient usage. Therefore, The Graph network works as a caching layer on the Ethereum network and eliminates the need for centralized servers used by Dapps.

How The Graph Works?

Let’s understand The Graph network and its different parts.

The Graph network is a network of Graph nodes. These Graph nodes are responsible for extracting and indexing data from the Etherum network.

So a developer create a subgraph. A Subgraph is a program that tells what data needs to be extracted and indexed, and exposed as APIs. After that, the Developer submits that subgraph to the Graph network, and one or more Graph nodes process that Subgraph and index the data mentioned in it. When the subgraph is deployed, you will get an endpoint that is used to access data through APIs.

The Graph Network Tokenomics (GRT)

There are multiple actors in the Graph network that are incentivized to keep the network secure and provide continuous and efficient data services. Let’s check them one by one.

Indexers (Earn GRT)

Indexers run Graph node to process and index data. They stake GRT token to provide indexing and processing services. Indexers earn query fees and indexer rewards for their services.

Curators (Earn GRT)

Curators are subgraph developers, data consumers, or community members who tell Indexers which APIs should be indexed by The Graph Network. Curators deposit GRT tokens into a bonding curve to signal on a specific subgraph. They will earn a portion of query fees for the subgraphs they signal on, incentivizing the highest quality data sources.

Curators will curate subgraphs and deposit GRT via the Graph Explorer dApp. Because this occurs on a bonding curve, that means that the earlier you signal on a subgraph, the greater share of the query fees you earn on that subgraph for a given amount of GRT deposited. This also means that when you go to withdraw, you could end up with more or less GRT than you started with.

Delegators (Earn GRT)

Delegators do not run Graph nodes; instead, delegate their GRT to indexers to earn a portion of the query fee and secure the network.

Delegators can select Indexers based on their performance on measures like query fee rates, past slashing, uptime, etc.

Consumers (Pay GRT)

Consumers are end-users who are querying subgraphs and pay query fee. Mostly developers or projects will be the consumer for using The Graph network to access the data. However, some projects might pass query fees to end-users or bundle it with the product fee.


The Graph Advantages

The Graph network has many advantages. Let’s see some of them.

Decentralized infrastructure

The Graph is a decentralized network; therefore, it has properties such as open, permissionless, censorship-resistant, etc. This helps Dapp builders because now they can build completely decentralized applications without depending on centralized servers for processing large volumes of data.

Create your Own APIs

You can create your own APIs by creating a subgraph and deploying it on the Graph network. This provides the highest degree of freedom to developers looking for on-chain data on Ethereum and IPFS.

Real-Time Data

The Graph network provides real-time data for the simple data type, such as transactions, blocks, etc. However, when it comes to more complex data, the performance of the network degrades.

Free to use for now

The Graph team still in the process of enabling the GRT token on the Graph network; till that time, The Graph APIs are free to use without any limitation.

Community

The Graph is a highly embraced project in the Ethereum community, and many Dapps and DeFi projects use it in production. There are many Subgraphs built by the community, which you can explorer here.

The Graph Disadvantages

Performace problems — No SLA or customer Support

Projects using The Graph APIs complain about frequent network shutdown and bad user experience. This impacts the performance of Dapp using The Graph network.

The Graph is a decentralized network, not a company. The problem with this is no one can guarantee your performance. There are no SLA or customer support.

Data accuracy problems

In the Graph network, data accuracy is verified by Curators on the Graph network. Few projects mentioned that sometimes APIs do not provide complete data and send incomplete information. This might be problematic if you want a high level of data accuracy.

Only Ethereum and IPFS

The Graph only supports Ethereum and IPFS. If you need data for other blockchains, you can’t get it.

No Market data

The Graph network only provides on-chain data. There are no pricing data. This might be problematic if you are looking want assets price coupled with on-chain data.

Need coding knowledge

You should have coding knowledge to create a subgraph according to your data needs and deploy it on the Graph network.

No Fiat pricing

For using The Graph network APIs, you need to pay in GRT token. This GRT token will be traded on multiple exchanges, and its price will change dynamically based on market conditions. It means API pricing will be affected by GRT token price fluctuation. This is problematic for businesses budgeting their technical expenses. Besides, there might be accounting related problems for businesses that only deal in fiat.

Conclusion

The Graph project is still in the early-stage, and it will take time to mature. However, I think it’s an excellent approach to solve Dapp related data problems. Many actors are involved in the Graph network, who should work efficiently to provide optimum performance. Besides, payments are also made using state channels, which is also relatively new technology and not been tested at scale. However, I am hopeful that The Graph will solve some crucial problems in the Dapp space. You can learn more about The Graph network here.