1. Tạo một Dự án Mới

... 2022-8-5 Khoảng 5 phút

# 1. Tạo một Dự án Mới

Mục tiêu của hướng dẫn nhanh này là cung cấp cho bạn thiết lập phát triển hoàn chỉnh và hướng dẫn các bước để tạo dự án blockchain SubQuery đầu tiên của bạn. Nó được nhắm mục tiêu đến các nhà phát triển có kinh nghiệm và cho cả những người mới bắt đầu hành trình blockchain của họ.

Hướng dẫn nhanh này sẽ mất khoảng 10-15 phút.

Sau khi hoàn thành hướng dẫn nhanh này, bạn sẽ có một dự án SubQuery hoạt động sẽ chạy trên một nút SubQuery. Bạn sẽ có thể điều chỉnh dự án khởi đầu và chuyển chỉ mục tới mạng blockchain yêu thích của bạn như Polkadot, Avalanch, Cosmos, v. v.

Hãy bắt đầu quá trình tạo ra dự án blockchain SubQuery đầu tiên của bạn.

# Điều kiện tiên quyết

Trước khi bạn bắt đầu tạo dự án blockchain đầu tiên với SubQuery, hãy đảm bảo rằng bạn đã cài đặt các ứng dụng phần mềm hỗ trợ cần thiết. Đó là:

Bây giờ, bạn đã sẵn sàng để bắt đầu với bước đầu tiên, đó là cài đặt SubQuery CLI.

# 1. Cài đặt CLI SubQuery

Cài đặt SubQuery CLI tổng thể trên terminal của bạn bằng cách sử dụng NPM:

# NPM
npm install -g @subql/cli
1
2

Lưu ý: Chúng tôi KHÔNG khuyến khích sử dụng yarn global để cài đặt @subql/cli do quản lý phụ thuộc kém. Nó có thể dẫn đến nhiều lỗi.

Hãy xem tất cả các lệnh có sẵn và việc sử dụng chúng. Chạy lệnh dưới đây trong CLI:

subql help
1

# 2. Khởi tạo Dự án khởi đầu SubQuery

Chạy lệnh sau bên trong thư mục bạn muốn tạo dự án SubQuery:

subql init
1

::: cảnh báo Dành cho người dùng Cosmos

Cosmos hiện chưa được hỗ trợ trong CLI của SubQuery (subql). Do đó, nếu bạn sử dụng Cosmos, bạn phải bắt đầu với một bản sao Juno hoặc fork starter project (opens new window) này.

Để khởi tạo dự án của bạn với Cosmos, hãy tham khảo 4 bước được hiển thị trong link. (opens new window) này. Sau khi bạn hoàn thành 4 bước này, nhảy đến phần Thực hiện các thay đổi trên Dự án của bạn. :::

Bạn sẽ được hỏi một số câu hỏi nhất định khi tiếp tục:

  • Project name: tên của dự án SubQuery
  • Network family: Nhóm mạng blockchain layer-1 mà dự án SubQuery này sẽ lập chỉ mục. Sử dụng các phím mũi tên để chọn từ các tùy chọn có sẵn. Ví dụ: Polkadot, Avalanche, Cosmos, hoặc bất kỳ mạng được hỗ trợ nào khác.
  • Network: Mạng cụ thể mà dự án SubQuery này sẽ lập chỉ mục. Sử dụng các phím mũi tên để chọn từ các tùy chọn có sẵn. Ví dụ: Polkadot, Avalanche, hoặc bất kỳ mạng được hỗ trợ nào khác.
  • Template project: Chọn một dự án mẫu SubQuery sẽ cung cấp một điểm khởi đầu để bắt đầu phát triển. Chúng tôi khuyên bạn nên chọn dự án "subql-starter".
  • RPC endpoint: Cung cấp HTTPS URL cho RPC endpoint đang chạy, sẽ được sử dụng mặc định cho dự án này. Bạn có thể nhanh chóng truy cập các điểm cuối công khai cho các mạng khác nhau, tạo node chuyên dụng riêng của mình bằng cách sử dụng OnFinality (opens new window) hoặc chỉ sử dụng điểm cuối mặc định. Nút RPC này phải là một nút lưu trữ (có trạng thái chuỗi đầy đủ). Chúng tôi sẽ sử dụng giá trị mặc định cho hướng dẫn này. Dựa trên mạng bạn đã chọn, giá trị mặc định có thể là:
    • Đối với Polkadot - "https://polkadot.api.onfinality.io"
    • Đối với Avalanche - "https://avalanche.api.onfinality.io"
    • Đối với Terra - “https://terra-columbus-5.beta.api.onfinality.io” và tương tự với các mạng khác.
  • Git repository: Cung cấp Git URL cho repo mà dự án SubQuery này sẽ được lưu trữ (khi được lưu trữ trong SubQuery Explorer) hoặc chấp nhận giá trị mặc định được cung cấp.
  • Authors: Nhập chủ sở hữu của dự án SubQuery này tại đây (ví dụ: tên của bạn!) Hoặc chấp nhận giá trị mặc định đã cung cấp.
  • Description: Cung cấp một đoạn giới thiệu ngắn về dự án của bạn, mô tả dự án chứa dữ liệu gì và người dùng có thể làm gì với dự án đó hoặc chấp nhận giá trị mặc định đã cung cấp.
  • Version: Nhập số phiên bản tùy chỉnh hoặc sử dụng mặc định (1.0.0)
  • License: Cung cấp giấy phép phần mềm cho dự án này hoặc chấp nhận giấy phép mặc định (MIT)

Hãy xem xét ví dụ sau đây:

$ 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14

Sau khi quá trình khởi tạo hoàn tất, bạn sẽ thấy một thư mục có tên dự án của bạn đã được tạo bên trong thư mục. Xin lưu ý rằng nội dung của thư mục này phải giống hệt với nội dung được liệt kê trong Cấu trúc thư mục.

Cuối cùng, chạy lệnh sau để cài đặt các phụ thuộc từ bên trong thư mục của dự án mới.

Bây giờ bạn đã khởi tạo dự án SubQuery đầu tiên của mình chỉ với một vài bước đơn giản. Bây giờ chúng ta hãy tùy chỉnh dự án mẫu chuẩn cho một chuỗi khối cụ thể mà bạn quan tâm.

Bạn có thể muốn tham khảo đối số dòng lệnh được sử dụng trong SubQuery. Nó sẽ giúp bạn hiểu rõ hơn về các lệnh.

# 3. Thực hiện các thay đổi trên Dự án của bạn

Có 3 tệp quan trọng cần được sửa đổi. Đó là:

  1. Lược đồ GraphQL trong schema.graphql
  2. Tệp Kê khai dự án ở project.yaml
  3. Các chức năng ánh xạ trong thư mục src/mappings/

SubQuery hỗ trợ các mạng blockchain khác nhau và cung cấp cho bạn hướng dẫn riêng cho từng mạng.

Lựa chọn mạng ưa thích của bạn và tiếp tục để thực hiện các sửa đổi cần thiết và tiến gần hơn một chút để hoàn thành dự án đầu tiên của bạn:

Polkadot/Substrate

Avalanche

Cosmos

Terra

Cập nhật gần nhất lúc: August 5, 2022 10:08