~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
+Xeha
+relaybot
DUHOVKIN
Guest8639
HackerMan
Most2
Nausicaa
Ruskoye_911
Vort
`
ananas
anon3
dressedie
nemiga
not_bob_afk
plap
poriori_
profetikla
segfault
soos
teeth
un
weko_
whothefuckami
tetrimer
На виндовый 136-й билд - ругается встроенный антивирус.
tetrimer
скачивал i2pd-cmake-x64.exe.zip
tetrimer
clang версия запустилась без ругани.
tetrimer
Хотя, возможно, там на виндовой машине вирус сидит.
Vort
антивирус говно
Vort
virustotal.com/gui/file/19876c3dd99d873af5da1175159d36ab5cc16f3cc99f31e639e63fffd17d5c79?nocache=1
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
фактом своего создания
orignal
если бы он не работал он бы не созадлся
Vort
теперь понятно
Vort
вижу использование ExploratoryPool ещё в HandleDatabaseStoreMsg и HandleDatabaseLookupMsg. наверно они дают трафик
orignal
ну так это ответы на зондрование приходят
Vort
имеется в виду NetDb::Explore ?
orignal
да
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
github.com/PurpleI2P/i2pd/blob/e85e96bc355895d1aa557eb1d39a92bc219c34be/libi2pd/NetDb.cpp#L1090-L1123
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
грузим не себя, грузим концы))
orignal
да
weko
ну тогда вернуть надо
orignal
но концы то не флудфилы на них нагрузка меньше
orignal
да
onon1
Лучше с дедом посоветоваться, вдруг там ещё причины были...
weko
onon1: даже если и были... то скорее всего уже нету
weko
в правильном состоянии такого быть не доожно
Vort
короч похоже это ещё одна из причин тормозов сети
Vort
протягивание ответов флудфилов через L узлы
orignal
да
orignal
хорошая находка
orignal
сегодня починю
relaybot
13mittwerkz: xmpp.ilita.i2p/upload/4565fcd0edc405b615075a9a862f0bcf8c88a36b/YEalrlVMOvtEC5IFlnaXiKDivc8Sj9hGGRj5kCmS/62307d06-8869-4635-a845-db57296a09a5.png
relaybot
13mittwerkz: а зачем этот комент?
relaybot
13mittwerkz: > xmpp.ilita.i2p/upload/4565fcd0edc405b615075a9a862f0bcf8c88a36b/YEalrlVMOvtEC5IFlnaXiKDivc8Sj9hGGRj5kCmS/62307d06-8869-4635-a845-db57296a09a5.png
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
а коммент mittwerkz имел в виду вот этот: github.com/PurpleI2P/i2pd/blob/e85e96bc355895d1aa557eb1d39a92bc219c34be/daemon/I2PControl.cpp#L385
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 сессий