Как устроена платформа

Сервисы авторизации и подготовки данных

Блокчейн-платформа Waves Enterprise включает два внешних интеграционных сервиса:

  • Сервис авторизации, обеспечивающий авторизацию всех компонентов блокчейн-сети;

  • Сервис подготовки данных, собирающий данные блокчейна в БД и предоставляющий API для доступа к этим данным.

Сервис авторизации

Сервис обеспечивает авторизацию всех компонентов блокчейн-сети на базе протокола oAuth 2.0. OAuth 2.0 - это открытый фреймворк авторизации, который позволяет предоставлять третьей стороне ограниченный доступ к защищенным ресурсам пользователя без раскрытия логина и пароля.

Общая схема обмена данными при авторизации по протоколу oAuth 2.0:

Общая схема авторизации на базе протокола OAuth 2.0

Средством авторизации является JSON Web Token (JWT). Токены используются для авторизации каждого запроса от клиента к серверу и имеют ограниченное время жизни. Клиент получает два токена - access и refresh. Access-токен используется для авторизации запросов на доступ к защищенным ресурсам и для хранения дополнительной информации о пользователе. Refresh-токен используется для получения нового access-токена и обновления refresh-токена.

Ниже представлена схема авторизации для сетей на основе блокчейн-платформы Waves Enterprise:

Схема авторизации на блокчейн-платформе Waves Enterprise

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

  1. Клиент (компонент блокчейн-сети: корпоративный клиент, сервис обмена данными или стороннее приложение) единоразово предоставляет свои аутентификационные данные сервису авторизации;

  2. В случае успешного прохождения процедуры первичной аутентификации сервис авторизации сохраняет аутентификационные данные клиента в хранилище данных, генерирует и отправляет клиенту подписанные access и refresh-токены. В токенах указываются время жизни токена и основные данные клиента: идентификатор и роль. Аутентификационные данные клиентов хранятся в конфигурационном файле сервиса авторизации. Каждый раз перед отправкой запроса стороннему сервису клиент проверяет время жизни access-токена и, в случае истечения срока жизни токена, обращается к сервису авторизации для получения нового access токена. Для запросов к сервису авторизации используется refresh-токен;

  3. Используя актуальный access-токен, клиент отправляет запрос на получение данных стороннего сервиса;

  4. Сторонний сервис проверяет время жизни access-токена, его целостность, а также сравнивает полученный ранее публичный ключ сервиса авторизации с ключом, содержащимся в подписи access-токена. В случае успешной проверки сторонний сервис предоставляет клиенту запрашиваемые данные.

Описание способов авторизации приведено в статье Сервис авторизации: варианты авторизации.

Сервис подготовки данных

Сервис подготовки данных предназначен для сбора данных данные из блокчейна в реляционную БД. Для получения доступа к собранным данным сервис имеет собственный API.

В Waves Enterprise Mainnet сервис работает в автономном режиме, доступ к его API ограничен. Для развертывания в частной сети сервис настраивается специалистами Waves Enterprise в зависимости от особенностей проекта. Также вы можете изменить параметры работы сервиса самостоятельно при помощи переменных окружения, описание которыэ приведено в разделе Сервис подготовки данных: ручная настройка.