查看原文
其他

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 项目托管中。

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


本节课程内容

  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


往期精彩


SubQuery与OneBlock+共同打造首个区块链数据索引开发课!》


《SubQuery开发者指南丨如何更改区块链批处理大小?


SubQuery开发者指南丨如何从不同的区块高度开始》


SubQuery开发者指南丨教程 & 案例


SubQuery开发者指南丨了解有关GraphQL的更多信息


《SubQuery开发者指南丨如何连接SubQuery的新项目》


《SubQuery开发者指南丨如何部署SubQuery项目新版本》


SubQuery开发者指南丨发布SubQuery项目


《SubQuery开发者指南丨在本地运行 SubQuery》


《SubQuery开发者指南丨映射(Mapping)》


《SubQuery开发者指南丨GraphQL 架构(GraphQL Schema)》


《SubQuery丨开发者快速入门指南》


《SubQuery丨Hello world 入门简介》


《SubQuery开发者指南丨Hello World Explained》


《SubQuery开发者指南丨Hello World (由SubQuery 托管)》


《SubQuery 开发者指南丨安装 SubQuery》


《SubQuery开发者指南丨创建一个SubQuery项目》


《SubQuery开发者指南丨清单文件(Manifest File)》


《SubQuery开发者指南丨Sandbox》



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存