Почему вебсокет выводит очень медленно данные из мемпула?
Здравствуйте, смотрю мемпул через библиотеку web3. Подключаюсь с личным вебсокетом от Alchemy.
Вроде бы все должно быть отлично, но почему то выводит очень медленно мемпул(по сравнению с реальным количеством транзакций, проходящих в этот момент).
Выводит примерно 3-4 транзакции в секунду(это все соответственно пендинг). Очень медленно!
По началу я думал что проблема в языке, потому что я писал на медленном питоне, но позже я воссоздал структуру через очень быстрый Раст, итог один и тот же. Я пытался ставить поиск транзакций моего кошелька, отправлял сам себе транзакцию, но все равно меня либо вообще не выводило, либо выводило когда транзакция была уже подтверждена.
На гитхабе я нашел информацию, что в евм нет общего мемпула, и ноды выводит только свой локальный мемпул. Если это правда, то как собственно смотреть общий мемпул и видеть все транзакции блокчейна??
Код я не брал из головы, все взято из документации и гитхаба. Может быть кто то сталкивался с проблемой и знает как вообще с этим бороться!?
Общего мемпула нет. У каждой ноды он свой. Никак нельзя смотреть общий. Все смотрят свой мемпул или мемпул той приватной ноды, доступ к которой купили, и надеятся, что он +- совпадёт в каких-то частях с мемпулом той ноды, которая смайнит блок. Сервисы, которые продают доступ к приватным нодам, в свою очередь соревнуются между собой, чтобы повысить эту вероятность. Алхеми - это 1 из 3х лидеров рынка, поэтому все норм. Скорость тут не очень решает, решает только цена газа. Если ваш скрипт успевает выполниться между блоками и отправить транзакции, а это в этериуме около 50 секунд, то вы везде успеваете.
Мой код смотрели? https://github.com/BedrosovaYulia/EthereumPendingT... он везде успевает.
Код посмотрел, +- такую же логику использую на расте.
Суть в том, что мне необходимо смотреть мемпул на BSC, а там блок раз в 10-15 секунд, в котором по 100-200 транзакций лежит.
Катастрофически медленно выводит
Corn385, пусть выводит не в консоль, а в текстовый лог если вам надо следить за ним, и запускайте его как фоновый процесс. 10-15 секунд - это дофига времени.