Установка и использование платформы

Как работает JavaScript SDK

Авторизация в блокчейне

Для того, чтобы пользователь приложения мог взаимодействовать с блокчейном, необходимо авторизовать его в сети. Для этого в JavaScript SDK предусмотрены методы REST API сервиса авторизации, которые позволяют составить многоуровневый алгоритм со всеми возможными типами запросов, связанных с авторизацией пользователя в блокчейне.

Авторизация может производиться как в браузере, так и в среде Node.js.

При авторизации в браузере, используется интерфейс Fetch API.

Для авторизации посредством Node.js, применяется HTTP-клиент Axios.

Если используемая приложением нода блокчейна использует метод авторизации oAuth, для его авторизации рекомендуется применять библиотеку api-token-refresher. Эта библиотека автоматически обновляет токены доступа при истечении времени их использования. Подробнее о работе с oAuth-авторизацией и применении библиотеки api-token-refresher см. раздел «Применение JS SDK в ноде с oAuth».

Создание seed-фразы

Приложение на базе JS SDK может работать с seed-фразами в следующих вариантах:

  • создать новую рандомизированную seed-фразу;

  • создать seed-фразу из существующей фразы;

  • зашифровать seed-фразу паролем или расшифровать ее.

Примеры работы JS SDK с seed-фразами приведены в разделе «Варианты создания seed-фразы».

Подписание и отправка транзакций

Для приложений на основе JS SDK доступны подписание и отправка в блокчейн любых транзакций платформы. Список всех транзакций приведен в разделе Описание транзакций.

Процесс подписания и отправки транзакций в сеть выглядит следующим образом:

  1. Приложение инициирует создание транзакции.

  2. Все поля транзакции сериализуются в байт-код при помощи вспомогательного компонента JS SDK transactions-factory.

  3. Затем транзакция при помощи компонента signature-generator подписывается приватным ключом пользователя в браузере или в среде Node.js. Подписание транзакции производится при помощи POST-запроса /transactions/sign.

  4. JavaScript SDK отправляет транзакцию в блокчейн при помощи POST-запроса /transactions/broadcast.

  5. Приложение получает ответ в виде хэша транзакции на выполненный POST-запрос.

Примеры подписания и отправки различных типов транзакций приведены в разделе «Примеры создания и отправки транзакций».

Криптографические методы ноды, используемые JavaScript SDK

JavaScript SDK доступны три криптографических метода:

  • crypto/encryptCommon - шифрование данных для всех получателей единым ключом CEK, который в свою очередь оборачивается уникальными ключами KEK для каждого получателя;

  • crypto/encryptSeparate - шифрование текста отдельно для каждого получателя уникальным ключом;

  • crypto/decrypt - расшифровка данных при условии, если ключ получателя сообщения находится в keystore ноды.

Компонент signature-generator также поддерживает как криптографию по ГОСТ, так и алгоритмы криптографии Waves.