Lưu trữ Dự án bằng IPFS

... 2022-8-10 Khoảng 4 phút

# Lưu trữ Dự án bằng IPFS

Hướng dẫn này hoạt động thông qua cách xuất bản dự án SubQuery cục bộ lên IPFS (opens new window) và triển khai nó trên cơ sở hạ tầng lưu trữ của chúng tôi.

Hosting a project in IPFS makes it available for all and reduces your reliance on centralised services like GitHub.

# Yêu cầu

  • @subql/cli phiên bản 0.21.0 trở lên.
  • Tệp kê khai specVersion 0.2.0 trở lên.
  • Chuẩn bị SUBQL_ACCESS_TOKEN của bạn đã sẵn sàng.
  • Để đảm bảo việc triển khai của bạn thành công, chúng tôi thật sự khuyến nghị bạn nên xây dựng dự án của mình bằng lệnh subql build, và kiểm tra cục bộ nó trước khi xuất bản.

# Chuẩn bị SUBQL_ACCESS_TOKEN của bạn

  • Bước 1: Truy cập Dự án SubQuery (opens new window) và đăng nhập.
  • Bước 2: Nhấp vào hồ sơ của bạn ở trên cùng bên phải của menu điều hướng, sau đó nhấp vào Refresh Token
  • Bước 3: Sao chép mã thông báo đã tạo.
  • Bước 4: Để sử dụng mã thông báo này:
    • Tùy chọn 1: Thêm SUBQL_ACCESS_TOKEN trong các biến môi trường của bạn. EXPORT SUBQL_ACCESS_TOKEN=<token>
    • Tùy chọn 2: Sắp có, subql/cli sẽ hỗ trợ lưu trữ cục bộ SUBQL_ACCESS_TOKEN của bạn.

# Làm thế nào để xuất bản một dự án

Chúng tôi cung cấp hai phương pháp để xuất bản dự án của bạn,

# Tùy chọn 1:

Khi bạn đã cài đặt @subql/cli, bạn có thể chạy lệnh sau, lệnh này sẽ đọc dự án và thông tin cần thiết từ tệp kê khai mặc định của nó project.yaml

// Xuất bản nó từ thư mục gốc dự án của bạn
subql publish

// HOẶC trỏ tới dự án gốc của bạn
subql publish -f ~/my-project/
1
2
3
4
5

# Tùy chọn 2:

Ngoài ra, giả sử dự án của bạn có nhiều tệp kê khai, ví dụ: bạn hỗ trợ nhiều mạng nhưng chia sẻ cùng một bản đồ và logic nghiệp vụ, đồng thời có cấu trúc dự án như sau:

L projectRoot
 L src/
 L package.json
 L polkadot.yaml (Manifest for Polkadot network)
 L kusama.yaml   (Manifest for Kusama network)
 ...
1
2
3
4
5
6

Bạn luôn có thể xuất bản dự án với tệp kê khai đã chọn của mình.

 # Lệnh này sẽ xuất bản hỗ trợ dự án lập chỉ mục mạng Polkadot
subql publish -f ~/my-projectRoot/polkadot.yaml
1
2

# Sau khi xuất bản

Sau khi xuất bản dự án thành công, nhật ký bên dưới cho biết rằng dự án đã được tạo trên cụm IPFS và đã trả về CID (mã định danh nội dung) của nó.

Building and packing code... done
Uploading SupQuery project to IPFS
SubQuery Project uploaded to IPFS: QmZ3q7YZSmhwBiot4PQCK3c7Z6HkteswN2Py58gkkZ8kNd  //CID
1
2
3

Hãy ghi chú CID này. Với CID này, bạn có thể xem dự án đã xuất bản của mình như cái mà chúng tôi gọi là Triển khai IPFS

# Triển khai IPFS

Triển khai IPFS thể hiện sự tồn tại độc lập và duy nhất của một dự án SubQuery trên một mạng phi tập trung. Do đó, bất kỳ thay đổi nào với mã trong dự án sẽ ảnh hưởng đến tính duy nhất của nó. Nếu bạn cần điều chỉnh logic kinh doanh của mình, ví dụ: thay đổi chức năng ánh xạ, bạn phải xuất bản lại dự án và CID sẽ thay đổi.

Hiện tại, để xem dự án bạn đã xuất bản, hãy sử dụng công cụ api REST như Postman (opens new window) và sử dụng phương thức POST với URL mẫu sau để lấy nó. https://ipfs.subquery.network/ipfs/api/v0/cat?arg=<YOUR_PROJECT_CID>

Bạn sẽ thấy mẫu triển khai dự án như bên dưới:

Việc triển khai này tương đồng với tệp kê khai của bạn. Bạn có thể hy vọng các trường mô tả đó, và điểm cuối mạng và từ điển đã bị gỡ bỏ vì chúng không ảnh hưởng trực tiếp đến kết quả thực hiện dự án.

Các tệp đó được sử dụng trong dự án cục bộ của bạn cũng đã được đóng gói và xuất bản lên IPFS.

dataSources:
  - kind: substrate/Runtime
    mapping:
      file: ipfs://QmTTJKrMVzCZqmRCd5xKHbKymtQQnHZierBMHLtHHGyjLy
      handlers:
        - handler: handleBlock
          kind: substrate/BlockHandler
        - filter:
            method: Deposit
            module: balances
          handler: handleEvent
          kind: substrate/EventHandler
        - handler: handleCall
          kind: substrate/CallHandler
    startBlock: 8973820
network:
  genesisHash: "0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3"
schema:
  file: ipfs://QmTP5BjtxETVqvU4MkRxmgf8NbceB17WtydS6oQeHBCyjz
specVersion: 0.2.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# Chạy dự án SubQuery của bạn trên Dịch vụ được lưu trữ

# Tạo dự án với IPFS deployment

Bạn có thể làm theo hướng dẫn để Xuất bản dự án SubQuery của mình nhưng nơi bạn đặt nguồn triển khai, bạn có thể chọn IPFS.

Sau đó, chọn vùng sản xuất của bạn, sao chép và dán CID IPFS triển khai của bạn (không có ipfs://).

Bạn sẽ thấy mình triển khai IPFS trong phần xem trước. Và bạn có thể chọn mạng, điểm cuối từ điển, v.v.

Sau khi triển khai thành công việc triển khai IPFS trên dịch vụ được lưu trữ của chúng tôi, nó sẽ có sẵn để xem trên SubQuery Explorer, bạn có thể truy cập dịch vụ truy vấn giống như bạn làm trên máy bạn.

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