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. Відмінним місцем, де можна отримати плагини і поставити питання про них, являється 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 Завантаження Плагина

Переміститеся в теку плагинiв :

$ cd nxt/html/ui/plugins

Завантажте zip файл, що містить плагин: $ curl -OL https://bitbucket.org/mystcoin/hello_world/downloads/hello_world.zip

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

Перевірка валидностi плагина гарантує, що завантажений 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 завантажить усi плагины при наступному вході в Клієнт Nxt, якщо плагины активовані.

5 Використання Плагинiв

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

Система плагинiв Клієнта 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 Список Активних Плагинiв

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

Plugins list.png

5.2.3 Відключення плагинiв під час сеансу

Встановите прапорець Disable Plugins during Session перед входом в систему, якщо ви використовуєте клієнт до якого мають доступ інші люди, або якщо є сумнів відносно активних плагинiв. Цей елемент управління перевизначає налаштування активності плагинiв для поточного сеансу входу в систему.

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

Клацніть по шестерінці у верхньому правому кутку клієнта Nxt, в меню, що з'явилося, клацніть по пункту Plugins:

Plugins menu.png

На екрані відобразиться список усіх встановлених плагинiв і їх стан:

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 Інтерфейс Плагинiв

Щоб отримати детальні інструкції по використанню плагина - звернетеся до документації, яку надає автор плагина. Як правило, якщо автор не забезпечує іншого, спеціально заявленого способу доступу до плагину, такий доступ користувачі дістають через пункт меню Plugins в лівій області Клієнта Nxt:

Plugins operate.png
  • Клацніть по Hello World, щоб відкрити плагин який приводиться як приклад, він виведе на екран стан Nxt blockchain.