Сервисы 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- получение текущего времени на ноде.