Обмен конфиденциальными данными

Перед тем, как обмениваться конфиденциальными данными, вам нужно создать группы доступа. Используя транзакции, вы можете добавлять или изменять группы доступа к конфиденциальным данным.

Создание группы доступа к конфиденциальным данным

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

  1. Участник сети, который будет владельцем группы доступа, создаёт транзакцию 112 CreatePolicy со следующими основными параметрами:

  • sender - публичный ключ создателя группы доступа.

  • description - описание группы доступа.

  • policyName - имя группы доступа.

  • recipients - публичные ключи участников группы доступа, которые будут иметь право получать конфиденциальные данные.

  • owners - публичные ключи владельцев группы доступа, которые, помимо доступа к данным, смогут изменять состав участников группы.

  1. Транзакция с созданием группы доступа вместе с остальными попадает в блок, и её принимают другие ноды.

  2. После принятия транзакции доступ к отправляемым в сеть конфиденциальным данным получают все участники, зарегистрированные в созданной группе доступа.

Изменение группы доступа

Изменять группы доступа могут только их владельцы. Выполняются следующие действия для изменения списка участников в группе доступа:

  1. Владелец группы доступа создаёт транзакцию 113 UpdatePolicy со следующими основными параметрами:

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

  • sender - публичный ключ владельца группы доступа;

  • opType - опция добавления (add) или удаления (remove) участников группы;

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

  • owners - публичные ключи владельцев группы доступа, которые добавляются или удаляются из группы доступа.

  1. Транзакция с изменением группы доступа вместе с остальными попадает в блок, и её принимают другие ноды.

  2. После принятия транзакции в сети обновляется информация об участниках изменённой группы.

Процесс обмена конфиденциальными данными

Важно

Через метод API POST /privacy/sendData можно отправить данные размером не более 20МБ.

  1. Пользователь отправляет данные в сеть, используя инструмент API POST /privacy/sendData (параметры API: отправитель, пароль, ID группы, тип данных, информация о данных, данные и хеш).

  2. Участники группы доступа используют инструмент GET /privacy/{policyId}​/getData/{policyItemHash} для получения информации о данных и их последующей загрузки.

Выполните следующие действия для создания значений в поля data и hash:

  1. Переведите байтовую последовательность данных в кодировку Base64.

  2. Результат преобразования данных поместите в поле "data": "29sCt...RgdC60LL" запроса API POST /privacy/sendData.

  3. В поле "hash": "9wetTB...SU2zr1Uh" укажите хеш-сумму от данных по алгоритму SHA-256. Результат хеширования нужно указывать в кодировке Base58.

  4. Отправьте данные в сеть, нажав кнопку Try it out!.

  5. В результате отправки данных в сеть нода автоматически сформирует транзакцию 114 PolicyDataHash.