为什么要在以太坊上构建去中心化缓存层?到底要怎样做呢?
The Graph项目旨在通过构建去中心化的数据网络以实现Dapp对以太坊和IPFS数据的快速访问。
问题出在哪里?
区块链对于实时数据提取的效率并不高。目前,像Cryptokitties这样的去中心化应用(Dapps)却仍在使用中心化服务器,其背后隐藏的原因有很多,比如要启用第三方API,或想要为用户提供更好的用户体验等。但是当我们想要构建一个完全去中心化的应用程序时,这就成了不得不面对的大问题。
解决方案
The Graph提供了一个去中心化的网络,开发人员可以借助此网络对智能合约数据进行索引,快速且有效地使用数据 。因此,The Graph网络作为 以太坊 网络上的缓存层,消除了Dapp使用中心化服务器的需求。
The Graph的运作原理
下面,我们一起来深入了解一下The Graph网络及其各个组成部分。
The Graph网络是由Graph节点组成的网络 。这些Graph节点可以从以太坊网络中提取和索引数据。
首先,开发人员会创建子图——它可以告诉我们需要提取和索引哪些数据,并以API的形式公开。然后,开发人员将该子图提交给Graph网络,由一个或多个Graph节点对该子图进行处理,并对其中提到的数据进行索引。在子图部署完成后,我们会将获得一个端点,用于通过API访问数据。
The Graph Network Tokenomics (GRT)
Graph网络通过激励多方参与者共同维护网络安全,并提供持续且高效的数据服务。下面来逐一认识一下吧:
索引器Indexer(赚取GRT)
索引器运行Graph节点来处理并索引数据。质押GRT代币,提供索引和处理服务,并赚取查询费用和索引奖励。
策展人Curator(赚取GRT)
策展人通常是子图开发人员、数据消费者或社区成员,他们为索引器指明哪些API需要被索引。策展人将GRT代币质押到联合曲线中,对特定子图创建策展信号。策展人将从其标记信号的子图中赚取查询费用,实现激励高质量数据源的目的。
策展人通过一个称为Graph Explorer的去中心化应用来质押GRT,并为子图创建策展信号。由于其遵循联合曲线规律,因此策展信号创建得越早,(对于一定的GRT存入量而言)在该子图上赚取的查询费用的份额就越大。因此,当你去取款时会发现,最终获得的GRT数,与开始时相比,可能会有所增加或减少。
委托人Delegators (赚取GRT)
委托人并不运行Graph节点,而是将自己的GRT委托给索引器,以赚取部分查询费用,保障网络安全。
委托人可以根据索引器的查询费率、过往表现、正常运行时间等指标来选择索引器。
消费者Consumers(支付GRT)
消费者是查询子图并支付查询费用的终端用户。大多数开发人员或项目都会是使用The Graph网络访问数据的消费者。但是,有些项目可能会将查询费用转嫁给最终用户,或者将查询费用与产品费用捆绑在一起。
The Graph优势
The Graph网络的优势非常多,我们先挑几点比较重要的进行介绍:
去中心化基础设施
作为去中心化网络,The Graph具有开放性、无需许可性、耐审查性等特性。这对Dapp构建者而言非常有利,因为他们不再依赖集中式服务器来处理大量数据,可以构建出完全去中心化的应用程序。
创建你自己的API
我们可以通过创建子图并将其部署到Graph网络来创建自己的API。这为开发人员在以太坊和IPFS上寻找链上数据提供了最高程度的自由。
实时数据
The Graph网络能够为简单数据类型(如交易、区块等等)提供实时数据。然而,当涉及到更复杂的数据时,网络的性能则会有所下降。
目前可免费使用
The Graph团队尚未在Graph网络上启用GRT代币,在此之前,Graph API可供大家免费使用,没有任何限制。
社区基础
Graph在以太坊社区中是一个备受大家欢迎的项目,许多Dapp和DeFi项目都在自己的生产环境中使用了它。社区创建的子图很多,大家可以点击下方链接深入了解。
(链接地址:https://thegraph.com/explorer/?ref=hackernoon.com)
The Graph劣势
性能问题——没有SLA或客户支持
有多个使用Graph API的项目曾反映其存在频繁的网络关闭问题,用户体验并不理想。该问题会直接影响使用The Graph网络的Dapp的性能。
The Graph是一个去中心化的网络,而不是一家公司。问题在于没人能为其性能表现做担保。没有SLA或客户支持。
数据准确性问题
在The Graph网络中,数据的准确性由The Graph网络上的策展人进行验证。少数项目反映,有时API会提供不完整数据、发送不完整信息。如果你的项目对数据准确性有较高要求的话,就需要重点关注这个问题。
仅支持以太坊和IPFS
The Graph仅支持以太坊和IPFS,因此,我们没有办法获得其他区块链上的数据。
无市场数据
The Graph网络只提供链上数据,没有定价数据。如果你的项目需要将资产价格和链上数据进行结合的话,就要慎重考虑一下了。
需具备编码知识
使用者需要具备一定的编码知识,以便根据数据需求来创建子图,并将其部署到Graph网络上。
无法币价格
使用Graph 网络API需要支付GRT代币。该GRT代币可以在多个交易所进行交易,其价格也会根据市场情况发生动态变化。因此,API的定价将受GRT代币价格波动的影响。这样一来,企业将很难制定技术费用预算。对于只进行法币交易的企业来说,就需要处理额外的会计相关问题。
总结
目前,The Graph项目尚仍处于早期阶段,需要一段时间来发展成熟。不过,我仍坚定地相信它会成为解决Dapp相关数据问题的绝佳方法。The Graph网络涉及的参与者众多,只有大家都高效地完成各自的工作,才能提供最佳的整体性能。此外,支付是通过状态通道(state channel)进行的,这也是一种相对较新的技术,还没有经过大规模测试。然而,我相信The Graph将来一定可以解决Dapp领域的一些关键问题。大家可以点击下方链接了解更多有关The Graph网络的信息。