Установка и использование платформы
Как работает JavaScript SDK¶
Авторизация в блокчейне¶
Для того, чтобы пользователь приложения мог взаимодействовать с блокчейном, необходимо авторизовать его в сети. Для этого в JavaScript SDK предусмотрены методы REST API сервиса авторизации, которые позволяют составить многоуровневый алгоритм со всеми возможными типами запросов, связанных с авторизацией пользователя в блокчейне.
Авторизация может производиться как в браузере, так и в среде Node.js.
При авторизации в браузере используется интерфейс Fetch API.
Для авторизации посредством Node.js, применяется HTTP-клиент Axios.
Создание seed-фразы¶
Приложение на базе JS SDK может работать с seed-фразами в следующих вариантах:
создать новую рандомизированную seed-фразу;
создать seed-фразу из существующей фразы;
зашифровать seed-фразу паролем или расшифровать ее.
Примеры работы JS SDK с seed-фразами приведены в разделе Варианты создания seed-фразы.
Подписание и отправка транзакций¶
Для приложений на основе JS SDK доступны подписание и отправка в блокчейн любых транзакций платформы. Список всех транзакций приведен в разделе Описание транзакций.
Процесс подписания и отправки транзакций в сеть выглядит следующим образом:
Приложение инициирует создание транзакции.
Все поля транзакции сериализуются в байт-код при помощи вспомогательного компонента JS SDK transactions-factory.
Затем транзакция при помощи компонента signature-generator подписывается приватным ключом пользователя в браузере или в среде Node.js. Подписание транзакции производится при помощи POST-запроса
/transactions/sign
.JavaScript SDK отправляет транзакцию в блокчейн при помощи POST-запроса
/transactions/broadcast
.Приложение получает ответ в виде хэша транзакции на выполненный POST-запрос.
Примеры подписания и отправки различных типов транзакций приведены в разделе Создание и отправка транзакций при помощи JS SDK.
Криптографические методы ноды, используемые JavaScript SDK¶
JavaScript SDK доступны три криптографических метода:
crypto/encryptCommon
– шифрование данных для всех получателей единым ключом CEK, который в свою очередь оборачивается уникальными ключами KEK для каждого получателя;crypto/encryptSeparate
– шифрование текста отдельно для каждого получателя уникальным ключом;crypto/decrypt
– расшифровка данных при условии, если ключ получателя сообщения находится в keystore ноды.
Компонент signature-generator также поддерживает как криптографию по ГОСТ, так и алгоритмы криптографии Waves.