In essence, the Graph is an infrastructure protocol whose purpose is to bring a new functionality, in this case - indexing,  to the existing blockchain ecosystem. As such, it follows the core principles of a typical blockchain system, but is also designed to perform some specialized functions. To achieve that, participants in The Graph’s network perform specialized tasks, specific to their roles in the network. There are three main types of network participants