~AreEnn
~R4SAS
~acetone
~orignal
~villain
@onon
&N00B
+relaybot
Guest7184
Komap-
Most2
Nausicaa
Nikat
Ruskoye_911
Vort
Xeha
`
anon3
b3t4f4c3
fidoid
karamba_i2p
nemiga
not_bob_afk
plap
poriori
profetikla
qend
segfault
soos
teeth
tetrimer_
trust
uis
un
unlike
user
vade
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: scribe.rip/@pinarturgut09/rules-for-focused-success-in-a-distracted-world-cb3da3320407?source=email-721ad46c36b6-1708048271061-digest.reader--cb3da3320407----0-2------------------efa73676_8673_49fe_b59f_b473deed28f0-1
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
ВЕСЬ
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
вопрос почему ее никто до сих пор не починил ))