свою базу данных(или хоть в файлик).
Да, идентифицировать что это конкретный юзер перевел нужную сумму, чтобы зачислить на его баланс в приложении.
Эти данные вы можете получить из ивента. Вот пример https://ethereum.stackexchange.com/a/96772 Далее делаете с этими данными что хотите. Мне кажется что это самый простой вариант, вы дольше будете разбираться в работе моралиса и тп сервисов
да, но не оч надежно по-идее - тк если рпц урл помер или бекенд лежит, то не затрекается эвент
Ну вы сами понимаете, что всё это можно обойти) Ненадёжный rpc решается использованием нескольких. Упавший бэк и затерянные ивенты решаются записью на диск последнего прослушанного блока, а при рестарте идет синк с этого блока.
Есть еще реорганизации сети, которые обрабатывать мало приятного, правда для BSC судя по всему же не актуальны🙂 (которые в сабграфах из коробки автоматически обрабатываются)
Ставите задержку в несколько блоков, например в 20, называете это "количество подтверждений сети", и слушаете ивенты только с current block - 20
могу тупить, а синк с последнего прослушенного блока это про парсинг блока или как ты скидывал пост на стаковерфлоу? спс
Согласен. Я вот слышал от разработчиков одной из бирж, что они сделать отсутствие задержки, обрабатывают транзакцию прямо из мемпула (ну или хотя бы попавшую в сеть), но закладывают какой-то риск, что транзакция будет откачена и они потеряют деньги. Но все равно на это идут ради скорости
Интересно, как они защищаются от атак здесь. Ведь конкурент может специально слать подобные транзы, что бы у тех были убытки
Я так понял это только для какого-то типа операций, деталей не знаю, просто помню такое рассказывали
Обсуждают сегодня