IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2024/03/04
~R4SAS
~orignal
~villain
@onon
&N00B
+Xeha
+r00tobo
+relaybot
+whothefuckami
AreEnn
HackerMan
KabaOS
Leastr
Most2
Nausicaa
Vort
WayBest
`
acetone
anon2
b3t4f4c3
karamba_i2p
nemiga
not_bob
osoznayka
poriori
profetikla
segfault
soos
teeth
tolik
un
unwr
weko
tetrimer На виндовый 136-й билд - ругается встроенный антивирус.
tetrimer скачивал i2pd-cmake-x64.exe.zip
tetrimer clang версия запустилась без ругани.
tetrimer Хотя, возможно, там на виндовой машине вирус сидит.
Vort антивирус говно
Vort может мне кто-нибудь напомнить, какие данные флудфил отправляет через исходящие зондирующие туннели? (за время жизни туннеля около 6 мегабайт отправленных данных набирается)
orignal а на флудфиле больше ничего нет?
Vort ну только IRC
Vort запросы RI наверно?
orignal ну тесты понятное дело
orignal запросы на построение
orignal а зачем флудфилу их запрашивать через тоннели?
Vort 6 мегов это как-то дофига для тестов и построения моих туннелей
Vort там жирное что-то отправляется
orignal запросы RI для дейстинейшинов
orignal но у тебя только ирк
orignal еще ясен пень собственно зондирование
Vort ладно, может потом найду
Vort я там одну странность заметил
Vort и пока пытался с ней разобраться, нашёл свою ошибку :(
Vort сейчас PR сделаю
Vort надеюсь, что я не ошибся с тем, что нашёл ошибку
Vort в общем, с чем я пытался разобраться - только создаётся исходящий exploratory туннель, туда сразу начинает переть хренова туча данных
Vort я подумал, может пинги как-то не так считаются
Vort и нашёл свой косяк
Vort но он, скорее всего, не влияет
Vort надо дальше разбираться
Vort ну а проблема (как мне кажется) в том, что только созданный туннель ещё не потестирован - может он вообще не годный
Vort а туда сразу все данные начинают переть. почему?
orignal ну заондирование начинается
Vort у меня и так дофига RI в базе, вроде при таком количестве зондирования или нету или мало
Vort источник трафика можно и позже найти, меня больше беспокоит балансировка
Vort [13:57:13] <Vort> у меня и так дофига RI в базе, вроде при таком количестве зондирования или нету или мало
Vort [13:57:48] <Vort> источник трафика можно и позже найти, меня больше беспокоит балансировка
Vort я так понимаю, выбором туннеля занимается TunnelPool::GetNextTunnel
Vort в этой функции мне кажется странным код (tunnels.size ()/2 + 1), рассмотрю его сейчас получше
Vort orignal: какая вообще логика выбора туннеля в TunnelPool::GetNextTunnel должна быть? не пойму, почему алгоритм выдаёт предпочтение первым туннелям в списке
Vort в частности, какой смысл в tunnels.size ()/2
Vort первая половина туннелей чем-то лучше?
orignal Vort они там отсортированы по времени создания
orignal понятно что предпочтение отдается более свежим
orignal соотвественно ервая половина лучше тем что не говно мамонта
Vort то есть, дольше проживут?
orignal севежесозданный тоннель как раз протестирован
orignal фактом своего создания
orignal если бы он не работал он бы не созадлся
Vort теперь понятно
Vort вижу использование ExploratoryPool ещё в HandleDatabaseStoreMsg и HandleDatabaseLookupMsg. наверно они дают трафик
orignal ну так это ответы на зондрование приходят
Vort имеется в виду NetDb::Explore ?
Vort многовато. ладно, позже гляну
orignal смотри
orignal там счнала идет запрос хэшей ротуреов
orignal а потом если нету то саих роутеров
Vort "exploratory every 30 seconds". а трафик прёт постоянно
Vort где-то 17 килобайт/сек получается. или даже больше
orignal это Expolre вызывается раз в 30 секунд
Vort больше... 2234696102:me ⇒ B0-j P ⇒ yTXA L ⇒ ( 245ms ) expiring (exploratory), 19.50 MiB
orignal а отработка ответов
Vort на грани возможности L узлов
orignal значит надо разбираться
Vort угу
orignal точннее надо смотреть может все запросы роутеров идут через него
Vort orignal: трафик идёт из NetDb::HandleDatabaseLookupMsg. за 5 минут аптайма - 3000 вызовов
Vort уже 4 тыщи )
Vort через exploratory прошло 6359 раз из 18551 DatabaseLookup всего
Vort то есть, 34% всех ответов идут через exploratory
Vort 12 минут аптайма - 11109 из 33356
Vort 1000 запросов в минуту - дофига для зондирования
Vort orignal: в i2pd есть вот такой код: if (replyTunnelID) ..... outbound = exploratoryPool ? exploratoryPool->GetNextOutboundTunnel () ..... outbound->SendTunnelDataMsgTo (replyIdent, replyTunnelID, replyMsg);
Vort то есть, если в запросе есть replyTunnelID, ответ направляется в ExploratoryPool. это нормально?
orignal это в каком месте?
Vort NetDb::HandleDatabaseLookupMsg
orignal когоди
orignal lookup это запрос к флудфилу
orignal а почему ответ идет через тоннель?
orignal посмотрю
Vort "<~orignal> а почему ответ идет через тоннель?" потому что DATABASE_LOOKUP_DELIVERY_FLAG
orignal это я понимаю что у них в тоннель
orignal а нам то зачем наш грузить?
orignal бросить в IBGW напрмяую и все
Vort опять баг?
Vort я хз короч
orignal нет не думаю
orignal была какая то причина возможно
orignal спрошу ка я у деда
Vort лучше вспомнить, чтобы ничего не поломать
orignal скорее всего я даже не думал
weko exploratory только для наших запросов RI
weko насколько я знаю, делаем мы это достаточно редко
weko потому такое количество явно свидетельствует что где то баг
orignal ну видишь Vort нашел что мы в них ответы шлем
orignal вопрос нахуя
weko как флудфил мы всегда напрямую отвечать должны
weko orignal: нахуй не надо
orignal не всегда можем
weko флудфилы не анонимны и не должны быть
orignal вариант с тоннелем может быть
orignal а если ты не можешь соединиться с концом того тоннеля?
weko orignal: у Vort наверняка есть и NTCP2, и SSU2
weko так что вот он то может
weko orignal: ну вот я говорю что наверняка Vort всегда может
weko потому что оба транпорта есть
orignal ну вот я хочу уточнить у деда
orignal о причинах
weko ну всегда напрямую, и только если не можем иначе
weko это ж запросы к флудфилу
weko а флудфил не анонимен и не должен быть
orignal я кажется вспомнил зачем это было сделано
weko ну и зачем
orignal чтобы разгрузить флудфилы
orignal во времена эль гамаля установка прямоого соединения жрало ресурсы
weko а через туннели что-ли нет?
orignal так тоннель построили 1 раз и он стоит
orignal соединения обычно живые
weko а, ну да
weko понял
weko грузим не себя, грузим концы))
weko ну тогда вернуть надо
orignal но концы то не флудфилы на них нагрузка меньше
onon1 Лучше с дедом посоветоваться, вдруг там ещё причины были...
weko onon1: даже если и были... то скорее всего уже нету
weko в правильном состоянии такого быть не доожно
Vort короч похоже это ещё одна из причин тормозов сети
Vort протягивание ответов флудфилов через L узлы
orignal хорошая находка
orignal сегодня починю
relaybot 13mittwerkz: а зачем этот комент?
relaybot 13mittwerkz: тест
orignal что тебе?
relaybot 13mittwerkz: > orignal: что тебе?
relaybot 13mittwerkz: ну я смотрю исходники ш2з
relaybot 13mittwerkz: там функция сделать сертификат и коммент к ней сертификат хд
relaybot 13mittwerkz: хорошая подсказочка)
Shogun Видели, Сёгун уже вышел.
orignal в каком файле?
Vort кстати, что-то сайт этот не открывается. xmpp.ilita.i2p
orignal что пишет?
Vort писало ERR_NAME_NOT_RESOLVED. не находило лизсет, похоже. уже нашло, с хрен его знает какой попытки
orignal ну то есть лизсет не найдет
orignal у него там какой старый релиз стоит
Vort orignal: кстати, флудфил уже запускал? надо же и с количеством банов разобраться
orignal счас посмотрю лог
Vort важно отношение "is banned" к "DatabaseSearchReply"
Vort само по себе число имеет мало смысла, просто надо его с моим сравнить
relaybot 13apophis: > orignal: у него там какой старый релиз стоит
relaybot 13apophis: не старый, а предыдущий. Галвное, то ... что у меня работает сразу, с первого раза.
orignal Transports: Router 8O1PPXwqFuCjNtidjvM8jIadtwia06p3kdx-Ax80-BQ= is banned. Peer dropped
orignal за последние сутки один
Vort я попросил просто "is banned"
Vort на флудфиле
Vort с дебаг уровнем
Vort или там не дебаг?
orignal нет там не дебаг
orignal там info
Vort хреново
orignal счас включу
orignal включил
Vort надо узнать это значение
Vort а, ну да. достаточно будет нескольких минут
Vort этими сообщениями будет срать с огромной скоростью, наберётся быстро
Vort статисткиа
orignal несколько раз в секунду
Vort важно отношение к количеству DatabaseSearchReply
Vort чтобы я мог сравнить
orignal а какое на него сообщение?
Vort да просто grep "DatabaseSearchReply"
onon1 Скажи, чего нужно посчитать, может я тебе статистику могу дать.
Vort onon1: флудфил?
onon1 Есть один
Vort коммит f1058410 или новее?
onon Ворде i2pd-b9773c88e4ae8a889fe7ab7c4cdb274fc722da50
orignal DatabaseSearchReply 15094
orignal is banned 744
onon Могу пересобрать, скажи что нужно, только времени может занять
weko а разве профилировашик умеет банить? не видел там такой функции
weko я видел там только параметры про использование роутера нами
weko ну или я плохо смотрел
orignal это не профилировщик делает
orignal это транспорты
orignal когда мы пытаемся до узла достучаться и не можем то бан на 8 минут
weko бан на наши подключения
weko верно?
weko а к нам то могут
Vort orignal: спасибо. 5%. значит, это мой провайдер чудит в основном (у меня 41%)
Vort weko: ну по логике - да, но я не проверял
Vort нафига моему провайдеру банить Зимбабве? :D
weko профилировщик очень сложная тема
Vort ладно, главное, что это не такая масштабная проблема, как я предполагал
Vort weko: тут как раз просто. сфейлился коннект - идёт в бан
Vort ну и я лично видел эти фейлы коннектов
weko ну тут надо думать насколько при каких условиях
Vort было два варианта - или мой провайдер чудит или флудфилы дохлые
Vort похоже, провайдер
Vort ну если кто-то ещё соберёт данные - будет хорошо
weko если всегда подключались, один раз не вышло - можно и ещё пробовать сразу
weko а если два подряд - тогда ждать
Vort weko: а это надо специально сбор данных настриавать, чтобы понять, какая ситуация обычная. но я видел, что не лезет вообще никак
Vort weko: а два раза обычно и так есть - по NTCP2 и по SSU2
Vort ещё бывает ipv4+ipv6
Vort так что и 4 раза
Vort и вот если всё сфейлилось - тогда бан
weko то есть нужно свести к минимум ложноположительность временных проблем
onon А бывают ipv6-only узлы?
weko кншн
onon А флудфилы в основном ipv4-only
weko у i2p вообще есть недоделка в вопросе разных транспортов и L3 сетей
orignal счас займусь
weko onon: ipv6 only обычно имееют ipv4 за натом
Vort "<weko> то есть нужно свести к минимум ложноположительность временных проблем" учти, что есть две различных ситуации: 1. "пакет потерялся" 2. узел сильно перегружен. в первом случае стоит сглаживать эффект. во втором случае, наоборот, так
Vort ой узел надо разгружать. а вот как отличить эти две ситуации - непонятно
weko ну второе не ложное
Vort мне кажется, что нынешний вариант потыкать примерно два раза - вполне годится
weko ну когда перегружен постоянно будет фейл
Vort нет, он может ответить через 5 секунд допустим
Vort а потом вообще не ответить и оборвать коннект
weko ну это тоже учитывать надо
weko вот видишь профилирование не просто
Vort надо для начала вручную их протыкать
Vort чтобы понять, что есть обычная ситуация
Vort я думаю, есть 3 категории - 1. нормальная доступность. 2. цензура (или оффлайн). 3. тормоза и глюки
Vort тормозные и глючные узлы можно ещё дальше категоризировать - по лагу, по проценту неответов
relaybot 13mittwerkz: > Vort: а коммент mittwerkz имел в виду вот этот: github.com/PurpleI2P/i2pd/blob/e85e96bc355895d1aa557eb1d39a92bc219c34be/daemon/I2PControl.cpp#L385
relaybot 13mittwerkz: да
tetrimer Мне кажется, что вы прямо сейчас изобретаете новые очереди пакетов.
orignal где?
tetrimer Ну вот выше пытаются разложить узлы на три категории доступности.
orignal передлал отправку напрямую
weko а при чём тут очереди
weko <orignal> передлал отправку напрямую
weko увидим, насколько РЕАЛЬНО нагружается флудфил
orignal вот я счас пересобираю
weko лиссетов то куда меньше чем запросов роутеров
weko нет. хуйню сморозил
weko запросов больше впринципе чем публикаций
weko а мы экономили на ответах на запросы
tetrimer weko: потому, что мы про дальнюю сторону не знаем ничего в плане производительности/загруженности, кроме длины очереди пакетов туда.
weko так тут вопрос подключения
weko а не когда оно уже есть
orignal кстати ты прав надо еще публикации проверить
weko orignal: ответы на публикации да надо
orignal там же тоже в тоннель кидаются
tetrimer При подключении - логично всех считать одинаково плохими.
weko tetrimer: нет, по истории взаимодействии с конкретным узлом можно делать выводы. это и есть профилирование
tetrimer Злопамятность это. :)
weko ну да
weko естественно ограниченная по времени
Vort weko: загрузка ответами большая только относительно возможностей L узлов. 10-30 килобайт/сек
weko ну да
Vort важнее то, что напрямик у ответа должен быть выше шанс дойти целым и вовремя
weko но я говорил про нашу нагрузку
weko Vort: конечро
weko это при обновлении флудфилов снизит нагрузку
weko кстати, насколько я помню, кто-то жаловался на пики нагрузки. возможно, это оно и было
orignal возможно
Vort с последним коммитом нагрузка на exploratory туннели снизилась раз в 100
orignal там еще одна бага есть
orignal счас поправлю
Vort 914529758:me ⇒ X5P3 P ⇒ MXRS L ⇒ ( 160ms ) expiring (exploratory), 173.68 KiB
Vort если это касается аналогичных запросов, то их в разы меньше
orignal ну там мелкий баг
orignal починил
orignal и сделал ответ на публикацию
Vort теперь нагрузка выглядит вот так: 1953523604:me ⇒ T2Tm N ⇒ DsvY L ⇒ ( 393ms ) established (exploratory), 51.20 KiB
Vort похоже, что там ничего кроме пингов теперь нету. ну почти ничего, конечно же
orignal еще запросы на постороени новых
Vort это теперь нагрузка на L узлы будет ровнее. вместо чередующейся перегрузки и безделия
orignal когда релиз выйдет ))
orignal и все обновлятся
onon1 Нам бы ещё с пустыми туннелями проблему решить...
Vort точнее, с адекватными лимитами
Vort сами туннели мало чем мешают
Vort мне кажется, что стоит разобраться, как оценивать нагрузку на CPU. и считать CongestionLevel из неё. но это уже после релиза, думаю
orignal я еще вспомнил почему через тоннели
orignal в то время дескрипторов вечно не хватало на флудфиле
orignal потому что там на каждую SSU1 сессию был свой таймер
onon А вот если бы в коде написали комментарий, что мол, упираемся в лимит, вынуждены сделать вот так...
Vort для редких случаев можно и так
Vort ещё вариант - комментарий в коммите
Vort я обычно в таких случаях лезу в историю git и часто нахожу, почему было сделано изменение
onon Не лучше ли, когда ответ у тебя сразу под носом...
onon Или мы не ищем лёгких путей? =)
orignal но иногда такие комметарии есть
orignal все хорошо в этом последнем изменении только старая проблема опять вылезла
orignal слищком много NTCP2 сессий