GraphQL语言与去中心化区块链数据索引协议The Graph

GraphQL查询语言

“更好的REST,一种为API接口而生的查询语言。”

 

自己的搬砖项目需要通过SubGraph去获取DEX价格数据(监控各个流动性池,各个资产swap对的数据),而GraphQL就是调用SubGraph的查询语言。

客户端(直接用http客户端或者封装的sdk、比如apollo)通过graphQL查询服务端(区中心化的The Graph或者nodereal中心化relay),后者监听链上数据和事件形成数据服务。

 

学习资源:

https://graphql.devjs.cn/

 

区块链数据检索的困境

由于区块链数据存储的特殊性,做不到关系型数据库那样高效直观的进行查询,要直接对链上数据进行索引查询分析是比较困难的。关于这一点,举例来说,中心化交易所中,查询某一个资产价格只需要调用对应的交易所提供的rest api即可,而对于像uniswap、pancakeswap这类去中心化交易所来说,查询会变得有难度,参考 https://blog.windisco.com/calculate-history-price-of-token-according-to-dex-trades/ ,需要捕捉token0、token1兑换的event,搞清楚token0\token1对应的地址以识别它们对应的是哪种资产,将上述event整理成交易信息,分不同兑换池和兑换路径、根据算法计算出资产价格。

所以会有一些Relay来提供上述数据服务,免去用户都自己进行技术开发来计算,但中心化Relay可能会存在可信问题,于是有了去中心化的网络节点共同提供上述数据服务,也就是The Graph这样的协议的实现思路。

 

The Graph去中心化区块链数据索引

https://blog.windisco.com/calculate-history-price-of-token-according-to-dex-trades/

 

posted on 2024-08-15 17:23  肥兔子爱豆畜子  阅读(20)  评论(0编辑  收藏  举报

导航