Plugins

From Nxt Wiki
Jump to: navigation, search
This page is a translated version of the page Plugins and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎русский • ‎українська

1 Введение

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

Это руководство описывает, как устанавливать и начать использовать плагины. Поскольку у плагинов есть неограниченный доступ к локальному Серверу Nxt, включая критические данные и функциональность, жизненно важно устанавливать только те плагины, которым вы доверяете. Если у вас есть сомнения, устанавливайте плагины только в сети Testnet или в главной сети, но только из под аккаунта с маленькими балансом.

Это руководство описывает Nxt Плагины для Nxt software release 1.5.9.

2 Оглавление

3 Где взять плагины

Плагины создаются сторонними разработчиками. Некоторые распространяются бесплатно, в то время как другие могут быть куплены в Nxt Marketplace, среди товаров под тегом plugin. Отличным местом, где можно получить плагины и задать вопросы о них, является Nxt Plugins subforum.

  • Если Вы не очень опытный кодер, который в состоянии самостоятельно проверить, что плагин безопасен и его можно использовать, берите только те плагины, которые были подписаны доверенными членами сообщества Nxt.

4 Установка плагина

Когда запускается интерфейс клиента Nxt, он автоматически сканирует папку nxt/html/ui/plugins на наличие плагинов. Плагин - это набор файлов в определенном формате, которые хранятся в отдельной папке. На пример, плагин Hello World уже инсталлирован в официальном клиенте Nxt в папке nxt/html/ui/plugins/hello_world.

Установка нового плагина состоит из следующих шагов: загрузка zip файла, содержащего плагин, из доверенного источника, затем проверка zip файла, и в конце извлечение содержимого zip файла в папку nxt/html/ui/plugins.

Далее, в качестве примера мы рассмотрим переустановку плагина Hello World, используя окно терминала в системе Linux.В других системах некоторые детали процесса переустановки могут отличаться.

4.1 Загрузка Плагина

Переместитесь в папку плагинов:

$ cd nxt/html/ui/plugins

Загрузите zip файл содержащий плагин:

$ curl -OL https://bitbucket.org/mystcoin/hello_world/downloads/hello_world.zip

4.2 Проверка загруженного файла плагина

Проверка валидности плагина гарантирует, что загруженный zip файл не был изменен, после того как его упаковал в архив автор, владелец доверенного аккаунта Nxt. Проверка валидности состоит из двух шагов, которые требуют контрольную сумму и подпись контрольной суммы.

4.2.1 Получение Контрольной суммы

В этом примере контрольная сумма sha256 (также называемая хэш-кодом или дайджестом сообщения) :

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

4.2.2 Получение подписи Контрольной суммы

Чтобы гарантировать, что сама контрольная сумма корректна, она должна быть снабжена цифровой подписью. Маркеры Nxt (token) обеспечивают удобный механизм цифровой подписи.

В этом примере Nxt маркер для контрольной суммы был сгенерирован mystcoin (автор этого руководства):

89urfe4danhu1g49c07l522l3pavesdk87kul769mcvsnfjjqob222u8ci7bsvg2b0udq54enfliv8r3isfu4tdabpijqgpn7foenhmf8sogji1g21bqansbd7pge8hl5bgr1m8qvh9rt6l1ihoutqn40e03fl0l
  • Маркеры должны предоставляться автором плагина и могут дополнительно предоставляться пользователями которые подтверждают безопасность использования плагина. Несколько подписей, сгенерированных доверенными экспертами, значительно лучше чем одна.
  • Подпись может быть применена к текстовому сообщению, которое включает контрольную сумму вместе с другими данными. Это имеет значение, только если контрольная сумма также присутствует где-нибудь в сообщении.

4.2.3 Проверка Контрольной суммы

Контрольная сумма может быть проверена, при помощи Клиента Nxt. Для этого откройте в меню настроек (правый верхний угол основного окна, значок "шестеренки") выберите Generate Token, откроется окно Nxt Token Generation / Validation:

Plugins settings token.png

Затем щелкните по второй закладке Validate Token и введите контрольную сумму, или любой текст, содержащий контрольную сумму, который был подписан, в поле Data а маркер в поле Token . Щелкните по Validate:

Plugins token validated.png
  • Результат проверки будет выведен на экран, при этом будет указано - подписана ли контрольная сумма правильно и если так, будет указан аккаунт который подписал и дата создания подписи. Корректный маркер подразумевает, что кто-то, кто знает пароль подписавшего аккаунта, подписал контрольную сумму и что контрольная сумма не была изменена, с момента подписания.
  • В этом примере учетная запись подписания - NXT-6GMG-FC5F-YSX6-8CVEL, принадлежащая mystcoin (автор этого руководства).

4.2.4 Проверка Файла

Вернитесь в терминальное окно, вы все еще находитесь в папке nxt/html/ui/plugins, где находится файл hello_world.zip, передайте по каналу контрольную сумму и имя загруженного файла в утилиту sha256sum следующим образом:

$ echo "ed8b1c197feadea428aaa4625e356eb84f3b2ae7f6ddc1320a9a76d742392313 hello_world.zip" | sha256sum -c

Утилита должна дать результат:

hello_world.zip: OK
  • Это подтверждает что загруженный zip файл - тот же самый который заархивировал mystcoin.

4.3 Извлечение файлов загруженного плагина

