Introducing The Graph
We received so many replies from projects and individuals who were eager to use the protocol and get involved. Thank you to all who reached out. We’re thrilled to be part of the crypto community and decentralization movement. I want to take a moment to share a bit about why we’re working on The Graph and why it’s so important for us. I’m also going to share some details about our roadmap and what’s next for the community.
After nearly three decades of saturating the globe, the web has become a ubiquitous overlay for communication. In our information age, the ways in which people store, find, manage, and share information directly defines the structure of society and each individual’s experience in life. The web of today has a client-server architecture which confers tremendous power onto whoever runs the server. A server administrator has unilateral power to set the rules, grant and revoke access, and control the data, often without users having a say or being aware. Information is asymmetric and causes an imbalance of power.
This structure favors centralization. It’s the reason there are now just a handful of companies running much of the world’s software. In a centralized world individuals have less agency and ability to impact how things function. People become passive observers in a world they cannot change and do not have a stake in. Monopolies make it harder for individuals to contribute their talents. People are given all or nothing deals, competition is stifled, and freedom of choice disappears.
The good news is that we may have reached peak centralization and the pendulum is starting to swing the other way. The sudden rise of cryptocurrencies and associated protocols has created a unique opportunity that we can harness to shift the balance of power away from monopolies and towards the sovereignty of individuals.
Web3 Protocol Stack
Web3 is the platform that will enable decentralization on a mass scale. It’s too early to tell what protocols will end up comprising web3 but we believe that some set of protocols will enable a new wave of decentralized experiences to flourish and replace how software is built and deployed globally.
Decentralized applications (dApps) put users in control of their data. dApps are built using data that is either owned and managed by the community or is private and controlled by the user. This way many products and services can be built on pluggable datasets and users can freely switch between dApps. This will empower millions of developers to thrive individually or in small teams and give users choice and control over how things work.
Blockchains like Ethereum and storage networks like IPFS/Filecoin will be central to this new protocol stack. Anyone can run an Ethereum or IPFS node to validate the underlying data. Today blockchains are slow and expensive but there’s reason to believe that performance and cost can improve by orders of magnitude through novel consensus algorithms, sharding, layer 2, and other solutions that teams around the world are working on.
While blockchains and storage networks are critical components of the stack, data is rarely stored in a format that can be consumed directly in applications. Applications need to filter, sort, paginate, group, and join data before it can be fetched. Users don’t like looking at spinners and waiting for screens to load. If web3 is going to catch on we need to provide experiences that are as good or better than centralized alternatives.
Today teams are getting around this gap in functionality by building centralized indexing servers. These servers pull data from Ethereum, store it in a database, and expose it over an API. This is brittle as users need to trust these teams to continue to operate these servers correctly. The projects could go out of business, modify the data for strategic reasons, get acquired, or simply make mistakes. Suddenly we’re not far from where we started with web2.
This is why we’re creating The Graph, a decentralized query protocol for getting data off blockchains and storage networks. By using The Graph, developers can query a peer-to-peer network of indexing nodes using GraphQL and verify the results on the client. This will allow teams to focus on their dApps’ core functionality. They’ll be able to deploy to trustworthy public infrastructure they don’t have to manage and benefit from economies of scale.
If the point of web3 is to create a more dependable foundation for software, The Graph lifts this stability up one level to where any developer can reliably find and consume organized data directly into their dApps.
My cofounders — Jannis Pohlmann, Brandon Ramirez, and I previously worked together on several startups. Over the course of these endeavors we spent considerable time thinking about how to build software faster. We built frameworks, developer tools, and infrastructure to make application development more productive.
When we started diving into Ethereum in early 2017 it was apparent that the tooling and lack of mature protocols made it difficult to build dApps. The idea of making open data more accessible became an obsession of ours and The Graph was born.
We built the first prototype in late 2017. We spent months iterating on the design over whiteboard sessions, prototyping, and conversations with developers. We wanted to find a productive developer experience for writing indexing logic that could be securely operated on a decentralized network. A few months ago we became comfortable with the design and began work on the production implementation that we are now writing in Rust.
In crypto we know that designing the right incentives is critical. We believe that communicating dates produces the wrong incentives. What really matters on a long timescale is 1) priorities and 2) velocity.
Priorities includes the vision, roadmap, and backlog. Velocity is how many features and enhancements a team ships per unit time. A team that has the right priorities and high velocity is going to deliver. That’s why at The Graph we’re going to communicate priorities and velocity instead of dates.
Here’s our development roadmap with key milestones:
- Open source — The first version of the software is a standalone indexer for Ethereum and IPFS. The node subscribes to events in Ethereum, executes user provided scripts to transform the data, indexes that data, and makes it available over GraphQL. The scripts run on WASM so processing the data is fast and results are deterministic. This release will establish the developer API for building on The Graph and will solve many problems that teams currently have to solve themselves like handling block reorgs and push updates.
- Hosted service — Projects will be able to run their own nodes but we want to provide a hosted service to make it easier for teams to build on The Graph. We’ll run this service at a loss to support projects and kickstart our community.
- Whitepaper — We wrote an early version of our whitepaper in March but we’ve improved the design since then. After launch, we plan to publish a more detailed whitepaper with all the recent updates.
- Decentralized network — The decentralized network will allow anyone to run a node to contribute indexing, caching, validation, and query processing to the network. An efficient marketplace will be setup so that nodes can earn fees for their services and projects can have a low cost, dependable, decentralized indexing solution.
Source + https://medium.com/graphprotocol/introducing-the-graph-4a281b28203e