Отслеживание событий в блокчейне посредством gRPC интерфейса¶
gRPC-интерфейс имеет возможность отслеживания определённых групп событий, происходящих в блокчейне.
События формируются в стримы, которые приходят в gRPC-интерфейс по подписке.
Включение gRPC-интерфейса и его настройка выполняются через конфигурационный файл ноды, которая будет прослушиваться интерфейсом.
Для инициализации подписки отправьте запрос SubscribeRequest(startFrom, transactionTypeFilter)
, где используются следующие параметры:
startFrom
- момент начала стрима, возможные варианты:CurrentEvent
- получение событий от ноды в реальном времени по мере поступления,GenesisBlock
- получение событий с самого первого блока,BlockSignature
- получение событий после указанного блока.
transactionTypeFilter
- фильтрация транзакций, которые будут приходить внутри событий, возможные варианты:Any
- все транзакции,Filter
- в событиях будут содержаться только те типы транзакций, которые будут указаны в списке внутри фильтра,FilterNot
- в событиях не будут содержаться только те типы транзакций, которые будут указаны в списке внутри фильтра.
Вместе с запросом отправляются метаданные для авторизации, включающие токен или фразу api-key
. Поддерживаются оба варианта авторизации - по api-key
и токену.
После оформления успешной подписки нода начнет стриминг следующих событий:
MicroBlockAppended
- смайненный микроблок с параметрами:transactions
- полные тела транзакций из микроблока.
BlockAppended
- смайненный блок с параметрами:signature
- подпись блока,reference
- подпись предыдущего блока,tx ids
- список ID транзакций из блока,miner address
- адрес майнера,height
- высота блока.
RollbackCompleted
- событие отката блокчейна с параметрами:return to block signature
- подпись блока, до которого необходимо откатиться,rollback tx ids
- список ID транзакций, которые будут удалены из блокчейна.
AppendedBlockHistory
- если в запросе на подписку не был выбран параметрCurrentEvent
, клиент будет получать данный тип событий до тех пор, пока не дойдет до текущей высоты в блокчейне и тогда переключится на остальные события:signature
- подпись блока,reference
- подпись предыдущего блока,transactions
- полные тела транзакций из блока,miner address
- адрес майнера,height
- высота блока.
ErrorEvent
- событие информирует о возникновении ошибки. Типы ошибок:GenericError
- общая или неизвестная ошибка с текстом сообщения,MissingRequiredRequestField
- незаполненное обязательное поле из SubscribeRequest,BlockSignatureNotFoundError
- подпись запрошенного блока из SubscribeRequest отсутствует в блокчейне,MissingAuthorizationMetadata
- отсутствие авторизационных метаданных при отправке SubscribeRequest,InvalidApiKey
- неверная фраза api-key, в случае авторизации c api-key,InvalidToken
- неверный токен, в случае авторизации по OAuth.