Есть ли готовые решения/сервисы для получения событий от смарт контрактов на сервере?
я работаю над проектом где нужно на стороне бекенда отлавливать события от смарт контрактов. Есть ли готовые решения или сервисы которые помогают отлавливать события и передавать их на бекенд?
Основное требование отказоустойчивость. Событие всегда должны быть доставлены на сервер. Если бекенд не доступен, то доставить их после возобновления работы бекенда.
Смотрел в сторону moralis.io в нем есть функционал отлова событий от контрактов. Но к нему остаются вопросы по отказоустойчивосте.
Кто нибудь сталкивался с такой задачей? Есть ли готовые решения? Или писать самому.
Ответы (1 шт):
Если есть прямой доступ к узлу, то самый простой и надежный способ - после появления нового блока извлекать "зашитые" в него события с помощью метода eth_getLogs (для JSON RPC или аналогичного).
При этом следует учитывать возможность форков - надо либо ожидать когда блок "прикроется" 5-6 блоками сверху, либо, если нужна сверх-оперативность, проверять, не изменился ли у последнего обработанного блока хеш и подтягивать заместившую его цепочку.