Як почати з іншої висоти блоку?

SubQuery TeamМенше 1 хвилини

Як почати з іншої висоти блоку?

Відеоінструкція


Вступ

За замовчуванням усі стартові проекти починають синхронізувати блокчейн із блоку генезису. Іншими словами, з блоку 1. Для великих блокчейнів це зазвичай може зайняти дні або навіть тижні для повної синхронізації.

Щоб запустити синхронізацію вузла SubQuery з ненульової висоти, необхідно лише змінити ваш project.yaml файл, встановивши відповідне значення ключа startBlock.

Нижче навдено приклад файлу project.yaml, де початковий блок був встановлений на 1000000

specVersion: 0.0.1
description: ""
repository: ""
schema: ./schema.graphql
network:
  endpoint: wss://polkadot.api.onfinality.io/public-ws
  dictionary: https://api.subquery.network/sq/subquery/dictionary-polkadot
dataSources:
  - name: main
    kind: substrate/Runtime
    startBlock: 1000000
    mapping:
      handlers:
        - handler: handleBlock
          kind: substrate/BlockHandler

Чому б не почати з нуля?

Основна причина в тому, що це може зменшити час для синхронізації блокчейну. Це означає, що якщо вам потрібні дані по транзакціям лише за останні 3 місяці, ви можете синхронізувати тільки останні 3 місяці, що займе менше часу і Ви зможете швидше присутпити до роботи.

Які недоліки при початку з нуля?

Найбільш очевидним недоліком буде те, що ви не зможете робити запити в блокчейні щодо блоків, яких у вас немає.

Як визначити поточну висоту блокчейну?

Якщо ви використовуєте мережу Polkadot, ви можете відвідати https://polkascan.io/open in new window, обрати мережу, а потім переглянути значення "Finalised Block".

Чи повинен я виконувати команди rebuild або codegen?

Ні. Оскільки ви змінюєте файл project.yaml, який, по суті, є файлом конфігурації, вам не доведеться перебудовувати або відновлювати код typescript.