SubQuery入门开发 | 第一期:SubQuery简介与如何使用docker启动项目
Editor's Note
SubQuery入门开发必备。
The following article is from OneBlock Community Author 李俊伟
SubQuery 由 OnFinality 团队构建,允许用户在整个链中运行索引器来构建可通过 GraphQL 查询的数据集。该工具套件包括一个命令行界面,该命令行界面使项目可以生成自己的 SubQuery 项目,从而定义索引器应如何遍历和聚合自己的网络。
SubQuery 节点程序包将为网络建立索引并支持 GraphQL 查询。借助这些工具,任何人都可以轻松创建和运行查询。其目标是成为 Substrate / Polkadot 生态系统的核心基础架构。
OneBlock+ 与 SubQuery 在2021的最后一个月共同推出了「SubQuery 入门——轻松学会区块链数据索引开发」课程,已于2022年1月10日开课。通过课程 6 大模块的讲解,让你熟悉掌握如何将你的区块链项目建立 SubQuery 数据源从而进行链上数据索引,包括开发复杂的 SubQuery 项目和将其部署到 SubQuery 项目托管中。
以下是第一课的课程回顾:
本节课程内容
SubQuery 适用场景、优势及工作原理 入门 hello world 项目,并用 docker 启动项目
· 环境配置,安装 subql/ci 命令接口
· docker 运行 subql 节点,查询索引数据。
SubQuery适用的场景
SubQuery适用的场景
DApps 开发
条件查询/批量查询/跨区块高度查询
SubQuery的优势
解决 polkadot-js 单一查询无法使用条件的缺陷
过滤数据
提供关系数据库
数据转化,与新旧数据交互
组合条件及大批量数据查询
一站式数据存储和查询
SubQuery的优势
解决 polkadot-js 单一查询无法使用条件的缺陷
过滤数据
提供关系数据库
数据转化,与新旧数据交互
组合条件及大批量数据查询
一站式数据存储和查询
SubQuery的工作原理
用户项目中定义了需要储存的数据项、类型,以及如何处理这些数据
subql-node 在沙箱中运行用户项目,读取 substrate 链上数据之后,进行数据处理,处理完毕后写入到关系型数据库中
通过 subql-query 提供的 graphql 接口,查询和使用数据库中的数据
Quick Start
前置条件,需要首先安装这些组件:docker,docker-compose, node (npm/yarn), typescript
组件安装成功后,安装 subql 命令工具,并初始化项目,如下所示:
# NPM
npm install -g @subql/cli
# init project
subql init
# 安装项目依赖
yarn install
# 生成 types 文件
yarn codegen
# 构建
yarn build
# 运行服务
docker-compose up
常见问题
常见问题
Cannot find module '../types' or its corresponding type declarations.
没有运行 yarn codegen 生成 model 文件request to ... registry.npmjs.org/@subql@wfcli failed... first certificate
, 检查是否使用了代理,或者尝试npm config set registry http://registry.npmjs.org/ --global
github/polkadot 连接问题:尝试配置hosts,或者为 github/polkadot 配置代理
运行
docker-compose ...
报错***.py
, 检查是否首先启动了docker针对
docker-compose up
报错的情况,可以挨个启动服务,如先启动 postgres:docker-compose up potgres
, 再依次启动docker-compose up subquery-node
和docker-compose up graphql-engine
, 需要注意depends_on
中定义的服务间依赖关系subql init --starter
报错,新版本已去掉了--starter
选项
Docker 常用命令
docker ps 查看所有容器,
docker-compose ps
查看当前配置文件中的所有容器docker-compose up
启动所有服务,docker-compose up postgres
, 启动指定的服务(postgres)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
往期精彩
《SubQuery与OneBlock+共同打造首个区块链数据索引开发课!》
《SubQuery开发者指南丨了解有关GraphQL的更多信息》
《SubQuery开发者指南丨如何连接SubQuery的新项目》
《SubQuery开发者指南丨如何部署SubQuery项目新版本》
《SubQuery开发者指南丨在本地运行 SubQuery》
《SubQuery开发者指南丨GraphQL 架构(GraphQL Schema)》
《SubQuery开发者指南丨Hello World Explained》
《SubQuery开发者指南丨Hello World (由SubQuery 托管)》
《SubQuery开发者指南丨创建一个SubQuery项目》
《SubQuery开发者指南丨清单文件(Manifest File)》