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

REST API: обмен конфиденциальными данными и получение информации о группах доступа

https://img.shields.io/badge/auth-required-orange.svg

Подробнее об обмене конфиденциальными данными и группах доступа см. статью Обмен конфиденциальными данными.

Для реализации этих функций при помощи REST API предусмотрен набор методов группы Privacy:

POST /privacy/sendData

Метод предназначен для отправки в блокчейн конфиденциальных данных, доступных только для участников группы доступа, определенной для этих данных. Запрос метода содержит следующую информацию:

  • sender - блокчейн-адрес, от которого должны рассылаться данные (соответствуют значению параметра «privacy.owner-address» в конфигурационном файле ноды);

  • password - пароль для доступа к закрытому ключу keystore ноды;

  • policyId - идентификатор группы, которая будет иметь доступ к оптравляемым данным;

  • info - информация об отправляемых данных;

  • data - строка, содержащая данные в формате base64;

  • hash - sha256-хеш данных в формате base58.

Примеры запроса и ответа:

POST /privacy/sendDataV2

Метод POST /privacy/sendDataV2 аналогичен методу POST /privacy/sendData, однако позволяет приложить файл в окне Swagger, не прибегая к его конверсии в формат base64. Поле Data в этой версии метода отсутствует.

Примеры запроса и ответа:

GET /privacy/{policy-id}/recipients

Метод предназначен для получения адресов всех участников, записанных в группу {policy-id}.

В ответе метода возвращается массив строк с адресами участников группы доступа.

Пример ответа:

GET /privacy/{policy-id}/owners

Метод предназначен для получения адресов владельцев группы доступа {policy-id}.

В ответе метода возвращается массив строк с адресами владельцев группы доступа.

Пример ответа:

GET /privacy/{policy-id}/hashes

Метод предназначен для получения массива идентификационный хэшей данных, которые привязаны к группе доступа {policy-id}.

В ответе метода возвращается массив строк с идентификационными хэшами данных группы доступа.

Пример ответа:

GET /privacy/{policyId}​/getData/{policyItemHash}

Метод предназначен для получения пакета конфиденциальных данных группы доступа {policyId} по идентификационному хэшу {policyItemHash}.

В ответе метода возвращается хэш-сумма конфиденциальных данных.

Пример ответа:

GET ​/privacy​/{policyId}​/getInfo​/{policyItemHash}

Метод предназначен для получения метаданных для пакета конфиденциальных данных группы {policyId} по идентификационному хешу {policyItemHash}.

В ответе метода возвращаются следующие данные:

  • sender - адрес отправителя конфиденциальных данных;

  • policy_id - идентификатор группы доступа;

  • type - тип конфиденциальных данных (file);

  • info - массив данных о файле: filename - имя файла, size - размер файла, timestamp - временная метка размещения файла в формате Unix Timestamp (в миллисекундах), author - автор файла, comment - опциональный комментарий к файлу, hash - идентификационный хэш конфиденциальных данных.

Пример ответа:

POST /privacy/forceSync

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

Запрос метода содержит следующие данные:

  • sender - адрес ноды-участника группы доступа, отправляющей запрос;

  • policy - идентификатор группы доступа;

  • source - адрес ноды, с которой должны скачиваются отсутствующие данные. В случае, если нода неизвестна, установите параметр на null или оставьте поле пустым: в этом случае скачивание файла будет произведено из хранилища первой ноды из списка группы доступа.

Ответ метода содержит поле result с результатом получения данных и поле message с текстом возможной ошибки. В случае успешного получения, возвращается success, конфиденциальные данные записываются в хранилище ноды.

В случае возникновения ошибки, возвращается error, в поле message приводится описание ошибки.

Примеры запроса и ответа:

POST /privacy/getInfos

Метод предназначен для получения массива метаданных конфиденциальных данных по идентификатору группы доступа и идентификационному хэшу.

Запрос метода содержит следующие данные:

  • policiesDataHashes - массив данных с двумя элементами для каждой отдельной группы доступа: policyId - идентификатор группы доступа, datahashes - массив хэшей конфиденциальных данных для получения метаданных по каждому из них.

В ответе метода для каждого отдельного хэша конфиденциальных данных возвращается массив данных, аналогичный ответу метода GET ​/privacy​/{policyId}​/getInfo​/{policyItemHash}.

Примеры запроса и ответа: