IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2024/02/17
~AreEnn
~R4SAS
~orignal
~villain
&N00B
+Xeha
+relaybot
DUHOVKIN
Guest8889
HackerMan
Most2
Nausicaa
Ruskoye_911
Vort
acetone_
anon3
b3t4f4c3
fidoid_
nemiga
not_bob_afk
plap
poriori
profetikla
soos
teeth
tensor
un
weko_
whothefuckami
orignal очисткой и добавлением чего? тагов?
orignal там же один тред всегнда
orignal резкая очистка это из-за последнего коммита
orignal потому что использованные сразу не очищаются
weko_ жалко iperf3 не умеет показывать пинги
weko_ просто есть подозрение, что очереди повышают значительно пинг
weko_ вроде как должен быть ну максимум 500ms, а в игре несколько секунд выходит
orignal там 3 минуты срок истечения одиночны
weko_ 415/18029 (2.3%) за 5 минут
weko_ это 60 p/s
Vort посмотрел я чуть получше код с тегами
Vort получается, фейлится ECIESX25519AEADRatchetSession::HandleNewIncomingSession
Vort и из-за этого генерируются теги?
Vort if (!found) // assume new session
Vort может, таки очистка глючит и чистит лишнее?
Vort а так как тега нету, то считаем new session с соответствующими последствиями
orignal конечно потому что тэга нет
orignal либо его никогда не было либо очистился
Vort попробую ещё очистки пологировать
orignal я тут как раз этот код меняю счас
Vort была очистка, вроде, в том же треде. а теперь что - в другом будет?
orignal нет она была в том же просто вызывалась из netdb
orignal просто сделал более логично
Vort а, ок
Vort есть у меня одно подозрение
Vort при построении туннеля создаётся ведь тег без привязанной сессии?
Vort в GarlicDestination::CleanupExpiredTags же такие теги просто грохаются: github.com/PurpleI2P/i2pd/blob/900153765abbe87101a586f9648d21ee97d7a1b3/libi2pd/Garlic.cpp#L903
Vort запрос создали, тег грохнули, а тут пришёл ответ
Vort может я, конечно, не прав. пока что подтверждения не получил. утром уже буду дальше ловить
orignal счас надо глянуть
orignal да ты прав
relaybot 13mauzer: Tunnel creation success rate: 36%
orignal все. починил
onon1 Есть ещё одна не очевидная проблема с тестами. Конец исходящего туннеля может банально "не знать" начало входящего туннеля, в который ему необходимо отправить тест. Он начнет опрашивать флудфилы, а тест будет висеть.
orignal справедливое замечание
orignal надо ему отправлять
onon1 Я думал ты уже спишь.
orignal рано еще
orignal мы иногда отправляем кстати
weko_ [03:30:21] <orignal> надо ему отправлять
weko_ Не надо, этож деанон атака на изи.
weko_ [03:33:49] <orignal> мы иногда отправляем кстати
weko_ Critical problem!!!!
weko_ Когда кому и что отправляем
weko_ Поясни
Vort бля. вляпался в какой-то тупой креш внутри буста. paste.i2pd.xyz/?223ca7f825f367db#ARTYdkyae7w1USBs3pAGMZvM3AK1hmGC7b3Wy1jUJnoz
Vort похоже на косяк либо самого буста либо компилятора. но, учитывая такое количество накрученной херни, стоит задуматься над однократным созданием правильного объекта пути в HashedStorage::Remove
` А вот какое бы сборище погромистофф здесь было, если бы кто-то не забивал на аффтарские статьи на хабрхабре🤔
orignal когда зондируем например флудфилу о себе
orignal да действительно хуйня
Vort HashedStorage::Remove и рядышком точно такой же bool Remove(const std::string & path) вообще странные
orignal но я не думаю что это буст
orignal код хагена вообще странный
orignal сишник пытавшийся писать на плюсах )))
Vort я в бусте хреново разбираюсь, но разве boost::filesystem::remove сам не вернёт false если нету файла?
orignal а что с тагами?
orignal там я думаю дело не вфайле
Vort Returns: false if p did not exist, otherwise true.
Vort ну примерно за 3 часа аптайма ни разу "Trying to generate more ECIES-X25519-AEAD-Ratchet tags" не вылезло. наверно проблема починена
Vort а потом я вляпался в креш )
Vort orignal: там похоже на гонку внутри буста
Vort ихний get_path_locale() вернул неинициализированную переменную похоже
Vort на ровном месте блин
orignal не внутри буста а самой файловой системы
Vort я хз что это ещё если не косяк буста
orignal а экспершин этот remove кидать не должен?
orignal думаю просто экспешин не ловится
Vort orignal: а до работы с файлами дело не дошло. буст обосрался в процессе преобразования std::string в boost::filesystem::path
Vort про файлы то я думал просто из-за того, что увидел загадочный код
orignal скорее всего
orignal по моему разумению ему можно подсунуть любой мусор и он нормально отработает
orignal а вообще по уму пора boost::filesystem заменить на std::filesyetem начиная с 17
orignal еще вариант что под MSYS2 он какой то кривой
orignal такое уже бывало
orignal когда у нас сыпался мусор в консоль по непонтяной причине
orignal оказалась бага в компиляторе
Vort это я в MSVC2015 словил, при чём в дебаг режиме. может, MSYS2 и не крешит. может, там вообще был баг когда-то в boost и его давно починили
Vort но FS.cpp получше рассмотреть не помешает
orignal его надо переписать на std
Vort совместимость c++11 ломать не стоит
orignal есественоо под #fidef
orignal просто большинствно счас уже 17
Vort ну и моё замечание было больше по поводу проверки exists + следующего вызова remove
Vort выглядит как источник тормозов
Vort если можно обойтись одним вызовом remove, то так и стоит сделать. хоть буст, хоть std
orignal разумеется это безобразие надо выпилить
orignal std::string HashedStorage::Path(
orignal хмм. это еще что за дичь?
Vort ну да, дичь. но надо только не сломать при переделывании. лучше дичь, чем регрессии. хотя вопрос спорный :)
orignal ну я перепишу на нормальные операции из filesystem для начала
orignal для этого же есть %
relaybot 13mittwerkz: ой не туда
Vort orignal: по поводу #1940 - указатель значит указывает куда-то не туда, что ж там ещё может быть?
Vort надо пробовать воспроизводить по тем шагам, что в отчёте указаны
orignal так там же докер
orignal может быть но сама ошибка в чем непонятно
Vort попробуй вначале #1955 починить - там докера нету
Vort может и #1940 уйдет
orignal счас
orignal погляжу
orignal попробую
Vort у меня на вин 7 ASAN`а нету, так что проверить проблематично
Vort но в линуксах современных, думаю, есть
Vort попробовал без asan воспроизвести, просто в вижуал студии в дебаг режиме - запросов 20 одновременных к сайту запустил - ничего не глюкануло
Vort так что могут ещё и особенности линуксов влиять
orignal ну если там двойное удаление то может
Vort use after free вроде
Vort так что тут вопрос в том, насколько free "безвозвратный"
Vort если область памяти защищена, тогда будут креши
Vort если нет, то тогда только asan`ом ловить
orignal ну да
orignal мы удаляем а потом все равно обращаемся к этой памяти
orignal да я по коду посмотрю
onon2 Лось, кстати, этот diva.exchange (Konrad) - это один из тех самых ребят, про исследование которых я здесь недавно писал, которые смогли в тестовой сети отследить трафик
weko_ "Смогли"
onon2 А вроде все понятно описали, как именно они это сделали. Почитай исследование.
onon2 А ты давай накидай вариант, как сдеанонить сервис при посылке адреса точки назначения при тесте туннеля.
onon2 Мне видится только вариант, как узнать, что два разных сервиса на одном и том же роутере.
onon2 Но я досконально логики работы роутера не знаю
orignal знаю что какой то мозгоеб
weko_ [16:00:07] <onon2> А ты давай накидай вариант, как сдеанонить сервис при посылке адреса точки назначения при тесте туннеля.
weko_ А он посылается? Вроде как нет
onon2 Ну, в случае, если будет посылаться...
orignal там посылается только тоннель для ответа
orignal ты иммешь ввиду на конец исходящего RI входящего?
onon2 да
orignal да никак
weko_ onon2: так не будут никогда
weko_ Такого не планируется
weko_ orignal: а, RI
weko_ Так блять он написал другое
weko_ А ну тут всё очевидно
onon2 Ну имелось ввиду сразу адрес слать чтоб не запрашивать на флудфиле
weko_ Адрес всегда отсылается
weko_ Потому что без него на флудфиле не запросить как раз таки
onon2 ок, отсылать не только b64 но и сразу адрес с портом
onon2 Это имелось ввиду
weko_ onon2: адрес, порт, и ключи
weko_ В строгом формате
weko_ Тогда можно
orignal адрес с портом чего?
weko_ Иначе - нет,деанон атака
weko_ orignal: куда отсылать дальше
orignal так это и есть RI
orignal адреса порты и ключи
weko_ RI больше
weko_ И туда можно что угодно написать
weko_ Что позволяет создать сколько угодно версий
orignal короче RI с тестом имеет смысл посылать
orignal особенно если он короткий
orignal все равно пакет длиной 1K
orignal что угодно ты не напихаешь потому что он подисывается
weko_ orignal: нет не стоит
weko_ Пока что точно
weko_ Потому что пока для туннелей используются RI не только анонимно полученные
weko_ orignal: автор может что угодно напихать
weko_ И сделать много версий
weko_ Накачать в каждый роутер уникальный RI, и далее как конец мониторить какие RI приходят. Если пришёл его RI, он смотрит для кого он был создан и понимает кто владелец туннеля
weko_ А так, если это исправить, то может и можно отсылать. Но надо подумать, может есть другое способ похожей атаки
orignal не понял
orignal я же в собственный тоннель шлю
orignal а все понял твою мысль
orignal у меня в netdb может быть уникальный для меня
weko_ orignal: да
weko_ Надо гарантировать что это не так либо не слать
weko_ Гарантировать можно если все RI для туннелей получены анонимно
orignal ну мы отслыаем только собственный RI счас
weko_ Ну на флудфилы
orignal угу
weko_ А там то про концы речь
weko_ [16:20:06] <weko_> Гарантировать можно если все RI для туннелей получены анонимно
weko_ Подумал ещё чуток. Тогда, в теории, можно будет доказать, что конечные точки на одном роутере находятся. Потому что у ротера только один набор исследовательских туннелей. Правда тут я пока не уверен
weko_ Мы можем все равно уникальные отсылать, и если с двух туннелей придут одинаковые, значит эти туннелям владеет один и тот же роутер
weko_ И тогда надо чтобы каждый destination имел базу роутеров который будет использовать. Ну или же вообще не отсылать, или сделать строгий формат, на который не влияет дополнительно содержание RI
weko_ Сделать там только публичный ключ роутера, ключи транспорта, адрес и порт. Например.
weko_ Хотя, ключи транспорта.... Менять можно тоже.
weko_ Сложно
weko_ И адреса тоже
onon Тогда все равно можно на разных портах запускать много версий
weko_ Нет, тогда только либо не отсылать, либо для каждой точки база RI
onon Давайте посчитаем, как долго роутер может запрашивать адрес другого роутера на флудфиле?
weko_ И анонимно полученые естесно
weko_ onon: ну концы напрямую запрашивают
weko_ Без туннелей
onon А если нету, на таймаут для запроса следующему?
onon Сколько ждёт ответа и т.п.
weko_ Насчёт этого не знаю
weko_ Надо в коде смотреть
onon Потому что здесь лежат наши большие пинги на туннелях сейчас.
onon Особенно когда мы стали тестировать рандомные пары
weko_ ну только первый запрос
onon Тут так получается что при каждом тесте ему нужно разные RI запрашивать
weko_ Можно первый не учитывать
weko_ onon: ну сделать что пару тестировать два раза, и первый не считать
weko_ Только втлрой
onon Я предлагаю добавить симметричный туннель только для тестов
onon И слать все тесты туда
onon Будем и задержку точнее считать и таких проблем будет меньше
weko_ Я не уверен что расчёт пингов туннелей так важен
weko_ Пока что по крайней мере
onon А я наоборот, вижу что это основная проблема фейла туннелей сейчас.
onon А постоянно строить новые - очень плохо для анонимности
weko_ onon: статус туннеля и пинг это разное
onon Да и ещё строитель туннелей работает как-то через неправильное место
onon Сервисы без туннелей остаются
weko_ Это да
weko_ Но тут константу поменять и нормально
onon Какую константу
weko_ Количество попыток строить туннель за один manage
Vort "<onon> Сервисы без туннелей остаются" потому что хреновый рейт
flumental сколько i2pd тратит трафика в месяц? если вот прям самый плохой случай с отаками
onon ВЕСЬ
Vort увеличение количества построений - это борьба с симптомами. тем более, вредящая сети
Vort "<onon> ВЕСЬ" - ага, именно так
orignal сколько поставишь
flumental я наоборот хочу ограничить
flumental лимиты у меня на впсках
Vort так в чём вопрос? как перемножить скорость на время?
flumental беда в том, что лимиты там не на скорость а на количество трафика
Vort так если перемножить, количество и получится
flumental а вопрос в том можно ли как-то от i2pd получить предсказуемый потолок по его использованию при околонулевой активности юзера
Vort настройку bandwidth поставить и надеяться на лучшее
Vort ок, немного математики. допустим, bandwidth = P. это 2 мегабайта в сек. в минуте 60 секунд, в часе 60 минут, в сутках 24 часа, в месяце 30 суток
Vort 2*60*60*24*30 = 5184000 мегабайт в месяц
Vort то есть, 5 терабайт
orignal 5 теребайт мизер
orignal у меня пордяка 15 выходит
flumental у меня 1 терабайт в месяц лимит =(
flumental и это еще хороший, бывает по 50-100 гб
Vort flumental: ну тогда bandwidth = O можно поставить
flumental в конфиг-файле написано default is L
flumental а трафика как будто все равно много
Vort или чуть сложнее - разделить 1024*1024 мегабайта на 60*60*24*30
Vort получится 414 килобайт / сек
Vort затем прописать bandwidth = 414
Vort flumental: веб консоль какие скорости показывает?
Vort Transit:
flumental 32 × 60 × 60 × 24 это 2 гигабита, все в норме
flumental Uptime: 12 hours, 30 minutes, 9 seconds
flumental Network status: Mesh
flumental Tunnel creation success rate: 40%
flumental Received: 146.58 MiB (2.76 KiB/s)
flumental Sent: 152.85 MiB (2.83 KiB/s)
flumental Transit: 34.22 MiB (0.20 KiB/s)
Vort 150 мегабайт за 12 часов. то есть, 300 мегабайт в день
Vort за месяц - 9 гигабайт. а лимит - 1024 гигабайта в месяц
Vort не вижу тут "много" как ни смотрю
flumental ну это у меня локально без белого айпи при коннекте через телефон
Vort так где много тогда?
flumental я боялся что к серверу с белым айпи будут тянуться щупальца со всего мира в первую очередь
flumental L хорошая настройка, наверное в таком виде в чатик и встрою libi2pd
flumental а, вдобавок ко всему у меня еще и Mesh через иггдрасиль, тоже вдруг без меша с врубленным ipv4 там трафик кааак засосет
orignal нет там те же лимиты
` У меня кОНАЛ на 10МБ/с выставлен, пока я не пускаю на свой роутер 100500 других роутерофф - у меня канал ни разу в лимит не упирался. К слову вот за 17 дней февраля у меня всего лишь 500ГБ
` flumental, если будешь разрешать транзитны, то попробуй выставлять менее 1024 штук. 1ТБ за месяц не высосет 👌🏻
` Транзиты*
` В ш2з(в) кОНАЛ забиается количеством
` А так хоть 1ГБ/с пропиши в настройках
Vort `: это пока хакер не пришёл
` Vort, учитывая настройки по умолчанию, какеру дожно очень сильно повезти
Vort я считаю, что лучше наоборот убрать лимиты по количеству (поставить 60000) и лимитировать только скорость
` Есть сомнения, что роутер умеет в большое количество транзитофф, со всем увлажением
` У меня тостер на 15к захлебывался в плане перестроения туннелей, при этом ЦП не грузило
Vort даже если поставить лимит O допустим?
Vort похоже, последний коммит (2.50.2-80-g2b6a95cb) избавил нас от "error - Garlic: Can't handle ECIES-X25519-AEAD-Ratchet message"
Vort может кто-нибудь подтвердить или опровергнуть?
orignal счас гляну
orignal да больше нет этой ошибки
Vort супер
orignal одной проблемой меньше
orignal проблема в 1955 очевидная там же все написано
orignal вопрос почему ее никто до сих пор не починил ))