SubQuery入门开发 | SubQuery简介与如何使用docker启动项目
SubQuery中文站
2022-01-23
热度33485

第一期: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 '../types' 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/3fHpWt
  • 第一课课程作业 https://wj.qq.com/s2/9324443/3746/
  • 助教分享会课件https://shimo.im/presentation/RKAWgd16EbIjJ8A8/ 
  • [Docker安装](https://docs.docker.com/get-docker/)
  • [docker-compose安装](https://docs.docker.com/compose/install/)
  • [node](https://nodejs.org/zh-cn/)
  • [yarn](https://yarnpkg.com/getting-started/install#nodejs-1610)
  • [typescript](https://www.typescriptlang.org/download)
  • [subquery](https://doc.subquery.network/)
  • [graphql](https://graphql.cn/)
  • [github加速](https://github.com/docmirror/dev-sidecar)

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

关于SubQuery


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

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

   Website:

   https://www.subquery.network/


   Discord中文群:

   https://discord.gg/ysdwnUSTQC


   Telegram中文群:

   t.me/subquerychina


   Mixin中文群:

  https://subquery.mixinbots.com/join



本内容旨在传递行业动态,不构成投资建议或承诺。
为你推荐

商务合作:TG:@Lottie96