Теперь, когда мы убедились в корректности загруженного zip файла, он должен быть разархивирован в папку nxt/html/ui/plugins. В этом примере, как вы заметили, уже присутствует плагин, так как он поставляется с базовым программным обеспечением Nxt. Ради этого примера, переименуйте существующий каталог hello_world:

$ mv hello_world hw

Теперь извлеките файлы из zip архива:

$ unzip hello_world.zip

Проверяем, что недавно созданная папка hello_world идентична существующей ранее:

$ diff -r hello_world hw

Если между ними нет разницы, ответ команды diff будет пустым, она ничего не выведет; в противном случае, будет отображена разница между двумя папками. Если официальный плагин, когда-либо обновлялся, будут видны различия, и нет никаких причин верить только что скачанной версии. Просто восстановите существовавшую ранее версию:

$ mv hw hello_world

Но если вы доверяете новой загруженной версии, вы можете удалить существующую ранее версию:

$ rm -r hw
  • При обновлении существующего плагина желательно удалить его старую версию перед тем как начать устанавливать новую версию.

4.4 Активация Плагина

Плагин Hello World изначально деактивирован. Чтобы активировать его, отредактируйте файл manifest.json, находящийся в папке nxt/html/ui/plugins/hello_world и установите параметр deactivated в false. Затем заархивируйте, при помощи gzip, файл manifest.json вызвав gzip-k manifest.json. Файл с архивом manifest.json.gz является дополнительным, но при его наличии он имеет приоритет; таким образом, вы можете опционально удалить старый manifest.json.gz, вместо того чтобы повторно архивировать manifest.json.

  • После установки нового плагина, выйдите из клиента Nxt, если вы в него зашли под своим аккаунтом. Клиент Nxt загрузит все плагины при следующем входе в Клиент Nxt, если плагины активированы.

5 Использование Плагинов

5.1 Активация Плагинов

Система плагинов Клиента Nxt управляется через экран Настроек. Чтобы активировать плагин щелкните на значке шестеренки,в правом верхнем углу Клиента Nxt, и в появившемся меню щелкните по пункту Settings.

Plugins settings.png
  • На экране Настроек, в разделе Enable Plugins, выберите Yes.
  • Изменения этих настроек вступят в силу только после следующего входа в клиент, поэтому выйдите из клиента NXT.

5.2 Средства защиты

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

Plugins login.png

5.2.1 Уведомление безопасности

При наведении курсора на поле Security Notice будет отображено следующее предупреждение:

Plugins security.png

5.2.2 Список Активных Плагинов

При наведении курсора на поле Active Plugins будет отображен информационный блок содержащий список активных плагинов, на подобии этого:

Plugins list.png

5.2.3 Отключение плагинов во время сеанса

Установите флажок Disable Plugins during Session перед входом в систему, если вы используете клиент к которому имеют доступ другие люди, или если есть сомнение относительно активных плагинов. Этот элемент управления переопределяет настройки активности плагинов для текущего сеанса входа в систему.

5.3 Проверка статуса плагинов

Щелкните по шестеренке в верхнем правом углу клиента Nxt, в появившемся меню щелкните по пункту Plugins:

Plugins menu.png

На экране отобразится список всех установленных плагинов и их состояние:

Plugins status.png
  • Во время процесса входа в систему, система сканирует папку nxt/html/ui/plugins на предмет наличия папок с плагинами. Каждый найденный плагин проверяется на валидность, совместимость и статус запуска.
  • Плагин является корректным, если он соответствует стандартной файловой структуре и требованиям к содержанию для плагинов.
  • Плагин совместим с клиентом Nxt, если его параметр NRS Compatibility содержит тот же номер основной версии что и клиент Nxt. Совместимость выделяется зеленым фоном.
  • Версия клиента Nxt отображается на экран в правом верхнем углу клиентской панели инструментов Nxt. Основная версия - первые два числа. Например, для версии 1.5.6e - основная версия будет 1.5.
  • Если основная версия клиента Nxt меньше, плагин отключается, и Launch Status устанавливается в Halted, и выделяется красным фоном. В таком случае - клиент Nxt должен быть обновлен.
  • Если основная версия клиента Nxt больше, плагин включается, при этом Launch Status устанавливается в состояние Running и выделяется золотым фоном, указывая на то, что плагин должен быть обновлен.

5.4 Удаление или Деактивация плагинов

Плагин может быть удален простым удалением его папки из nxt/html/ui/plugins, после чего необходимо выйти из клиента Nxt.

Плагин может быть деактивирован без удаления файлов, а при помощи редактирования файла manifest.json в папке плагина. Просто измените JSON запись deactivated с false на true. Затем обновите файл manifest.json.gz при помощи вызова gzip -k manifest.json. После чего выйдите из клиента Nxt.

  • Деактивированный плагин появляется на экране Plugins Status со значением поля Launch Status Deactivated на золотом фоне.

5.5 Интерфейс Плагинов

Чтобы получить подробные инструкции по использованию плагина - обратитесь к документации, которую предоставляет автор плагина. Как правило, если автор не обеспечивает другого, специально заявленного способа доступа к плагину, такой доступ пользователи получают через пункт меню Plugins в левой области Клиента Nxt:

Plugins operate.png
  • Щелкните по Hello World, чтобы открыть плагин который приводится в качестве примера, он выведет на экран состояние Nxt blockchain.