Как устроена платформа
Сервисы авторизации и подготовки данных¶
Блокчейн-платформа Waves Enterprise включает два внешних интеграционных сервиса:
Сервис авторизации, обеспечивающий авторизацию всех компонентов блокчейн-сети;
Сервис подготовки данных, собирающий данные блокчейна в БД и предоставляющий API для доступа к этим данным.
Сервис авторизации¶
Сервис обеспечивает авторизацию всех компонентов блокчейн-сети на базе протокола oAuth 2.0. OAuth 2.0 – это открытый фреймворк авторизации, который позволяет предоставлять третьей стороне ограниченный доступ к защищенным ресурсам пользователя без раскрытия логина и пароля.
Общая схема обмена данными при авторизации по протоколу oAuth 2.0:
Средством авторизации является JSON Web Token (JWT). Токены используются для авторизации каждого запроса от клиента к серверу и имеют ограниченное время жизни. Клиент получает два токена – access и refresh. Access-токен используется для авторизации запросов на доступ к защищенным ресурсам и для хранения дополнительной информации о пользователе. Refresh-токен используется для получения нового access-токена и обновления refresh-токена.
Ниже представлена схема авторизации для сетей на основе блокчейн-платформы Waves Enterprise:
Общий порядок авторизации выглядит следующим образом:
Клиент (компонент блокчейн-сети: корпоративный клиент, сервис обмена данными или стороннее приложение) единоразово предоставляет свои аутентификационные данные сервису авторизации;
В случае успешного прохождения процедуры первичной аутентификации сервис авторизации сохраняет аутентификационные данные клиента в хранилище данных, генерирует и отправляет клиенту подписанные access и refresh-токены. В токенах указываются время жизни токена и основные данные клиента: идентификатор и роль. Аутентификационные данные клиентов хранятся в конфигурационном файле сервиса авторизации. Каждый раз перед отправкой запроса стороннему сервису клиент проверяет время жизни access-токена и, в случае истечения срока жизни токена, обращается к сервису авторизации для получения нового access-токена. Для запросов к сервису авторизации используется refresh-токен;
Используя актуальный access-токен, клиент отправляет запрос на получение данных стороннего сервиса;
Сторонний сервис проверяет время жизни access-токена, его целостность, а также сравнивает полученный ранее публичный ключ сервиса авторизации с ключом, содержащимся в подписи access-токена. В случае успешной проверки сторонний сервис предоставляет клиенту запрашиваемые данные.
Описание способов авторизации приведено в следующей статье:
Сервис подготовки данных¶
Сервис подготовки данных предназначен для сбора данных из блокчейна в реляционную БД. Для получения доступа к собранным данным сервис имеет собственный API.
В Waves Enterprise Mainnet сервис работает в автономном режиме, доступ к его API ограничен. Для развертывания в частной сети сервис настраивается специалистами Waves Enterprise в зависимости от особенностей проекта. Также вы можете изменить параметры работы сервиса самостоятельно при помощи переменных окружения, которые описаны в разделе Сервис подготовки данных: ручная настройка.
API-методы интеграционных сервисов¶
Для обмена данными интеграционным сервисам доступны отдельные методы REST API: