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