Флаги командной строки

... 2022-9-24 Приблизительно 4 минут

# Флаги командной строки

# subql (cli)

# - помощь

> subql --help

КОМАНДЫ
  build Построить код проекта SubQuery
  codegen Генерировать схемы для узла графа
  help Вывести справку для subql
  init Инициализировать проект Subquery на основе эшафота
  migrate Мигрировать манифест проекта Subquery с v0.0.1 на v0.2.0
  publish Загрузите этот проект Subquery в IPFS
  validate Проверить папку или репозиторий github на наличие проекта Subquery validate
1
2
3
4
5
6
7
8
9
10

# создать

Эта команда использует webpack для генерации пакета проекта subquery.

Параметры Описание
-l, --location локальная папка проекта subquery (если ее еще нет в папке)
-o, --output указать выходную папку сборки, например, build-folder
--mode=(production prod
  • В subql build вы можете указать дополнительные точки входа в поле exports, хотя он всегда будет строить index.ts автоматически.

  • Для использования поля exports необходимо иметь @subql/cli версии 0.19.0 или выше.

  • Любое поле exports должно соответствовать строковому типу (например, "entry": "./src/file.ts"), иначе оно будет проигнорировано при сборке.

Еще один пример.

# subql-node

# - помощь

Здесь отображаются параметры справки.

> subql-node --help
Опции:
      --help Показать справку [boolean]
      --version Показать номер версии [boolean]
  -f, --subquery Локальный путь проекта подзапроса [string]
      --subquery-name Имя проекта подзапроса [deprecated] [string]
  -c, --config Укажите файл конфигурации [string]
      --local Использовать локальный режим [deprecated] [boolean]
      --force-clean Принудительно очистить базу данных, удаляя схемы проекта
                            и таблицы [boolean]
      --db-schema Имя схемы базы данных проекта [string]
      --unsafe Разрешает использование любого встроенного модуля в пределах
                            песочницы [boolean][по умолчанию: false]
      --batch-size Пакетный размер блоков для выборки за один раунд [число]
      --scale-batch-size Масштабировать размер пакета на основе использования памяти
                                                      [булево] [по умолчанию: false]
      --timeout Тайм-аут для песочницы индексатора для выполнения отображения
                            функции [число]
      --debug Показать отладочную информацию в консольном выводе. will
                            forcefully set log level to debug
                                                      [boolean] [default: false]
      --profiler            Show profiler information to console output
                                                      [boolean] [default: false]
      --subscription        Enable subscription       [boolean] [default: false]
      --network-endpoint    Blockchain network endpoint to connect      [string]
      --output-fmt          Print log as json or plain text
                                           [string] [choices: "json", "colored"]
      --log-level           Specify log level to print. Игнорируется когда применяется --debug is
                            используется
          [string] [choices: "fatal", "error", "warn", "info", "debug", "trace",
                                                                       "silent"]
      --migrate             Переход db schema (только для управления таблицами)
                                                      [boolean] [default: false]
      --timestamp-field     Включить/отключить created_at и updated_at в schema
                                                      [boolean] [default: false]
  -d, --network-dictionary  Обозначение api-интерфейса словаря для этой сети [string]
  -m, --mmr-path            Локальный путь диапозона высоты Меркла (.mmr) файл
                                                                        [string]
      --proof-of-index      Включить/отключить доказательство индексации
                                                      [boolean] [default: false]
  -p, --port                Порт, к которому будет привязана служба           [number]
      --disable-historical  Отключить сохранение состояния исторических объектов
                                                       [boolean] [default: true]
      --reindex             Повторная индексация на заданную высоту блока           [number]
  -w, --workers             Количество рабочих потоков, используемых для извлечения и
обработки блоков. Отключено по умолчанию.     [number]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

# --версия

Здесь отображается текущая версия.

> subql-node --version
0.19.1
1
2

# -f, --subquery

Используйте этот флаг для запуска проекта SubQuery.

subql-node -f . // или
subql-node --subquery .
1
2

# --subquery-имя (устаревшее)

Этот флаг позволяет задать имя для вашего проекта, которое действует так, как будто создает экземпляр вашего проекта. При указании нового имени создается новая схема базы данных, и синхронизация блоков начинается с нуля. Утратил силу в пользу --db-schema

subql-node -f . --subquery-name=test2
1

# -c, --конфигурация

Все эти различные конфигурации можно поместить в файл .yml или .json, а затем сослаться на него с помощью флага config.

Пример файла subquery_config.yml:

subquery: . // Обязательно. Это локальный путь проекта. Точка здесь означает текущий локальный каталог.
subqueryName: hello // Необязательное имя
batchSize: 55 // Необязательная конфигурация
1
2
3

Поместите этот файл в тот же каталог, что и проект. Затем в текущем каталоге проекта запустите:

> subql-node -c ./subquery_config.yml
1

# --локальный (устаревший)

Этот флаг используется в основном для отладочных целей, где он создает таблицу starter_entity по умолчанию в схеме "postgres" по умолчанию.

subql-node -f . --local
1

Обратите внимание, что если вы используете этот флаг, его удаление не означает, что он будет указывать на другую базу данных. Для перенаправления на другую базу данных вам придется создать НОВУЮ базу данных и изменить настройки env на эту новую базу данных. Другими словами, "export DB_DATABASE=<new_db_here>".

# --force-очистка

Этот флаг заставляет схемы и таблицы проекта регенерироваться, что полезно использовать при итеративном развитии схем graphql, чтобы новые запуски проекта всегда работали с чистым состоянием. Обратите внимание, что этот флаг также сотрет все индексированные данные.

# --db-схема

Этот флаг позволяет задать имя для схемы базы данных проекта. При указании нового имени создается новая схема базы данных с настроенным именем и начинается блочное индексирование.

subql-node -f . --db-schema=test2
1

# --подписка

Это создаст триггер уведомления на сущность, что также является необходимым условием для включения функции подписки в службе запросов.

# - небезопасно

Проекты SubQuery обычно запускаются в песочнице javascript для безопасности, чтобы ограничить объем доступа проекта к вашей системе. Песочница ограничивает доступный импорт javascript следующими модулями:

["assert", "buffer", "crypto", "util", "path"];
1

Хотя это повышает безопасность, мы понимаем, что это ограничивает доступную функциональность вашего SubQuery. Команда --unsafe импортирует все модули javascript по умолчанию, что значительно увеличивает функциональность песочницы, но при этом снижает безопасность.

Note that the --unsafe command will prevent your project from being run in the SubQuery Network, and you must contact support if you want this command to be run with your project in SubQuery's Managed Service (opens new window).

# --размер партии

Этот флаг позволяет задать размер партии в командной строке. Если размер партии также задан в конфигурационном файле, он имеет приоритет.

> subql-node -f . --batch-size=20
2021-08-09T23:24:43.775Z <fetch> INFO fetch block [6601,6620], total 20 blocks
2021-08-09T23:24:45.606Z <fetch> INFO fetch block [6621,6640], total 20 blocks
2021-08-09T23:24:47.415Z <fetch> INFO fetch block [6641,6660], total 20 blocks
2021-08-09T23:24:49.235Z <fetch> INFO fetch block [6661,6680], total 20 blocks
1
2
3
4
5

# --масштабируемый размер партии

Масштабируйте размер пакета выборки блоков в зависимости от использования памяти.

# --тайм-аут

Установите пользовательский таймаут для javascript-песочницы для выполнения функций отображения над блоком до того, как функция отображения блока выбросит исключение по таймауту.

# отладка

Это выводит отладочную информацию на консольный вывод и принудительно устанавливает уровень журнала на отладочный.

> subql-node -f . --debug
2021-08-10T11:45:39.471Z <db> DEBUG Executing (1b0d0c23-d7c7-4adb-a703-e4e5c414e035): INSERT INTO "subquery_1"."starter_entities" ("id","block_height","created_at","updated_at") VALUES ($1,$2,$3,$4) ON CONFLICT ("id") DO UPDATE SET "id"=EXCLUDED."id","block_height"=EXCLUDED."block_height","updated_at"=EXCLUDED."updated_at" RETURNING "id","block_height","created_at","updated_at";
2021-08-10T11:45:39.472Z <db> DEBUG Executing (default): UPDATE "subqueries" SET "next_block_height"=$1,"updated_at"=$2 WHERE "id" = $3
2021-08-10T11:45:39.472Z <db> DEBUG Executing (1b0d0c23-d7c7-4adb-a703-e4e5c414e035): COMMIT;

1
2
3
4
5

# профиль

Здесь отображается информация о профилировщике.

subql-node -f . --local --profiler
2021-08-10T10:57:07.234Z <profiler> INFO FetchService, fetchMeta, 3876 ms
2021-08-10T10:57:08.095Z <profiler> INFO FetchService, fetchMeta, 774 ms
2021-08-10T10:57:10.361Z <profiler> INFO SubstrateUtil, fetchBlocksBatches, 2265 ms
2021-08-10T10:57:10.361Z <fetch> INFO fetch block [3801,3900], total 100 blocks
1
2
3
4
5

# --Сетевая конечная точка

Этот флаг позволяет пользователям переопределять конфигурацию конечной точки сети из файла манифеста.

subql-node -f . --network-endpoint="wss://polkadot.api.onfinality.io/public-ws"

1
2

Обратите внимание, что это также должно быть установлено в файле манифеста, иначе вы получите:

ERROR Создать проект Subquery по заданному пути не удалось! Ошибка: не удалось разобрать project.yaml.
Экземпляр ProjectManifestImpl не прошел проверку:
 - свойство network не выполнило следующие ограничения: isObject
 - свойство network.network не прошло следующие ограничения: nestedValidation
1
2
3
4

# --Вывод

Существует два различных формата вывода терминала. JSON или цвет. Colored (Цветной) используется по умолчанию и содержит цветной текст.

> subql-node -f . --output-fmt=json
{"level":"info","timestamp":"2021-08-10T11:58:18.087Z","pid":24714,"hostname":"P.local","category":"fetch","message":"fetch block [10501,10600], total 100 blocks"}
1
2
> subql-node -f . --output-fmt=colored
2021-08-10T11:57:41.480Z <subql-node> INFO node started
(node:24707) [PINODEP007] Warning: bindings.level is deprecated, use options.level option instead
2021-08-10T11:57:48.981Z <fetch> INFO fetch block [10201,10300], total 100 blocks
2021-08-10T11:57:51.862Z <fetch> INFO fetch block [10301,10400], total 100 blocks
1
2
3
4
5

# --уровень лога

На выбор предлагается 7 вариантов. “fatal”, “error”, “warn”, “info”, “debug”, “trace”, “silent”. В приведенном ниже примере ничего не показывается. В терминале ничего не будет выведено, поэтому единственный способ узнать, работает узел или нет, - это запросить в базе данных количество строк (select count(*) from subquery_1.starter_entities) или запросить высоту блока.

> subql-node -f . --log-level=silent
(node:24686) [PINODEP007] Предупреждение: bindings.level устарел, вместо него используйте опцию options.level
(Используйте `node --trace-warnings ...`, чтобы показать, где было создано предупреждение)
(node:24686) [PINODEP007] Warning: bindings.level is deprecated, use options.level option instead
(node:24686) [PINODEP007] Warning: bindings.level is deprecated, use options.level option instead
(node:24686) [PINODEP007] Warning: bindings.level is deprecated, use options.level option instead
(node:24686) [PINODEP007] Warning: bindings.level is deprecated, use options.level option instead
(node:24686) [PINODEP007] Warning: bindings.level is deprecated, use options.level option instead
(node:24686) [PINODEP007] Warning: bindings.level is deprecated, use options.level option instead
(node:24686) [PINODEP007] Warning: bindings.level is deprecated, use options.level option instead
(node:24686) [PINODEP007] Warning: bindings.level is deprecated, use options.level option instead
(node:24686) [DEP0152] DeprecationWarning: Пользовательские аксессоры PerformanceEntry устарели. Пожалуйста, используйте свойство детализации.
(node:24686) [PINODEP007] Предупреждение: bindings.level устарел, вместо него используйте опцию options.level
1
2
3
4
5
6
7
8
9
10
11
12
13

# --поле временной метки

По умолчанию это значение истина. если установлено значение ложь:

> subql-node -f . –timestamp-field=false
1

Это удаляет столбцы created_at и updated_at в таблице starter_entities.

# -d, --сетевой словарь

Это позволяет вам указать конечную точку словаря, который является бесплатной услугой, предоставляемой и размещаемой в SubQuery's Project Explorer (opens new window) (поиск словаря) и представляет конечную точку API: https://api.subquery.network/sq/subquery/dictionary-polkadot.

Обычно этот параметр задается в файле манифеста, но ниже показан пример использования его в качестве аргумента в командной строке.

subql-node -f . -d "https://api.subquery.network/sq/subquery/dictionary-polkadot"
1

Подробнее о том, как работает словарь SubQuery .

# -p, --порт

Порт, к которому привязывается служба индексирования подзапросов. По умолчанию установлено значение 3000.

# --disable-historical

Отключает автоматическое отслеживание исторических состояний, см. Historic State Tracking. По умолчанию установлено значение false.

# --reindex индексация заново

Для удаления ранее индексированных данных и повторной индексации с указанной высоты блока используйте --reindex=<blockNumber>.

:::Примечание. Пожалуйста, обратите внимание, что способ использования этой функции будет обновлен в ближайшее время. :::

# -w, --workers

Это позволит перевести добычу блока и обработку данных в рабочее состояние. По умолчанию эта функция будет выглядеть как disabled. Вы можете активировать это с помощью флага --workers=<number>. Обращаем ваше внимание, что количество доступных ядер процессора строго ограничивает использование рабочих потоков. Итак, при использовании флага --workers=<number> всегда задавайте количество работников. Без указания флага все будет выполняться в одном потоке.

Это позволит увеличить производительность в 4 раза. Попробуйте и оставьте нам обратную связь!

На данный момент он находится на ранней стадии эксперимента, но мы планируем включить его по умолчанию. :::

:::Примечание Эта функция доступна для Substrate и Cosmos и вскоре будет интегрирована в Avalanche.

# subql-query

# - помощь

Здесь отображаются параметры справки.

Options:
      --help          Show help                                          [boolean]
      --version       Show version number                                [boolean]
  -n, --name          Project name                             [string] [required]
      --playground    Enable graphql playground                          [boolean]
      --subscription  Enable subscription               [boolean] [default: false]
      --output-fmt    Print log as json or plain text
                        [string] [choices: "json", "colored"] [default: "colored"]
      --log-level     Specify log level to print.
            [string] [варианты: "fatal", "error", "warn", "info", "debug", "trace",
                                                       "silent"] [по умолчанию: "info"]
      --log-path Путь для создания файла журнала, например ./src/name.log [string]
      --log-rotate Вращать файлы журнала в каталоге, указанном log-path
                                                      [boolean] [по умолчанию: false]
      --indexer Url, позволяющий запросу получить доступ к метаданным индексатора [string]
      --unsafe Отключить ограничения на глубину запроса и допустимое количество возвращаемых
                      query records [boolean]
  -p, --port Порт, к которому будет привязан сервис [число]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# --версия

Здесь отображается текущая версия.

> subql-query --version
0.7.0
1
2

# -n, --имя

Этот флаг используется для запуска службы запросов. Если флаг --subquery-name не указан при запуске индексатора, имя здесь будет ссылаться на имя проекта по умолчанию. Если задано --subquery-name, то имя здесь должно соответствовать заданному.

> subql-node -f . // --subquery-name not set

> subql-query -n subql-helloworld --playground // имя по умолчанию соответствует имени каталога проекта
1
2
3
> subql-node -f . --subquery-name=hiworld // --subquery-name set

> subql-query -n hiworld --playground // имя указывает на проект subql-helloworld, но с именем hiworld
1
2
3

# игровая площадка

Этот флаг включает игровую площадку graphql, поэтому он всегда должен быть включен по умолчанию, чтобы быть полезным.

# --Вывод

Смотрите --output-fmt.

# --уровень лога

Смотрите --loglevel.

# --log-path

Включите ведение журнала файлов, указав путь к файлу, в который будет вестись журнал.

# --log-поворот

Включите ротацию журналов с параметрами интервала ротации 1d, максимум 7 файлов и с максимальным размером файла 1GB.

# --индексатор

Установите пользовательский url для расположения конечных точек индексатора, служба запросов использует эти конечные точки для определения состояния здоровья индексатора, метаданных и статуса готовности.

# --подписка

Этот флаг включает GraphQL Subscriptions, для включения этой функции требуется subql-node также включить --subscription.

# - небезопасно

Служба запросов имеет ограничение в 100 сущностей для неограниченных запросов graphql. Флаг unsafe снимает это ограничение, что может вызвать проблемы с производительностью службы запросов. Вместо этого рекомендуется, чтобы запросы были пагинированными (opens new window).

Этот флаг позволяет использовать некоторые функции агрегирования, включая sum, max, avg и другие. Подробнее об этой функции здесь.

По умолчанию они отключены из-за лимита сущностей.

Обратите внимание, что команда --unsafe не позволит запустить ваш проект в сети SubQuery, и вы должны обратиться в службу поддержки, если хотите, чтобы эта команда была запущена с вашим проектом в SubQuery's Managed Services (opens new window).

# --порт

Порт, к которому привязывается служба запросов Subquery. По умолчанию установлено значение 3000

Последнее обновление: September 24, 2022 05:55