Установка и использование платформы
gRPC: работа с транзакциями¶
Для работы с транзакциями предусмотрен gRPC сервис TransactionPublicService.
У сервиса TransactionPublicService есть следующие методы, описанные в protobuf-файле transaction_public_service.proto:
Важно
Типы данных полей для запросов и ответов указаны в protobuf-файлах.
Отправка транзакций в блокчейн¶
Выберите подходящий для вашей задачи метод отправки транзакций в блокчейн:
BroadcastWithCerts
– для отправки транзакции RegisterNode;Broadcast
– для отправки всех остальных транзакций.
Примечание
Для отправки транзакций в блокчейн также можно использовать REST методы POST /transactions/broadcast и POST /transactions/signAndBroadcast.
Broadcast¶
Метод требует ввода следующих параметров запроса:
version
– версия транзакции;transaction
– название транзакции вместе c предназначенным для нее набором параметров.
certificates
– цепочка сертификатов байтами в формате DER; параметр является обязательным при одновременном соблюдении следующих условий:используется PKI или тестовый режим PKI (то есть в конфигурационном файле ноды параметру node.crypto.pki.mode присвоено значение
TEST
илиON
),новый пользователь, который не является владельцем ноды (node-owner), делает свою первую транзакцию.
В этом случае необходимо в запросе в поле
certificates
передать цепочку сертификатов пользователя; в других случаях полеcertificates
является необязательным.Примечание
Поле
certificates
в запросе на публикацию транзакции RegisterNode является обязательным при использовании PKI или тестового режима PKI (то есть когда в конфигурационном файле ноды параметру node.crypto.pki.mode присвоено значениеON
илиTEST
. В этом случае полеcertificates
должно содержать цепочку сертификатов, которая соответствует публичному ключу в полеtarget
транзакции.
Для каждой транзакции предусмотрен отдельный protobuf-файл, описывающий поля запросов и ответов. Эти поля универсальны для запросов по gRPC и REST API и приведены в статье Транзакции блокчейн-платформы.
Примечание
Для отправки транзакций в блокчейн также можно использовать REST методы POST /transactions/broadcast и POST /transactions/signAndBroadcast.
BroadcastWithCerts¶
Метод используется для отправки транзакции RegisterNode и требует тех же входных параметров, что и метод Broadcast.
Поле certificates
является обязательным и должно содержать цепочку сертификатов, которая соответствует публичному ключу в поле target
транзакции.
Примечание
Для отправки транзакций в блокчейн также можно использовать REST методы POST /transactions/broadcast и POST /transactions/signAndBroadcast.
Получение данных транзакции¶
Используйте метод TransactionInfo
, чтобы получить данные транзакции.
Метод требует ввода одного параметра запроса:
tx_id
– ID транзакции, о которой запрашивается информация.
В ответе метода TransactionInfo
содержится следующая информация о транзакции:
height
– высота блокчейна, на которой была произведена транзакция;transaction
– название транзакции;
а также данные транзакции, аналогичные ответу метода Broadcast
.
Получение данных транзакции, находящейся в UTX-пуле¶
Используйте метод UnconfirmedTransactionInfo
, чтобы получить данные транзакции, находящейся в UTX-пуле. В ответе метода содержатся данные транзакции, аналогичные ответу метода Broadcast
.