1. 创建一个新项目
1. 创建一个新项目
此快速启动指南的目标是为您提供完整的开发设置和引导步骤来创建您的第一个 SubQuery 区块链项目。 它针对的是那些刚刚开始他们的 blockchain 旅程的有经验的开发者。
这个快速启动指南将需要 10-15 分钟左右。
完成这个快速启动指南后,您将有一个工作的 SubQuery 项目,运行在 SubQuery 节点上。 您将能够从您最喜欢的区块链网络(如 Polkadot、Avalanche、Cosmos 等)调整标准启动器项目和索引传输。
让我们开始创建您的第一个 SubQuery 区块链项目的过程。
前提条件
在开始使用 SubQuery 创建您的第一个区块链项目之前,请确保您已经安装了所需的支持软件应用程序。 分别是:
现在,您即将开始第一步,即安装 SubQuery CLI。
1. 安装 SubQuery CLI
使用 NPM 在终端上全局安装 SubQuery CLI:
# NPM
npm install -g @subql/cli
请注意,我们不鼓励使用yarn global
来安装@subql/cli
,因为它的依赖性管理不好,可能会导致下一步的错误。 这可能导致多个错误。 :::
查看所有可用的命令及其使用情况。 运行下面的 CLI 命令:
subql help
2. 初始化 Starter SubQuery 项目
在你想要创建 subquery 项目的目录中运行以下命令:
subql init
::: 警告
适合 Cosmos 用户
SubQuery 的 CLI 尚不支持 Cosmos(subql
)。 因此,如果你正在使用 Cosmos,你必须从 Juno 克隆开始或 fork 这个 起点项目。
要使用 Cosmos 初始化您的项目,请参考此 链接 中显示的这 4 个步骤。 一旦你完成这 4 个步骤,跳转到对你的项目进行修改部分。 :::
当你继续前进时,你会遇到一些问题:
- Project name: 您的 SubQuery 项目的项目名称。
- Network family: 此 SubQuery 项目将索引的图层 1 区块链网络类。 使用箭头键从可用选项中选择。 例如,Polkadot、Avalanche、Cosmos 或任何其他支持的网络。
- Network: 此 SubQuery 项目将索引的特定网络。 使用箭头键从可用选项中选择。 例如,Polkadot, Avalanche, 或任何其他支持的网络。
- Template project:选择一个 SubQuery 项目模板,它将为开始开发提供起始点. 我们建议选择 "subql-starter" 项目。
- RPC endpoint(必填):提供一个 wss URL 给一个正在运行的 RPC 端点,该端点将默认用于此项目。 您可以快速访问不同的 Polkadot 网络的公共端点,甚至可以使用 OnFinality 或仅使用默认的 Polkadot 端点创建您自己的专用节点。 此 RPC 节点必须是归档节点 (具有完整链状态)。 我们将使用本指南的默认值。 基于您选择的网络,默认值可以是:
- 对于 Polkadot - "https://polkadot.api.onfinality.io",
- 对于 Avalanche - "https://avalanche.apionfinality.io",
- 对于 Terra - “https://terra-columbus-5.beta.api.onfinality.io” 等于其他网络。
- Git repository(可选):提供指向此 SubQuery 项目的,并将在其中托管的存储库的 Git URL(当托管在 SubQuery Explorer 中时)
- Authors:在此输入此 SubQuery 项目的所有者(例如您的名字!)或接受所提供的默认值。
- Description:提供一个关于您项目的简短段落,描述项目包含哪些数据,用户可以做什么或接受提供的默认值。
- Version (必填):输入一个自定义版本号或使用默认版本(
1.0.0
). - License(必填):提供此项目的软件许可或接受默认设置(
Apache-
).
让我们看看一个例子:
$ subql init
Project name [subql-starter]: HelloWorld
? Select a network family Substrate
? Select a network Polkadot
? Select a template project subql-starter Starter project for subquery
RPC endpoint: [wss://polkadot.api.onfinality.io/public-ws]:
Git repository [https://github.com/subquery/subql-starter]:
Fetching network genesis hash... done
Author [Ian He & Jay Ji]: Sean
Description [This project can be used as a starting po...]:
Version [1.0.0]:
License [MIT]:
Preparing project... done
HelloWorld is ready
在初始化过程完成后,您应该看到目录内创建了一个项目名称的文件夹。 此目录的内容应该与 Directory Structure 中列出的内容完全相同。
最后,运行以下命令从新项目目录中安装新项目的依赖关系。
::: code-tabs @tab:active yarn shell cd PROJECT_NAME yarn install
@tab npm shell cd PROJECT_NAME npm install
:::
You have now initialised your first SubQuery project with just a few simple steps. Let’s now customise the standard template project for a specific blockchain of interest.
You may want to refer to the command line arguments used in SubQuery. It will help you understand the commands better.
3. Make Changes to Your Project
There are 3 important files that need to be modified. These are:
- The GraphQL Schema in
schema.graphql
. - The Project Manifest in
project.yaml
. - The Mapping functions in
src/mappings/
directory.
SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide.