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/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构