IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2023/02/01
~R4SAS
~acetone
~orignal
~villain
&N00B
+relaybot
AreEnn
DUHOVKIN_
Guest7184
Most2
Nausicaa
Nikat
Ruskoye_911
Vort
Xeha
anon3
b3t4f4c3
fidoid
karamba_i2p
nemiga
not_bob_afk
onon
plap
poriori
profetikla
qend
segfault
soos
teeth
tetrimer_
uis
un
unlike
user
vade
weko
whothefuckami
orignal нет это не баг
orignal верни ту строчку на место потому что бывают адреса типа NTCP2v4v6
Vort ок, сейчас верну
orignal остальное нормально
Vort а эти v6v4 тоже как и v6 надо в квадратные скобки заключать?
orignal нет
orignal там всегда будет только supported
orignal R4SAS я перезалил для щыч
Vort на всякий случай проверю изменение. в перезапуск ухожу
Vort понадеюсь что ничего не сломал ) github.com/PurpleI2P/i2pd/pull/1864
orignal нормально
orignal смержил
Vort хорошо, спасибо
orignal счас сразу на одной машине обновлю и опробую ))
orignal нормально показывает
weko orignal: в идеале нужен параметр "быстроты" выбираемых хопов. Соответственно он будет влиять на анонимность и на скорость.
weko В самом коде он может просто влиять на шанс выбора роутера с разными флагами
weko 0.5 равные шансы у всех, больше - повышение шансов X, в минус - повышение шансов L
weko Ну не минус а меньше *
acetone orignal: (аларма) зашифрованные лизсеты сломались
acetone пробовал с подписью 11 и 7 - лизсет не находится
acetone только зарядил дефолтный лизсет - тут же все заработало
weko У меня работало в прошлый раз
weko Странно
acetone orignal: crypto.tagsToSend имеет смысл в современных UDP-туннелях с ECIESx25519?
weko acetone: там другое вроде нужно
weko Не помню((
weko Я написал возвращение старого алгоритма
weko Tunnel creation success rate (old algorithm): 27%
weko Сейчас буду делать PR
weko Параметр http.old_tcsr
weko Выключен по умолчанию
acetone weko: наверное ты говорил про i2p.streaming.initialAckDelay, но и это только для tcp-туннелей насколько я понимаю...
weko acetone: честно говоря я не знаю
weko Нужно спросить у orignal
weko А вот тэги точно нужно
weko Это прям 100%
weko Щас логи посмотрю
weko crypto.ratchet.inboundTags=500
weko acetone:
acetone weko: принял
weko На обоих сторонах я думаю
weko_ Протестил
weko_ Работает
acetone weko_: хм. когда-то тестировал на нулевых туннелях, где одна сторона за NATом - не работало. Сейчас завелось. С обеих сторон 0 хопов проверил
weko_ Может сейчас ситуация другая
weko_ Поменяли код, другая конфиг чего то
acetone По поводу нерабочего зашифрованного лизсета что-то не догоняю. Проверочный адрес лося ( shx5vqsw7usdaunyzr2qmes2fq37oumybpudrd4jjj4e4vk4uusa.b32.i2p ) работает.
acetone orignal, "inbound.quantity = 1" при нулевых туннелях ок?
weko Если что, я протестил. Там при сборке какой то варнинг, но я не знаю как его фиксить
acetone Удивляюсь, что разницы в скорости при нулевых туннелях и когда с одной стороны 1 хоп - практически никакой. От 10МБ-сек остается 1МБ
weko Интересно
weko Tunnel creation success rate: 25%
weko Tunnel creation success rate (old algorithm): 27%
orignal acetone так без раницы
orignal tagsToSend только для эльгамаля
orignal работают шивроанные лизсеты
orignal вчера проверял
acetone orignal: в клиентском туннеле при шифрованном лизсете никаких доп.флагов не надо, верно же?
orignal не бывает клиентского шифрованного лизсета
orignal адрес выше открывается через обычный прокси
orignal у тебя отктывается?
orignal хочу только напомнить что это не сам адрес а B33
weko ++)
weko Там под спойлером)
weko Открылось
orignal сам адрес естественно не найдется
orignal а зачем?
orignal чем плох нынешний?
weko Тем что нет средней
weko Среднего значения
orignal для чего в принципе нужен старый?
weko Для того чтобы видеть среднее значение
weko Которое новый не показывает
orignal мне не нравится слово old
orignal замени на avg
weko Окей
HidUserZ так оно и есть среднее
orignal опнимаешь слово old не несет никакий смысловой нагрзуки
weko Понял
orignal и добавь комментарий
weko Сейчас сделаю
orignal ну тогда avgfromstart
orignal как то так
weko Угу
HidUserZ ты мог бы просто m_OldNumSuccesiveTunnelCreations++; в SuccesiveTunnelCreation() засунуть
orignal короче чтобы название отражало содердание
HidUserZ вы хотите http.old_tcsr это в прод добавить?
relaybot 13R4SAS: а почему среднее
weko HidUserZ: ну дак проще когда можно билдить сразу из основной ветке
relaybot 13R4SAS: напишите ratefromstart
weko Оно выключено по умолчанию
weko avgratefromstart ?
relaybot 13R4SAS: еще раз, почему среднее?
relaybot 13R4SAS: вы занимаетесь дележкой простой
weko Потому что что алгоритм среднего значения
relaybot 13R4SAS: хз хз
weko Ну так это и есть среднее
weko Сумму делить на количество
HidUserZ я прост не уверен что этот параметр нужен народу
weko Ну дак кому не надо тот не включает
weko Я его даже в дефолтный конфиг не добавил
orignal ну раз weko нужен
orignal можно добавить что только для отладки он
relaybot 13R4SAS: тау я говрю, среднее находится на основании сравнения нескольких пероэиодов
relaybot 13R4SAS: так*
HidUserZ это ж не дебаг версия
HidUserZ а прод
relaybot 13R4SAS: а тут просто нахождение значения на всем временном промежутке
weko HidUserZ: тыщу раз уже сказал что выключено по умолчанию
HidUserZ я знаю что он выключен
weko R4SAS среднее от старта роутера
weko HidUserZ: ну дак и всё
HidUserZ прост есть ли смысл усложнять так
HidUserZ еще вопросы будут что это и зачем
weko Что умложнять?
weko HidUserZ: а сложно ответить типо?
HidUserZ так хз какое количество будет
weko HidUserZ: и в каком месте усложнение
HidUserZ непонятно народу будет что за old tcsr
weko HidUserZ: так мне лось сказал поменять название
weko Сейчас поменяю
HidUserZ ладно
orignal R4SAS там с пакетом для дебиана какая то хрень
orignal похоже он собран не с теми либами который в него в stable
relaybot 13R4SAS: стейбл? сомневаюсь
relaybot 13R4SAS: я думаю в нем обновили либы
relaybot 13R4SAS: так что пересобирать придется
weko В коде назову total_..., а параметр total_tcsr. Нормально?
weko Ой тоесть Total..., без _
relaybot 13R4SAS: как отличаются версии то?
Gate подскажите на тоннель стоит настройка длина хопов 3 ну дефолт, а в вебконсоли в свойствах тоннеля inbound и outbound всегда минимум 4 хопа иногда даже 5, как это работает вообще?
Vort то количество туннелей, а не хопы. хопы отделяются ⇒
weko Gate: есть inboundTunnelVariance ?
Gate weko: был, но я его закоментил специально, но все равно сейчас длина тоннеля в обе стороны 4
weko Gate: точно длину смотришь?
Vort так перезапустить i2pd надо
weko Ну это да тоже
Vort reload tunnels поломан
weko Vort: +
Gate inbound tunnels и там по кол-ву established
Gate ребутал конечно и не раз
weko Gate: так это количество туннелей
weko А не хопов
weko Матчасть учи блин....
Gate так где ее учить то доков нет по этой теме, где что в вебконсоли
weko Gate: у ацетона есть статья
relaybot 13R4SAS: orignal: ?
relaybot 13R4SAS: ldd пусть показывают
orignal я тебе в телеге скинул
Gate weko: да понял, действительно, сам тупанул, вроде понял, спс
HidUserZ надо ссылку на ацетоновские статьи в доку засунуть
Vort вдруг кому интересны термины: en.wikipedia.org/wiki/Moving_average
Vort SMA/CA/WMA/EWMA
weko http.showTCSRfromstart
weko Подойдёт?
weko Хотя лучше TotalTCSR
weko Наверное
weko Сейчас сделаю
weko http.showTotalTCSR
Vort похоже, я получил ответ на своё предположение в предыдущем сообщении :D
weko Что за предположение?
orignal weko тогда вот что
orignal если параметр это включен то показывай оба рейта
weko Ну дак я так и делаю
orignal тогда нормально
orignal чтобы 2 сразу было
weko Ну да)
weko Я сейчас меняю названия
weko orignal: сделал
weko Проверил, работает
orignal счас смержу
orignal смержил
Gate А где хранятся ключи клиентских тоннелей, если я не прописал для тоннеля keys?
relaybot 13R4SAS: в памяти
orignal в памяти только
orignal потому они и transient
Gate 5мб/сек тащит, это для меня рекорд
Gate 6.5 вот это я даю газу)
Vort "Что за предположение?" - о том, что кому-то интересны правильные названия алгоритмов усреднения
orignal case i2p::data::CAPS_FLAG_EXTRA_BANDWIDTH2 : limit = 1000000; type = unlim; break; // 1Gbyte/s
orignal вот такое нашел в коде
acetone weko: мои статьи это апокриф, сурцы читать надо!
orignal я скажу ну-ну
weko acetone: ;)
orignal хаген считал что скорости выше гигабита быть не может он был неправ ))
Vort гигабайта
orignal 10 гигибаит то есть
acetone weko: почти как ислам принять, тоже язык учить надо непонятный)
weko Гигабайт в сек это 8 гигабит
weko acetone: хахахахах!))
Vort есть ли хоть у кого-то тут 8 гигабит канал?
Vort тут = в i2p
weko Vort: один чел в #howtoygg загоняет про 10 гигабит
orignal у на на работе есть 10 гиг оптика
Vort в Tor кстати анлим - это тоже 1 гигабайт/сек
orignal ну тогда ладно
orignal просто разбирался с кодами
weko orignal: ну можно ещё нолик приписать если место есть)))
Vort к сожалению, я вижу и на меньших каналах как по несколько узлов поднимают
Vort видимо, недостаточно параллелизации внутри процесса
orignal почему ты думаеш что несколько узлов это на одной железке?
orignal может там локальная сеть
Vort даже на ipv6 видел )
Vort уж там адресов должно хватать
weko И как один порт покинуть на несколько железок? Ставить балансировщик чисто ради тора?
Vort чтобы не вешать несколько компов на 1 адрес
Vort портмапом можно
Vort а, так не один
Vort я говорю о случае, когда на одном IP несколько узлов
Vort порты разные
R4SAS типа меня, когда я держу на одной машине по 3-4 ш2зв?)))
Vort если бы это был единичный случай, я подумал бы что дело в необходимости отладки различных конфигураций
Vort но потом заметил ещё несколько таких случаев
Vort и, вспоминая аналогичные случаи с Tor (плюс вспоминая один поток на протокол в отладчике i2pd), предположил, что один узел может упираться в лимиты CPU
Vort точнее, смотрел не через отладчик, а через профилировщик
weko Vort: у крыла вроде на разных адресах, не?)
Vort в Tor там вообще задница, по сотне узлов у некоторых владельцев
weko Vort: в ш2з таже хрень)) 100 или 200 узлов у стормиклауд
orignal а что был слуай когда в i2pd один тред упирался в лимит проца за последние несколько лет?
Vort у меня нету жирного канала, чтобы проверить
Vort но теоретически вполне возможно
R4SAS было
Vort "100 или 200 узлов у стормиклауд" - они поясняли причины или нет?
weko orignal: у меня было такое наверн
R4SAS у меня, но это было года 3 назад
weko Ну уверен, но видел как долбило в 100%
weko Кажется
weko Один раз
orignal какой именно тред?
orignal 3 года назад был еще эль-гамаль в тоннелях
orignal галка тоже ругался что в момент построения тоннелей подскакивало до 100%
R4SAS не помню
R4SAS наверно SSU
orignal возмодно
orignal там было все плохо
Vort у меня простая математика. если SSU2 у меня на 2 мегабайтах в сек жрёт 10% ядра, то 20 мегабайт/сек уже будет предел. а мы тут об 1024 мегабайтах в сек говорим
R4SAS weko: ты наверно смотрел по проце общуу
R4SAS общую*
weko Возможно
weko R4SAS: не, там вроде как раз SSU было
R4SAS прям конкретно на потоке?
weko Хотя не уверен
weko Дааа
weko Не поверишь)) прямо сейчас увидел упор в 100
orignal Vort а математика еще проще
orignal там многое можно распарллеить
orignal weko какой тред?
weko Сейчас скажу
Vort "там многое можно распарллеить" я и не говорил, что нельзя. но сейчас гигабайт/сек, скорее всего, на одном узле не сработает
Vort больше ничего не говорил. и даже менять ничего не предлагал )
weko orignal: SSU2
weko Прямо в 100 долго
weko Это последний коммит
weko Я такого не видел раньше
orignal сколько SSU2 сессий?
orignal самое простое разнеси 4 и 6 по разным тредам
weko 1800
orignal далее операцию Agree вынести в отдельный тред как было сделать в старом NTCP
orignal потмоу что был медленный эль-гамаль
orignal weko этим надо будет заняться
weko Иногда успокаивается и становится 50
orignal а у меня вот основная нагрузка NTCP2
orignal там порядка 60% ядра
weko У меня NTCP2 и Tunnels по 10 процентов, наверное SSU2 не даёт больше
orignal не думаю
weko Вот сейчас резко упало до 25... Странно
orignal у меня на впс 2 ядра
orignal 4 мегабай в секунду прет
weko orignal: нет прикол в том что треды друг от друга зависят и если один не вывозит, нагрузка на другой ниже чем могла бы быть, разве не так?
weko Вообщем у меня SSU2 кушает в 5 раз больше примернл
orignal зависят конечно если у тебя ядер мало
weko Ядер хватает
weko Но один тред на два ядра же не разнести
weko Вот сейчас всё хорошо
orignal так когда один тред целиком занимает ядро это нехорошо
weko Ну вот
weko Я об этом и написал, именно почему
orignal вот и надо смотреть почему
weko Что другие треды "ждут" этот который не справляется
orignal следует ли заниматься дальше в частности выносить Agree
orignal не должно быть
orignal ведь NTCP2 и SSU2 независимы друг от друга
weko orignal: Agree это операции асинхроннового шифрования?
orignal это согласование ключа
weko orignal: а вот tunnels зависит же?
weko orignal: ну тоесть да
orignal практически умножение точки на кривой на множитель
orignal довольно тяжелая
weko Согласен, имет смысл разделить симметричное шифрование для трафика и асимметричное для согласования
orignal тоннели ясен пень зависят
orignal ну вот если ты поищишеь старые релизы с NTCP там это уже было
weko Угу, странно что сейчас ntcp2 так себя не ведёт
orignal так в NTCP причина была в эль-гамале
weko А тут какая?
weko Тут почему в 100 уходит
weko Пока NTCP2 на 10
orignal а тут такая что объемы трафика резко выше
weko Думаешь с NTCP2 тоже такое бывает?
orignal а тебя же скорее ретрансмисии
weko Или просто SSU2 больше пропускает?
orignal бывает конечно
orignal просто SSU2 больше перепосылает
weko Тогда нужно статистику собирать
orignal а в NTCP2 это ядро делает ))
weko Понял)
weko Ну да, вот сейчас вижу что идёт больше в NTCP2
orignal короче смотреть дальше надо
weko А где запросы флудфила обрабатываются? В netDB?
weko Чтобы понимать где смотреть при подозрениях ))
orignal смотря чего
orignal лизсетов как правило в Dectination.cpp
orignal роутеров в ntedb
weko Именно тред
weko Из того что подходит только NetDb)
weko По смыслу
orignal нет для адресов у каждого свой тред
orignal отдельный
weko А именно когда у меня включен флудфил
weko Запросы к нему в каком треде
orignal в netdb
orignal но там же дохуя коротких транспортных
orignal для одного сообщения
weko В любом случае можно будет увидеть нагрузку на этот тред
orignal у меня флудфил
orignal и там нагрузка небольщая
Vort я скидывал что на винде у меня грузит в SSU2
Vort там в основном системные вызовы
Vort никакого Agree и близко не видел
orignal sendto ?
orignal там по сути всего один системный вызова
orignal остальное криптография
Vort нет, не один
Vort сейчас попробую загрузить данные
orignal вот давай просто не предстявляю что там еще может быть
Vort такс, у меня были немного смешанные данные. сейчас фильтрую по SSU2
Vort kernel32.dll ! GetQueuedCompletionStatus жрёт 19% от SSU2
Vort сейчас скажу дальше, запутался тут немного
Vort WS2_32.dll ! WSASendTo - 28% + 4 %
Vort ещё две жутковатые функции, так и не пойму в чём их отличие, он обе вызываются из i2pd.exe ! i2p::transport::SSU2Session::CreateAckBlock - 28% и 20%
orignal <Vort> kernel32.dll ! GetQueuedCompletionStatus жрёт 19% от SSU2
orignal а что она делает?
orignal а вот CreateAckBlock это интересно
orignal там формирует список чего получено в чего нет
orignal и это проход по map-у
R4SAS GetQueuedCompletionStatus это io
Vort GetQueuedCompletionStatus function - Attempts to dequeue an I/O completion packet from the specified I/O completion port.
orignal ну а кокретно откуда это в коде вызывается?
orignal и sendto ?
orignal *из
R4SAS скорее всего да
orignal ну по сути что я и сказал
orignal это значит ядро не справляется
orignal а вот CreateAckBlock интересная находка
Vort "ну а кокретно откуда это в коде вызывается?" из i2p::util::RunnableService::Run, через boost
R4SAS Vort: выше смотри
orignal GetQueuedCompletionStatus
orignal что это такое?
R4SAS Run это общая оболочка потока
orignal хотите сказать это буст гадит?
Vort boost::asio::io_context::run
Vort boost::asio::detail::win_iocp_io_context::run
orignal очередь из заданий
Vort boost::asio::detail::win_iocp_io_context::do_one
orignal бля
Vort GetQueuedCompletionStatus
orignal это что то новое
orignal то есть под виндой тормазная реализция буста
Vort IOCP это ещё быстро
R4SAS size_t do_one(bool block, boost::system::error_code& ec)
Vort "а вот CreateAckBlock интересная находка" вот как распределяется в нём нагрузка paste.i2pd.xyz/?73a83426287ddb87#Ej7sLzmLXwxMFdMUhnpf3K6oQJChNxtQPujDT6C29KMc
R4SAS Vort: ты в чем смотришь?
orignal им я займусь
Vort R4SAS: VTune
R4SAS ойбля
orignal похоже придется на очередь переделывать
R4SAS Vort: Very Sleepy видал?
Vort нет, сейчас погуглю
Vort попробую подцепиться им к i2pd
orignal надо разобраться с этим вопросом
orignal итак начинаем переделку выбора хопа
orignal моя идея также сравнивать фактический трафик с декларируемой толщиной канала
Vort R4SAS: пытаюсь угадать вслепую какой поток отпрофилировать, так как в verysleepy они не подписаны. как попаду на SSU2 - кину результат
R4SAS Vort: профилируй полностью
R4SAS потом после сборки данных вычислишь
Vort а там можно будет отфильтровать по потоку уже после сбора данных?
Vort ну я нашёл SSU2 тред вообще-то уже
R4SAS не помню уже
Vort по времени сбора тоже фильтрация не помешала бы. жирные SSU2 транзиты ведь не часто приходят. ну да ладно. я вообще удивлен, что оно заработало, хоть как-то
R4SAS главное не записывай слишком много)))
R4SAS а то упадет
orignal ладно CreateAckBlock переделаю
orignal чтобы каждый раз acnt не считать
orignal в цикле
Vort без жирного транзита получилось неинтересно
R4SAS жирного - это сколько?
Vort ну прошлый сбор данных через VTune был где-то на 2-3 мегабайтах/сек по SSU2
Vort а сейчас через Sleepy я не уверен что вообще что-то через SSU2 текло
R4SAS у меня слипи не выносит вообще)))
R4SAS в ступор стает при выборе ш2зв в списке)))
Vort думаю, дело или в ОС или в компиляторе
Vort эта сборка у меня через clang
Vort ну и ОС - Win 7
Vort где ж жирные транзиты тогда, когда они так нужны )
Vort в прошлый раз около часа ждал - выбесило конкретно
Vort нужен какой-то нормалный метод измерения
R4SAS так если смотреть на графики, то видно что они синусоидой ходят )
Vort ещё то ли от аптайма, то ли от времени суток зависят
Vort сейчас, наверно, и не словлю. ну ещё чуть-чуть попытаюсь
R4SAS 5 мб/с после перезапуска минут 20 назад
R4SAS у меня тут видимо достаточно много туннелей, софтина не справляется
R4SAS 85 тредов
Vort при выборе в списке идёт загрузка отладочной информации
Vort она не должна зависеть от нагрузки
R4SAS при выборе приложения в списке оно постоянно начинает мониторить треды
R4SAS которые справа
R4SAS тут жопа и начинается
Vort список же раз в секунуду всего лишь обновляется. странно это
R4SAS хз. у меня ей плохеет, что она даже в проц упирается
Vort аа, всё, вижу. у меня она 10% жрёт
R4SAS 10% от чего?
Vort она же ещё список процессов обновляет
R4SAS от ядра или проца
Vort от всего проца (4 ядра)
R4SAS везет. а у меня упирается в поток по ядру
Vort её бы настройку частоты обновления таблиц...
Vort ей*
Vort а винда какая?
Vort я когда увидел сколько 10ка рожает svchost`ов, то был, мягко говоря, сильно удивлён
Vort отключал эту мегафичу?
R4SAS там это отключаемо
R4SAS нет
Vort ну вот от этого sleepy может плохеть
Vort процессов много
R4SAS у меня от силы их 20
R4SAS не, у меня ступор конкретно начинается когда я выбираю ш2зв в списке
Vort понял. без выбора у меня ест 0.2%
Vort значит, таки, потоки грузят
Vort у меня 27 потоков сейчас
R4SAS видать дело в Dr. MinGW
R4SAS котроый символы гоняет
Vort отпрофилировал sleepy с помощью sleepy )
Vort SymFromAddr - 75%
Vort стек отображать - это, конечно, красиво, но желательно это делать без подвисаний всё таки )
Vort в общем, не словлю я сейчас жирного транзита. ну да ладно, всё равно это ненадёжный метод измерений
Vort а напишу я им багрепорт )
R4SAS возможно)
R4SAS только это начало
Vort в смысле - как оно будет тупить, когда начнёт данные собирать? )
Vort или о каком начале речь?
R4SAS оно еще тупить будет при разборе собранных данных
R4SAS если их много
R4SAS тупить и вылетать
Vort вот вылетать - это хуже
Vort а тупить - это нормально для такой задачи
anon84 подскажите пожалуйста как можно запустить i2pd от определенного пользователя в debian?