Есть ли готовые решения/сервисы для получения событий от смарт контрактов на сервере?

я работаю над проектом где нужно на стороне бекенда отлавливать события от смарт контрактов. Есть ли готовые решения или сервисы которые помогают отлавливать события и передавать их на бекенд?

Основное требование отказоустойчивость. Событие всегда должны быть доставлены на сервер. Если бекенд не доступен, то доставить их после возобновления работы бекенда.

Смотрел в сторону moralis.io в нем есть функционал отлова событий от контрактов. Но к нему остаются вопросы по отказоустойчивосте.

Кто нибудь сталкивался с такой задачей? Есть ли готовые решения? Или писать самому.


Ответы (1 шт):

Автор решения: Mad Jackal

Если есть прямой доступ к узлу, то самый простой и надежный способ - после появления нового блока извлекать "зашитые" в него события с помощью метода eth_getLogs (для JSON RPC или аналогичного).

При этом следует учитывать возможность форков - надо либо ожидать когда блок "прикроется" 5-6 блоками сверху, либо, если нужна сверх-оперативность, проверять, не изменился ли у последнего обработанного блока хеш и подтягивать заместившую его цепочку.

→ Ссылка