IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2025/01/29
~AreEnn
~AreEnn_
~R4SAS
~acetone
~orignal
~villain
&N00B
+Xeha
Most2
Nausicaa
Nikat_meh
Opax
Qbit
Vort
WebClient3
`
anon3
b3t4f4c3
fidoid
i
kaotisk
karamba_i2p
korol4ik_
nemiga
not_bob_afk
poriori
profetikla
qend
segfault
soos
uis
un
user
weko
whothefuckami
woodwose
orignal попутно наткнулся на другую проблему
orignal m_RouterInfo.SaveToFile (i2p::fs::DataDirPath (ROUTER_INFO));
orignal и это просиходит в треде роутера
orignal где например расшифровка запросов к нему просиходлит
onon Почему в функции SSU2Session::Resend (uint64_t ts) у нас сделано так:
onon uint32_t packetNum = SendData (it->second->payload, it->second->payloadSize);
onon А не так:
onon uint32_t packetNum = SendData (it->second->payload, it->second->payloadSize, SSU2_FLAG_IMMEDIATE_ACK_REQUESTED);
orignal полагаю что когда это было сделано этого флага еще не было
onon Вот вам идея как бороться с любителями ставить bandwidth = X.
onon Значит если умник выставил X без числа
onon Тогда выставляем ему L
orignal моя идея ставить ему P
onon И параллельно начинаем запоминать максимальную входящую и исходящую скорость
onon И потом поднимаем лимит по минимальному значению из этих скоростей
orignal я просто не хочу разрешать X в конфиге
orignal можно да
onon Он будет что-то качать или выгружать и так мы увидим реальную скорость
orignal второй варинт для X ставить лимит всегда в 10000
onon И постепенно подгоним значения под реальные
onon А вдруг у него больше...
orignal а если у него больше пусть вручную число ставит
onon А если у него 1 мбит на мобилке и он поставил X без числа, то 10000 нас не спасут
onon А автоматическая подстройка хоть не сразу но выставит реальную скорость
onon Ну и ещё как-то сбрасывать значения при смене подключения например с 3г на вайфай
orignal можно наверное
orignal ну так будут обезьяны тогда ставить P
onon Ну всё же лучше чем X
onon Ещё меня в коде SSU2 смущает что SSU2_FLAG_IMMEDIATE_ACK_REQUESTED выставляется на каждый пакет и что ответы отсылаются также почти на каждый пакет. Как-то слишком избыточно получается.
onon Надо подумать над этим.
orignal это с чего вдруг?
orignal вроде только на всякие пир тесты
orignal только на последний в пачке
onon Да, это я не туда посмотрел. Как раз на этот блок...
onon Претензия пока снимается
onon А вот про ретрансмиты ты подумай, почему там нет запроса акка
orignal так надо сделать
orignal проблема с записью RouterInfo похоже глубже
orignal с ней надо разбираться
Vort так а что с ситуацией запуска с RI, но без ключей?
Vort может её стоит в первую очередь починить? если там таки есть проблема, конечно
orignal я не смотрел
orignal только чем ее починка поможет?
Vort постепенно с обновлением сети уйдёт флуд "Wrong static key" из логов
orignal обезьяны то не исчезнут
orignal а проблема в них
orignal то есть дубликаты
Vort так эта хрень и без дубликатов бывает
Vort может добавить ident для аналогичного сообщения из NTCP2?
Vort не знаю реально ли
Vort станет видно сколько процентов фигни от клонов, а сколько сами по себе
orignal можно да и для NTCP2
orignal а с чего эта хрень может возникнуль в принципе.
Vort ну ты же сказал, что может быть когда RI есть, а ключей нету. я не проверял
orignal но это когда обезяна клонирует вручную
orignal в нормально рабтающей системе такого быть не должно
Vort может из бекапов кто-то так восстанавливает допустим
Vort или с одного сервера на другой переносит
Vort несколько таких случаев на всю сеть достаточно, чтобы загадить лог
orignal и не копирует директорию целиком?
orignal ладно гляну
orignal касамо записи локального RouterInfo оно походе делается слишком часто особенно при пир тесте
Vort "<~orignal> и не копирует директорию целиком?" не знаю про линуксы, но на винде в директории куча всего. профили, netdb
Vort логично выбрать самое нужное. но при этом вполне можно перестараться
Vort особенно если i2pd не ругается на неправильное состояние
orignal гляну сегодня
Vort ещё одна идея есть
Vort помнишь народ писал о смене ключей недавно? типа для приватности
Vort так вот они вполне могут грохать сами ключи, но оставлять RI на месте
Vort это намного реальнее косяка с бекапом/переносом
orignal тогда бы фелилась подпись
Vort так это же именно тот сценарий, о котором ты говорил. что-то я недопонимаю
Vort "<~orignal> в итоге они создались новые а RI старый"
Vort имеешь в виду что ли, что с такой конфигурацией i2pd вообще будет неработоспособный?
orignal там смотри там 3 ключа
orignal router.keys, ntcp2.keys и ssu2.keys
orignal если грохнуть router.keys и оставить старый router.info то будет неверная подпись
Vort в общем, так или иначе, рандомные удаления должны или приводить к состоянию "ничего не работает" (и не гадит в сеть) или автоматически чиниться
Vort 16 комбинаций получается, да? )
orignal согласен
orignal надо проверку делать
orignal все ключей
orignal все явно там насчет router.keys делается проверка
orignal а про ntcp2 и ssu2 нет
orignal хотя там пересоздаются и обновляются
orignal лажа может быть только если не совападают
Vort то есть, когда файл существует, но не тот?
Vort так накосячить довольно сложно. видимо, какой-то сценарий упускаем
orignal воззможно
orignal я как вижу ситуацияю
orignal обезьяна сделала копию роутера
orignal и на каждой копии созались свои собственные ключи
orignal далее мы получаем RI в SessionConfirmed
orignal обнаруживаем там более свежий и не обновляем
orignal в итоге к нам пришел S не тот что в netdb
orignal const int NETDB_EXPIRATION_TIMEOUT_THRESHOLD = 2*60; // 2 minutes
orignal у нас проверка только если превышает эту величину
orignal а если не превышает?
Vort "<~orignal> обнаруживаем там более свежий и не обновляем" не обновляем вообще никогда?
Vort "<~orignal> лажа может быть только если не совападают" это, кстати, желательно всё же поправить. чтобы хотя бы теоретически работа была всегда корректной
Vort я просто видел такие сообщения от не-клонов
Vort то есть, мог когда-то быть клон, потом исчезнуть, но проблема уже "застряла"?
orignal так если у нас более свежий RI то зачем мы будем заменят его говном мамонта?
orignal почему? как только получили более новый сразу там обновим
orignal понимаешь прнцип?
orignal пришел RI смотрим если такой есть то сравниваем таймстамп
orignal если свежее то обновляем если сстраее то нет
Vort "<~orignal> понимаешь прнцип?" не совсем. проблема проявляется локально у меня или у того юзера, который сделал клон?
Vort (и мне надо отойти)
orignal в твоем netdb
orignal а юзеру булет отлуп
orignal но на самом деле источник проблему здесь
orignal std::shared_ptr<const RouterInfo> NetDb::AddRouterInfo (const uint8_t * buf, int len)
orignal bool updated;
orignal return AddRouterInfo (buf, len, updated);
orignal мы этот updated теряем
orignal надо вызывать версию с этим параметром
Vort получается, есть два отдельных механизма возникновения проблемы (сообщения в логе)? локальный и удалённый
Vort с клонами и без
orignal нет проблема всего одна
orignal клоны
orignal локальный механизм лишь как мы с ними работаем
Vort это ведь может произойти и без клонов? "<~orignal> лажа может быть только если не совападают"
orignal а что это может вызвать в принципе?
orignal это очень редкий сценарий
orignal в отличие от клонов
Vort я согласен, что редкий
Vort и это хорошо
orignal чтобы у тебя файлы с ключами вдруг оказались вместе от разных роутеров
Vort если локальный починишь, то процентов 80 проявлений, скорее всего, уйдёт. при чём, сразу
Vort "<~orignal> а что это может вызвать в принципе?" 1. попытки хака. 2. действия юзера, не понимающего, что он делает
orignal ну если хак ты мало что тут сделашь
orignal только определять ошибку
orignal но поверь мне главный источник проблем это клоны
Vort только что ещё одну странность заметил (уже не про клоны)
Vort с последними коммитами на графике нагрузки CPU i2pd довольно заметные шипы пошли
Vort коррелирующие с нагрузкой на диск
Vort они и раньше были, но не настолько явные
Vort интервал нерегулярный, несколько раз в час
Vort может, конечно, это у меня что-то не так пошло, так что на всякий случай сообщаю
Vort я понимаю, что сброс чего-нибудь на диск будет грузить тот самый диск. но вот насчёт CPU - неясно
orignal точно прямая корреляция а не обратная.
orignal то есть нагрузка на проц когда на диск нет
Vort лучше сам глянь
orignal вот тут непонятно
Vort это на версии 2.55.0-40-g35f7bd51
orignal может где то запись на диск тормозит
orignal и потом очередь разгружается
Vort вероятно