SubQuery入门开发 | 第一期:SubQuery简介与如何使用docker启动项目

SubQuery 由 OnFinality 团队构建,允许用户在整个链中运行索引器来构建可通过 GraphQL 查询的数据集。该工具套件包括一个命令行界面,该命令行界面使项目可以生成自己的 SubQuery 项目,从而定义索引器应如何遍历和聚合自己的网络。

SubQuery 节点程序包将为网络建立索引并支持 GraphQL 查询。借助这些工具,任何人都可以轻松创建和运行查询。其目标是成为 Substrate / Polkadot 生态系统的核心基础架构。

OneBlock+ 与 SubQuery 在2021的最后一个月共同推出了「SubQuery 入门——轻松学会区块链数据索引开发」课程,已于2022年1月10日开课。通过课程 6 大模块的讲解,让你熟悉掌握如何将你的区块链项目建立 SubQuery 数据源从而进行链上数据索引,包括开发复杂的 SubQuery 项目和将其部署到 SubQuery 项目托管中。

以下是第一课的课程回顾:

本节课程内容

  1. SubQuery 适用场景、优势及工作原理

  2. 入门 hello world 项目,并用 docker 启动项目

· 环境配置,安装 subql/ci 命令接口

· docker 运行 subql 节点,查询索引数据。

SubQuery适用的场景

  1. DApps 开发

  2. 条件查询/批量查询/跨区块高度查询

SubQuery的优势

  1. 解决 polkadot-js 单一查询无法使用条件的缺陷

  2. 过滤数据

  3. 提供关系数据库

  4. 数据转化,与新旧数据交互

  5. 组合条件及大批量数据查询

  6. 一站式数据存储和查询

SubQuery的工作原理

  1. 用户项目中定义了需要储存的数据项、类型,以及如何处理这些数据

  2. subql-node 在沙箱中运行用户项目,读取 substrate 链上数据之后,进行数据处理,处理完毕后写入到关系型数据库中

  3. 通过 subql-query 提供的 graphql 接口,查询和使用数据库中的数据

Quick Start

  1. 前置条件,需要首先安装这些组件:docker,docker-compose, node (npm/yarn), typescript

  2. 组件安装成功后,安装 subql 命令工具,并初始化项目,如下所示:

# NPMnpm install -g @subql/cli# init projectsubql init# 安装项目依赖yarn install# 生成 types 文件yarn codegen# 构建yarn build# 运行服务docker-compose up

常见问题

  1. Cannot find module or its corresponding type declarations.没有运行 yarn codegen 生成 model 文件

  2. request to ... registry.npmjs.org/@subql@wfcli failed... first certificate , 检查是否使用了代理,或者尝试 npm config set registry http://registry.npmjs.org/ --global

  3. github/polkadot 连接问题:尝试配置hosts,或者为 github/polkadot 配置代理

  4. 运行docker-compose ... 报错  ***.py , 检查是否首先启动了docker

  5. 针对 docker-compose up 报错的情况,可以挨个启动服务,如先启动 postgres:  docker-compose up potgres , 再依次启动 docker-compose up subquery-node  和 docker-compose up graphql-engine, 需要注意  depends_on 中定义的服务间依赖关系

  6. subql init --starter 报错,新版本已去掉了--starter 选项

Docker 常用命令

  1. docker ps 查看所有容器,docker-compose ps 查看当前配置文件中的所有容器

  2. docker-compose up启动所有服务,docker-compose up postgres , 启动指定的服务(postgres)

  3. docker-compose down停止所有服务,docker stop/rm {container_name} 停止/删除某个容器

相关资料

助教分享会回放:https://jhp.h5.xeknow.com/s/1PB6u2

关于SubQuery

SubQuery是Polkadot的领先数据提供商,支持在Layer_1区块链(Polkadot)和去中心化应用程序之间建立索引和查询层。SubQuery的数据服务目前在大多数Polkadot,Kusama crowdloan和平行链拍卖网站使用。

SubQuery 的协定是通过 SubQuery SDK 提取出区块链数据的特性,允许开发人员专注于部署其核心产品,而无需在定制后端技术上浪费精力。

本文来源:陀螺科技 文章作者:SubQuery中文站
收藏
举报
SubQuery中文站
累计发布内容80篇 累计总热度10万+

陀螺科技现已开放专栏入驻,详情请见入驻指南: https://www.tuoluo.cn/article/detail-27547.html

SubQuery中文站专栏: https://www.tuoluo.cn/columns/author1831815/

本文网址: https://www.tuoluo.cn/article/detail-10094047.html

免责声明:
1、本文版权归原作者所有,仅代表作者本人观点,不代表陀螺科技观点或立场。
2、如发现文章、图片等侵权行为,侵权责任将由作者本人承担。

相关文章