IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2023/04/04
~R4SAS
~orignal
~villain
&N00B
+Xeha
+relaybot
AreEnn
Leopоld
Most2
Nausicaa
Nikat
Opax
Vort
WayBest
`
acetone
anon2
anontor
b3t4f4c3
banona_
fidoid
grimreaper
itsAMe
karamba_i2p
ncop
nemiga2
onon
onon1
overflow
platipussy_
polistern
poriori
profetikla
qend
r00tobo
soos
teeth
tensor
typhoon
uis
un
user
weko
whothefuckami
колдыр
orignal докопался до сути
orignal ClientDestination::CreateStreamingDestination
orignal вот здесь проблема
orignal из констуркутоа I2PServerStream вызывается
orignal m_PortDestination = localDestination->CreateStreamingDestination (inport > 0 ? inport : port, gzip);
orignal и все портит
orignal Zel усе залил
Zel Blinded message
Zel2 Blinded message
orignal ну по крайней мере что при -s HUP серверный тоннель отваливается починил
Zel Blinded message
orignal не уверен
orignal я пробовал только HUP
Zel Blinded message
orignal я не смотрел что там в веб морде сделано
weko [02:25:29] <orignal> я не смотрел что там в веб морде сделано
weko else if (cmd == HTTP_COMMAND_RELOAD_TUNNELS_CONFIG)
weko i2p::client::context.ReloadConfig ();
orignal ну так пробовал кто нибуль?
Vort что? HUP или Reload ?
orignal а то может там дальше есть сценарий где чинить надо
orignal я то починил простейший
Vort а, ну это лучше линукс юзерам проверять
weko_ Понажимал, вроде работает
orignal может просто еще какой то сценарий ломает
orignal типа добавление или убирание тоннелей
tetrimer Могу потестить вечером или завтра с утра.
orignal да когда время будет
orignal не срочно
orignal так вопрос тут вот в чем
orignal там же ошибка в логе была сразу видна
orignal что не отвечает потому что нет ацептора
tetrimer orignal: Какой уровень лога выставлять?
orignal не помню
ShadowBroker у меня тут проблема с носками i2p. Can’t complete SOCKS5 connection to. конфиги все правильные у меня. что может быть не так?
orignal порт 4447 ,
ShadowBroker да, порт 4447
orignal ты небоось в клир полез
orignal через этот прокси
ShadowBroker да, хочу попытаться с этого прокси в клирнет выходить
orignal а ты аутпроси настроил?
orignal правда он там все равно не работает потом что там сокс4
orignal а на 5 никто не переделал
ShadowBroker а, я думал что там носки пятые
ShadowBroker теперь всё понятно
ShadowBroker однако до сих пор не работает
orignal смотри jeff_ это запилил во времена когда у тора был 4-ый сокс
orignal а на 5 никто там и не переделал
orignal 5 в смысле оутпрокси
orignal обычный то 5
orignal потому что никому не надо
ShadowBroker хорошо. остаётся только тор
orignal так я не понимаю зачем тебе i2p с выходом в клирнет через тор
Vort так можно наверно туннель обычный до прокси сделать?
orignal так он похоже не понимает как оно здесь работает
Vort не обязательно же прокси через прокси пропускать
Vort а дальше можно чем-то наподобие SwitchyOmega выбор сделать
Vort ну я теоретически говорю, сам не проверял
orignal он считает что i2p через сокс сам по себе в клдир ходить будет
orignal он прав в том что это надо бы починить и заодно UDP
Vort ну да, важная фича. хотя как по мне, сделать туннель должно быть несложно
Vort и с туннелем меньше точек отказа )
Vort если что-то глюканет, то будет понятно - что это удалённый прокси, а не локальный
orignal так она работала просто тогда тор был sock4
Vort ну так аутпрокси - это же не только (и наверно не столько) тор, как я понимаю
orignal ну так он то для тора делал
orignal R4SAS окончательное решение твоего вопроса
orignal можешь переводить на шланг
weko_ [17:40:16] <Vort> ну да, важная фича. хотя как по мне, сделать туннель должно быть несложно
weko_ [17:40:30] <Vort> и с туннелем меньше точек отказа )
weko_ [17:40:43] <Vort> если что-то глюканет, то будет понятно - что это удалённый прокси, а не локальный
weko_ Локальный прокси по-хорошему не должен глючить
weko_ А если так, то и туннель может
orignal weko_ расскажи что там за проблема с UDP?
weko_ orignal: ну во-первых проблема при коннекте на сервер с нескольких клиентов - в нескольких играх проявилось, сервер что-ли "путает" пакеты или что-то типо того. Второе это то, что несколько UDP серверов (возможно и клиентских туннелей) не работают на одном
weko_ адресе
weko_ Насчёт первого - воспроизводимость постоянная
weko_ Кстати была ещё проблема, но она была один раз и воспроизвести ещё раз не удалось
orignal по порядку что такое "с нескольких клиентов"?
orignal b32 у них одинаковый или разный?
weko_ Третья проблема - не работает перезагрузка туннелей на них. Как минимум новые не появляются, старые не удаляются
weko_ orignal: разный
orignal перезагрузка тоннелей это другая тема
weko_ Ну это тоже к udp относится))
orignal то есть итгровой серевер к нему целпляетесь ты и Leopold например
weko_ Да
orignal и что происходит дальше?
orignal меня интересует точное описание проблемы
orignal мамбл же как то работал
orignal R4SAS собралось с 14 шлангом без единого варнинига
weko_ Пока один игрок из i2p, всё хорошо. Как только заходит второй, с первым +- нормально, а у второго проблемы
weko_ Я понимаю про точное описание, но я не могу его дать, ибо мы так и не смогли понять причину такого поведения в играх.
weko_ 1) можно провести тепличный тест
weko_ 2) можно ещё раз посмотреть дамп
weko_ Конкретно в игре - либо не работает часть управления (Mindustry), либо кикает другой игрока (Xonotic, она чисто udp кстати), либо начинается ад с телепортациями и перемещениями через стены (Teeworlds, тоже вроде чисто udp)
weko_ [18:57:26] <orignal> мамбл же как то работал
weko_ В конечном итоге мы все на TCP режиме )))
weko_ Я смотрел дамп, порты вроде где нужно совпадают. Моё предположение, что i2pd иногда пакет отправляет "не туда" - не тому клиенту
orignal ну так надо вот понять что именно происходит
weko_ Или же отправляет серверу не с того порта
orignal ладно посмотрб куда отправляет
weko_ Меня натолкнула мысль на путаницу пакетов тот факт, что в Mindustry почему то иногда второй игрок начинал строить вместе со мной (хотя он такой команды не давал) или же начинал добывать ту же клетку, что и я, с задержкой примерно как у i2p.
weko_ Тоесть эффект стройки или добычи был на туже клетку, что и мой
orignal ну вот ты должен поизучать вопрос глубже
weko_ Как будто пакет о моём действии пришёл мне
orignal какие датаграммы откуда прилетают и куда отправляются
weko_ Можно для начала сделать тепличный тест - написать простые сервер и клиент, чтобы проверить что куда приходит
weko_ Проблема дампа в играх - пакетов очень много, 5-10/с
orignal именно надо сделать вопрозводмый сценарий
weko_ Да, при чём с понятным заранее кодом
orignal а так искать то не знаю что
Vort а как игра идентифицирует игрока?
Vort удалённый IP же локальный по факту
Vort вроде бы разные 127.*.*.* IP должнгы использоваться, но я так и не понял, как это работает
Vort у меня когда я проверял, то одни IP были, то другие
orignal 127.*.*.* разные только на лиунксе
Vort да я что-то такое и на винде видел в Wireshark
orignal на видне такой bind делать не получается
orignal проверяли
orignal в i2pd всегда под #ifdef linux это
Vort просто для начала надо понять, как игра различает игроков
weko_ [19:13:00] <Vort> а как игра идентифицирует игрока?
weko_ По порту если айпи один
Vort weko_: а вы на разных портах тестировали?
weko_ Ну если прямо говорить то просто разные сокеты
orignal порту с которого пакет прилетел?
weko_ Vort: так они по умолчанию рандомные
weko_ Клиентские порты же
orignal weko_ в UDP нет сокетов
orignal у тебя там один на всех
Vort weko_: то есть, грубо говоря, два канала: 127.0.0.1:222 (сервер) <-> 127.0.0.1:333 (клиент 1) + 127.0.0.1:222 (сервер) <-> 127.0.0.1:444 (клиент 2) ?
weko_ А, ну значит должно быть по клиентскому порту
orignal через него все пакеты приходят
weko_ Я вроде в локалке с одного адреса тестировал
orignal и ты дальше по endpoint различаешь
orignal как в SSU2 например
weko_ Vort: верно
weko_ orignal: я с udp не работал, подробностей не знаю
weko_ Тем более, были разные 127.x.x.x адреса
weko_ По дампу проверял
Vort weko_: и где же задаются эти порты :333 и :444 (в примере) ? у игрока 1 и игрока 2 в конфиге?
weko_ Vort: нигде
weko_ Они не задаются
weko_ Случайные
Vort i2pd выбирает?
weko_ Я не помню что у меня там выходило
Vort а, он небось в зависимости от ключа берёт
weko_ Не помню, менялись ли они после i2p
weko_ Надо проверить ещё рад будет
Vort то есть, по-хорошему IP+порт, а по-плохому - 127.0.0.1+порт
Vort для теста даже сервер специальный не нужен, скорее всего
Vort Wireshark на сервере запустить и всё
Vort то есть, нужна программа которая будет слать пакеты с заданным допустим через командную строку содержимым
weko_ Хотите запущу сервер миндастри - игра свободная - если хотите, сможете проверить
Vort к примеру, игрок 1 шлёт байт 0x01, игрок 2 шлёт байт 0x02
weko_ Vort: ну так да понятно
weko_ nc называется
weko_ Я так и хотел изначально
Vort nc - сервер? или клиент?
weko_ Но nc не очень умный для такого
weko_ nc и то и то
Vort ну так примитивный скрипт для него сделать...
Vort хотя если не умный, то пусть просто сервером будет
orignal i2pd назначет endpoint
weko_ Ну вот как раз проще написать простой udp сервер
orignal по крайней мере должен
orignal но это не точно ))
Vort да nc за сервер сойдёт. а клиента надо написать
weko_ Vort: наоборот))
Vort weko_: вот установил бы Mono, было бы проще. на C# это скорее всего за 5 минут можно заделать
weko_ nc сервер не очень умный в плане нескольких Климентом
Vort а. ладно
weko_ Можно, но проверить не выйдет
Vort хотя умным надо же быть не серверу, а Wireshark`у
weko_ Vort: на python тот же срок скорее всего))
weko_ клиентов*
Vort weko_: так почему ещё тогда не написал? :)
weko_ Руки не доходили
Vort просто я бы точно сделал ) но если не хочешь Mono ставить, то плохо
weko_ Так ты сам и проверить можешь
weko_ Можешь даже себе сервер миндастри поставить
weko_ Там обычный .jar
Vort самое сложное, небось, правильно туннели в конфиге настроить
weko_ В i2pd настраиваешь серверный туннель и два клиентских
Vort ну это я про специальный клиент
Vort и сервер
weko_ Я могу скинуть свои
Vort короч ладно, я попробую сейчас быстро на C# накодить
weko_ Конфиги как раз не сложно))
Vort у меня тоже с UDP опыта не особо много. но там должно быть несложно
weko_ Я пока начну книжку по C++ читать)))
Vort интересно - удастся ли в 100 строк впихать и клиент и сервак )
R4SAS <~orignal> R4SAS окончательное решение твоего вопроса
R4SAS ась?
orignal с варнингами
orignal я все починил
R4SAS а, понял
R4SAS сейчас гляну
R4SAS все таки override-ов видать я мало тогда натыкал
orignal нет
orignal там все хуже )))
R4SAS всм
orignal я просто переимновал
R4SAS не вижу чет переименований в коммитах фиксов
R4SAS а, это другой коммит
Vort weko_: 48 строчек получилось. теперь дело за конфигами
orignal да там штук 6 коммитов
weko_ Vort: ;)
weko_ Справишься?
Vort я сейчас попробую. а там будет видно. придётся перезапуск ещё наверно делать (
Vort это получается надо создать сделать перезапуск, создать ключи, затем найти дестинейшен, прописать в конфиг и опять перезапуск. брр
Vort тьфу. криво написал
weko_ Потому что проблема номер 3))
weko_ Vort: ну через i2pd tools можно создать
weko_ Или какой нибудь уже созданный использовать
Vort а, действительно попробую уже готовый расклонировать
Vort только я не уверен что адрес его знаю )
weko_ Тот же i2pd tools поможет узнать
Vort кто-то сломал сборку clang в CI под винду :(
Vort R4SAS: глянешь? откуда-то DLL openssl-евые повылазили
Vort такс. похоже, я забыл destinationport
Vort weko_: или и без него должно работать?
weko_ Вероятно заработает
Vort значит, где-то ошибка
weko_ Если только один туннель на этом b32
weko_ Теоретически работать должно, практически - хз
weko_ Лучше проверить))
Vort а всё, нашёл ошибку
Vort копи-паста )
Vort orignal: а почему у меня работают хитрые 127 адреса? :)
Vort кстати бага пока что не вижу. сейчас чуть покрасивее вывод сделаю - и скрин скину
orignal под виндой?
Vort да, под виндой
Vort ну я скоро покажу
weko_ Vort: ты сделай чтобы много пакетов было
orignal ты думаешь оно просто так там?
Vort weko_: сделаю
orignal под виндой этот bind фэйлится
orignal если для UDP там само собой будет там че хочешь приши
Vort weko_: когда много пакетов, они тупо теряются
weko_ Vort: насколько много?
Vort orignal: ну так мы об UDP и говорим
orignal там я не помню как
Vort weko_: я пробую слать 10+10 пакетов/сек - приходит 1 пакет в несколько сек
Vort сейчас поменьше поставлю
weko_ Vort: наверное многовато
Vort да в играх там TPS 30-60 - и норм. я хз чего глючит
weko_ Хотя всё равно маловато
weko_ Странно
weko_ Пакеты не каждый тик идут конечно
Vort вот 4+4 идёт нормально. может у меня баг - консолька не успевает. хотя маловероятно
Vort буду ещё какой-то seq слать, чтобы потери было видно
Vort попробую ещё разок разогнать
Vort 10 TPS никак не тянет почему-то. вот 5 - нормально
Vort может в этом проблема?
Vort 8 TPS тоже нормально. хммм
Vort у меня бага что ли...
Vort хотя видны подлагивания на 8 - пакеты пачками приходят
Vort капец - это 8*2*2 = 32 байта в секунду сеть нормально не тянет
orignal не должно быть такого
orignal я спокойно видео гонял по UDP
Vort на 20 TPS - один пакет пришёл - и всё. тишина )))
Vort ну причин может быть много
Vort надо тестировать на разных ОС, поэтому я про Mono и говорил
Vort вариант "1 пакет пришёл - и всё" воспроизводится довольно хорошо
Vort сейчас перепроверю через Wireshark - уходит ли всё как надо
Vort 10 TPS - критическое значение почему-то
Vort уходит нормально
Vort бинарь
Vort исходник
Vort пример:
Vort сервер:
Vort UDPTest s 2221
Vort клиенты:
Vort UDPTest.exe c 2222 1000 1
Vort UDPTest.exe c 2223 110 2
Vort из наблюдаемых мною аномалий - конские потери пакетов при TPS >= 10 и сбивания пакетов в кучки на меньших TPS
Vort ну это винда. жду пока кто-нибудь проверит на Линуксе
_mblw_ vort а ты на 11 проверяешь?
Vort винде? win 7
Vort ну если кто-то проверит на 10 или 11 - тоже полезно будет
Vort моё дело программу написать :)
_mblw_ а что проверить надо?
Vort weko_ говорит что в UDP играх путаются пакеты когда от двух источников приходят
weko_ Возможно
Vort ну вот я сделал тестовую программу, которая делает два UDP потока
weko_ Это предположение
Vort weko_: ок. может, не путаются, но явно как-то два потока мешают друг другу
Vort а я нифига помех таких не вижу
Vort значит или разница в ОС (винде) или в характере потоков или в моих настройках i2pd
Vort ну и может игра как-то иначе с UDP работает. хотя как тут ещё иначе можно работать...
weko_ Мы ещё хотели проверить джаву, но не нашли как там создать udp сервер
Vort сейчас ещё кину как я туннели сделал
weko_ Самый основной вариант проверить проблема ли это i2pd или игры
weko_ Хотя скорее игр))
weko_ Надо джаву проверить будет
Vort говорю же - это странно. чтобы как-то особо они работали - это маловероятно
Vort так что - выключать мне сервер или кто-то будет с моим адресом проверять?
weko_ Я сейчас не буду
weko_ inbound.quantity = 2
weko_ outbound.quantity = 2
weko_ Так себе, лучше хотя бы 4 ставить
Vort по поводу сломанной сборки cmake-clang: 2.47.0-12-g6d204b4d - OK, 2.47.0-30-ge3fb9d84 - с лишней DLL