~AreEnn
~R4SAS
~orignal
~villain
&N00B
+relaybot
DUHOVKIN
Most2
Nausicaa
Nikat
Vort
Xeha
`
acetone_
anon2
flumental
karamba_i2p
nemiga
not_bob_afk
onon
plap
poriori_
profetikla
silence_
soos
teeth
tensor
un
weko
whothefuckami
orignal
Vort погляди пожалуйста мой последний коммит насчет уменьшения времени протухания для медленных и далеких роутеров
Vort
orignal: близость при публикации ведь считается динамически, в зависимости от даты
Vort
GetIdentHash() же всегда один и тот же, так что это что-то не то
Vort
то есть, смысл в том, чтобы не удалялись RI, которые были узлом специально опубликованы
Vort
есть ещё один вариант: просто держать отдельный список таких узлов. тогда вообще гадать по поводу расстояния не надо
Vort
кстати, юзер, который нашёл XSS, говорит, что исправление вообще поломало addresshelper. надо и с этим разбираться
Vort
Плохо помню, как именно считается расстояние при публикации, но вот какую функцию нашёл у себя:
Vort
int Distance(RouterInfo publisher, string date, RouterInfo floodfill)
Vort
{
Vort
return publisher.RoutingKeyHigh(date) ^ floodfill.IdentHashHigh();
Vort
}
orignal
Vort так я вот и не уверен мы оставляем просто близкие к нам или же про раастоянию
orignal
то есть ты предлагаешь оставлять тех чей хэш с датой ближе к нам?
orignal
поломало я думаю потому что base64 считался непправильно
Vort
я предложил ему проверить уже после исправления base64
Vort
так что или он не тот коммит взял или было таки два бага
orignal
а ну проверю счас
orignal
с дистанцией переделаю
Vort
"я вот и не уверен мы оставляем просто близкие к нам или же про раастоянию" - в первую очередь надо задать вопрос "зачем это делается?". мой ответ - чтобы не поломать распределённую базу данных с RI
orignal
ты говорищшь 7 бит проверять?
orignal
да я уже понял твою мысль
Vort
там, по-моему, не просто биты смотрятся
Vort
сравниваются два большущих числа
orignal
ну
Vort
для целей оптимизации можно сравнивать только старшую часть
orignal
взяли мы этот ^
orignal
и каков критерий близости для отсечения?
Vort
короч я думаю что можно взять по старшему байту, сделать ^ и сравнить результат со 127
Vort
ну я не на 100% уверен
Vort
просто там битовые операции не особо нужны
orignal
127 тогда первый бит
Vort
это обычное число - меньше или больше
orignal
то есть ты просто хочешь сравнивать результат ^ с нулем?
Vort
не с нулём, а с константой
orignal
ну вот меньше чего?
orignal
в первом байте разумеется
Vort
допустим, < 128
Vort
можно это и через битовые операции сделать. но зачем?
Vort
хотя насчёт 128 я не уверен. плохо помню как там делается :(
weko
Да это костыли всё. Надо сделать, чтобы много RI не было проблемой
orignal
договорились 128
orignal
сделаю сегодня
Vort
да я не могу по-нормальному вспомнить :( путаю где там младшие биты, где старшие
orignal
то есть тебе надо сравнивать певрые биты
weko
Ну чем младше бит, тем меньше расстояние. Значит надо те, где расстояние > 2**128
orignal
я понял
Vort
orignal: насчёт 128 я, скорее всего, фигню написал. если старшие 7 бит - нули, то разница будет или 0 или 1
Vort
то есть, < 2
orignal
да. логично
orignal
по уму это число надо тоже брать от общего числа роутеров
Vort
так а что насчёт идеи просто запоминать те узлы, которые публиковались? если запоминать в RAM, то будет проблема при рестарте узла, правда
orignal
не знаю
orignal
нудо подумать
Vort
ну и ещё вопрос вообще для любого варианта: это же только при флудфил режиме своего узла надо близость смотреть?
orignal
можно просто делать отметку
Vort
без флудфила вроде как бы и пофиг на близость
orignal
да только флудфил
orignal
HTTPProxy: Malformed jump link
orignal
понятна причина
orignal
счас починим
Vort
решил на всякий случай проверить - совсем я туплю или нет. оказалось не совсем:
Vort
This distance is computed as the exclusive or (XOR) of the two node IDs, taking the result as an unsigned integer number.
Vort
то есть, результат - число
Vort
по поводу константы: она скорее не просто от числа роутеров зависит, а от отношения общего числа к числу флудфилов. думаю, меняться оно часто не будет
orignal
этим вот и займусь только сначала починю
orignal
base64
orignal
поправил base64
Vort
что за хрень с GHA происходит? R4SAS ping ?
Vort
Build on FreeBSD в какой-то цикл вошёл
orignal
что есть GHA?
Vort
Github Actions
orignal
а x3
Vort
там, похоже, какая-то виртуалка и ей поплохело
orignal
Vort я там переделал
Vort
выглядит нормально
orignal
вопрос производительности только
orignal
счас проверю
Vort
как часто этот код вызывается?
Vort
если редко, то пофигу, много оно есть в принципе не может
Vort
CreateRoutingKey можно с датой сделать, чтобы не перевычислять её хренову тучу раз, но это запросто может быть "экономия на спичках"
Vort
так что чистый код может быть предпочтительнее
orignal
вот я и хочу проверить
weko
<Vort> CreateRoutingKey можно с датой сделать, чтобы не перевычислять её хренову тучу раз, но это запросто может быть "экономия на спичках"
weko
<Vort> так что чистый код может быть предпочтительнее
weko
ну тут корректно будет сделать кеширование
orignal
влом
weko
в python это делает просто декоратором @cache
orignal
пока не вижу большой заргузки
weko
ltkftncz*
weko
делается*
orignal
блять теперь нихуя не чистится
orignal
похоже они все близко находятся
R4SAS
Vort: обновил action, посмотрим
orignal
ну все бомба ))
orignal
сейчас тебя доставать будут ))
R4SAS
пф, пускай попробуют
R4SAS
не, там оказывается фряха в бутлупе. так что отключу сборку под него
R4SAS
В дальнейшем надо попробовать переключиться на cross-platform-actions
R4SAS
*** испарился ***
Vort
orignal: не могут все близко находиться
orignal
нет конечно просто говорю что вижу
orignal
многовато их
weko
да раз костыль, так сортируй и чисти 30% самые дальние ))
orignal
а нет все нормально стало чиститься
Vort
weko: ближних должно быть меньше процента
Vort
orignal: час аптайма надо было подождать?
weko
вообще не одобряю это изнасилование NetDb
orignal
ну да. чтобы получасовые начали отрабатывать как надо
orignal
weko ну так всякий шлак надо как то вычищать
orignal
а то болтается и мешает
Vort
ага, а я говорил, что ступеньку на отметке в час после запуска видел
weko
очередная потенциальная возможность для майора делать атаки
weko
куча RI просто не должно быть проблемой
Vort
weko: так хрен его знает что именно даёт проблемы
Vort
и хрен его знает как это вычислить
orignal
проблема не в куче RI а в куче плохих RI
Vort
возможностей для атаки я тут не вижу
Vort
orignal: ну вот посмотрим на рейт
orignal
пока растет
weko
<Vort> возможностей для атаки я тут не вижу
weko
не значит что их нету. к тому же учитывая предидущие костыли ...
orignal
я бы не сказал что это костыль
weko
ну это и не важно, netdb сделан неверно и в джаве тоже
orignal
естественно
Vort
на отметке аптайма в 1 час 1 минуту у меня с 11к RI прыгнуло на 7к RI. так что работает
orignal
там эта очистка только если выше 6K
tetrimer
Я сейчас у себя попробую...
orignal
цель это действа в уменьшении число роутеров и увеоичении рейта
tetrimer
Посмотрим, у меня тут транзит в основном, так что рейт в районе 20% болтается...
weko
только вот верно будет сделать профилирование
orignal
у меня счас 35%
orignal
weko так сделай ))
Vort
у меня тоже было 20%. завтра посмотрим
orignal
у меня было аж 19 стало 35
orignal
подождем сутки хотя бы
Vort
лучше с документирования уже существующего профилирования начать )
orignal
еще бы знать что там)))
Vort
чтобы можно было хоть сравнить то, что есть с тем, что должно быть
weko
orignal: я уже расписал всё
orignal
я его еще в 2015 году начал писать
weko
ну многоеъ
weko
<Vort> лучше с документирования уже существующего профилирования начать )
weko
смысла мало. там мало параметром
Vort
надо бы измерить "качество" нынешнего профилирования
Vort
затем можно как-то переделать и опять измерить, сравнить с тем, что было до изменения
Vort
менять вслепую - сомнительная затея
weko
качество - текущая скорость и стабильность
weko
очень наглядно