~R4SAS
~orignal
~villain
&N00B
+Xeha
+relaybot
AreEnn
Leopold_
Most2
Nikat
Opax
Vort
WayBest
`
acetone
anon2
anontor
b3t4f4c3
banona
fidoid
grimreaper
itsAMe
karamba_i2p
ncop
nemiga2
onon
onon1
overflow
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
HUP
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
_mblw_
да
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