Сервисы gRPC, используемые смарт-контрактом

Общее описание работы смарт-контрактов с использованием gRPC приведено в разделе Смарт-контракты Docker с использованием gRPC

Protobuf файлы, необходимые для работы со смарт-контрактами посредством gRPC, вы можете скачать со страницы проекта в GitHub. Список protobuf файлов следующий:

  • address.proto - методы для работы с адресами.

  • common.proto - общий файл для работы других protobuf файлов.

  • crypto.proto - методы для работы с шифрованием данных.

  • permission.proto - методы для работы с выдачей разрешений.

  • pki.proto - методы работы с PKI.

  • privacy.proto - методы работы с приватными данными.

  • util.proto - методы для служебных утилит.

  • contract.proto - методы для работы с контрактами.

Каждый protobuf файл (кроме common.proto) содержит набор небольших блоков, включающих набор полей «ключ-значение». Список таких блоков для каждого файла приведен ниже.

address.proto

  • GetAddresses - получение всех адресов участников, ключевые пары которых хранятся в keystore ноды.

  • GetAddressData - получение всех данных, записанных на аккаунт адресата {address}.

contract.proto

  • Connect - подключение контракта к ноде.

  • CommitExecutionSuccess - получение результата успешного исполнения контракта и отправка результатов на ноду.

  • CommitExecutionError - получение ошибки исполнения контракта и отправка результатов на ноду.

  • GetContractKeys - получение результата исполнения контракта по его идентификатору (id транзакции создания контракта).

  • GetContractKey - получение результата исполнения контракта по его идентификатору (id транзакции создания контракта) и ключу {key}.

crypto.proto

  • EncryptSeparate - шифрование данных отдельно для каждого получателя уникальным ключом.

  • EncryptCommon - шифрование данных единым ключом CEK для всех получателей, CEK оборачивается уникальными KEK для каждого получателя.

  • Decrypt - расшифровка данных. Расшифровка доступна в случае, если ключ получателя сообщения находится в keystore ноды.

permission.proto

  • GetPermissions - получение списка всех ролей на указанный адрес, действительных на текущий момент.

  • GetPermissionsForAddresses - получение списка всех ролей, действительных на текущий момент, на указанный диапазон адресов.

pki.proto

  • Sign - формирование отсоединённой ЭП для данных, передаваемых в запросе.

  • Verify - проверка отсоединённой ЭП для данных, передаваемых в запросе.

privacy.proto

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

  • GetPolicyOwners - получение адресов всех владельцев, записанных в группу {policy-id}.

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

  • GetPolicyItemData - получение пакета конфиденциальных данных по идентификационному хешу.

  • GetPolicyItemInfo - получение метаданных для пакета конфиденциальных данных по идентификационному хешу.

util.proto

  • GetNodeTime - получение текущего времени на ноде.