~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
+Xeha
AreEnn_
Guest58423
Guest7184
Most2
Nausicaa
Nikat
Opax
Qbit
Vort
`
anon3
b3t4f4c3
fidoid
i
karamba_i2p
nemiga
not_bob_afk
poriori
profetikla
qend
r3med1tz
segfault
soos
teeth
uis
un
user
weko
whothefuckami
woodwose
orignal
onon короче главные тормоза при запросе лизсета это не сам запрос а ожидание ответа
orignal
таймаут
orignal
то есть вот мы думаем что флудфил ближайший а он падла не отвечает
orignal
и мы ждем
segfault
orignal: почему бы не послать сразу нескольким флудфилам и не воспринять ответ первого?
segfault
orignal: только это надо делать опциональным, вдруг кто-то попытается атаковать сети, заполнив сеть множество флудфлов у которых ping будет ниже, чем у других
Vort
"<~orignal> то есть вот мы думаем что флудфил ближайший а он падла не отвечает" если предположить, что эти узлы работают на оригинальных i2pd/i2p java бинарниках, то это, всё-таки, проблема кода
Vort
может идёт упор в какой-то ресурс (сеть, CPU, диск), а может и вообще явный баг где-то сидит (допустим, ответ уходит куда-то не туда)
orignal
ну вот onon жаловался на межденныость поиска лизсета
orignal
какие вариаеты решеия?
orignal
флудфил кстати может не отвечать просто потому что выключен в этот момент
onon
флудфил должен отвечать максимально быстро, а значит должен быть доступен максимально быстро
onon
В идеале любой фф должен быть доступен напрямую из ipv4 & ipv6
onon
Но так как это требование пока невыполнимо, можно сделать костыль в виде однохопового туннеля на каждом клиенте, построенного из ipv4&ipv6 роутера
onon
Чтобы через него ipv4-only могли бы максимально быстро достучаться до ipv6 флудфила
segfault
orignal: почему бы не послать сразу нескольким флудфилам и не воспринять ответ первого?
segfault
orignal: только это надо делать опциональным, вдруг кто-то попытается атаковать сети, заполнив сеть множество флудфлов у которых ping будет ниже, чем у других
onon
И наоборот ipv6-only до ipv4 флудфила
orignal
onon ну вот даун он
orignal
и некому ответить
orignal
segfault а почему бы не помолчать?
onon
Ну так если не отвечает, таймаут
onon
И следующий
segfault
orignal: а что плохого в этом варианте?
orignal
onon так мы так и делаем но таймут там 5 секунд
onon
Это слишком много
orignal
ови предложения?
orignal
segfault не надо считать себя самым умным, раз так сделано значит есть на то причина
orignal
я предлагаю вот что
segfault
orignal: а какая?
onon
Если пинг у нас 250, можно сделать три ретрансмита
orignal
запрашиваем флудфил
onon
И через секунду смена
orignal
если через секнду нет ответа запршиваем следующий
orignal
а этот ждем 5 секунд
orignal
кто первый встал того и тапки
orignal
еесли вдруг первый ответит
segfault
orignal: и как таймаут 1 сек для первого исправляет моё предложение
orignal
segfault иди этим деду мозги еби
orignal
ты заебал встречать в рузговор
orignal
не по делу
orignal
прежде чем что то сказать неплохо бы сначала поразмслить
orignal
и осознать что собрался сказать хуйню
onon
У нас сервера на разных континентах, естественно пинг до всех будет разный
orignal
ну так че делать то?
onon
Так годное предложение у тебя вроде
onon
Лучше, чем просто ждать 5 сек
orignal
и да если таймут у лучшего а все равно не нашли то попытаться снова
orignal
счас спрошу ка я деда
segfault
а если делать сразу несколько запросов к случайным флудфилам, брать первый ответ, но гарантировать, что ответ от одного и того же флудфила не будет взят два (или более раз) подряд?
segfault
то есть рандом будет, но в приоритете будут быстрые
onon
У нас запрос идёт не к случайным флудфилам
onon
А к тем, кто ближе по хешу
segfault
ну это фактически случайный
orignal
нет это не фактически случайный
orignal
все таки ты попробуй сначала думать прежде чем писать
segfault
orignal: там же число меняется каждые сутки, если я правильно помню
orignal
ой все
orignal
спросил у деда насчет их таймаута
Vort
"<~orignal> какие вариаеты решеия?" локализовать проблему надо вначале. потом о решениях думать
Vort
"<~orignal> флудфил кстати может не отвечать просто потому что выключен в этот момент" ну вот надо узнать, как часто выключен, а как часто - глючит
orignal
проблема что флудфил в этот момент даун
Vort
думаю, в большинстве случаев будет вариант "глючит"
orignal
а я думаю что вариант "глючат тоннели"
Vort
в смысле "даун"? нету транспортной сессии?
onon
А может в сети затор и большинство пакетов дропаются
Vort
onon: в это можно было бы поверить были бы лаги по полсекунды допустим. но по 5-10 сек - тут можно сотню ретрансмитов успеть сделать
Vort
но вообще могут быть конечно проблемы в сети. но это надо доказать как-то
Vort
может кто X флаг на dial-up вкорячил. других идей нету )
onon
Всё смешалось, люди, кони.
orignal
даун просто выключен по какой то причине
onon
Мы про direct или через туннели
orignal
лизсеты всегда через тоннели
Vort
orignal: типа с запросами RI иначе?
Vort
или что там напрямик
Vort
вот идея для анализа...
orignal
там обычно напрямую
orignal
если можно
orignal
а лизсеты всегда тоннель
Vort
стоит проверить, если через определённый фф лизсеты лагают, то будут ли лагать и RI
Vort
я думаю, там всё будет лагучее. но желательно быть уверенными
orignal
это сразу деанон
onon
Через туннели таймаут в 1 сек норм
onon
Кмк
orignal
понятно будет кто запрашиваетэ
orignal
через тоннели же спецально делается
orignal
чтобы было непонятно что запрашивает лизсет
Vort
"<~orignal> это сразу деанон" да я же про анализ говорю
Vort
локализацию проблемы
Vort
код пока что трогать не предлагаю
onon
1 сек это в верхней части диапазона для direct и в нижней части для 3хоп туннеля
onon
Если никто не отвечает можно пробовать следующий
Vort
создатся ощущение "заметания пыли под ковёр". но практично, да
unlike
<Vort> может кто X флаг на dial-up вкорячил. других идей нету ). а разве узлы должны полагаться на флаги, а не на фактическую статистику?
unlike
примерно как в https скорость постепенно повышается пока не пойдут потери
Vort
unlike: ну вот сейчас и сделан бан лагающих флудфилов. но это мало помогает, потому что первоисточник проблемы не выявлен
Vort
что касается проверки флага, то это очень-очень непросто
Vort
полная информации о нагрузке узла есть только у этого самого узла
unlike
но ведь в http это как-то реализовано. что он плавно заполняет весь канал
unlike
точнее в tcp вроде. плаваю здесь немного
onon
Да, это называется congestion control
onon
Но при чем здесь это - не понятно
orignal
просто в отличие от клирнета тут узлы могут просто дохнуть
Vort
unlike: ну вот, допустим, 64КБ/с канал плавно заполнен 1000 коннектами. на другой стороне скорость в 64 байта/сек не сильно будет отличаться от варианта "узел оффлайн"
Vort
orignal: поэтому предлагаю проверить, насколько часто это случается по сравнению с вариантом "живой, но не совсем"
orignal
возможно
orignal
в любом случае на пркатике нудна вторая попытка
unlike
а что за история с лагающиме флудфилами? низкая скорость или большие потери, пинг?
onon
Да с флудфилами проблема в том, что java и i2pd имеют о них разное представление
onon
javai2p например считает занатовских флудфилов валидными
onon
Что на мой взгляд совершеннейшая глупость
unlike
т.е проблема политическая, а не техническая
onon
И вот представь, сайт хостится на яве, и публикует свой лизсет на занатовских флудфилах, а клиент с i2pd пытается получить к нему доступ, но не может найти лизсет
unlike
а через introducer нельзя?
unlike
или это только для обычных пиров работает
onon
Через интродьюсеров можно, вот только это сама по себе очень медленная процедура, а в некоторых случаях вообще не выполнимая
onon
А нам нужно чтобы флудфилы были доступны максимально быстро
orignal
флудфил через интродьюсер так себе идея
orignal
надо осозновать что к флудфилу прилетают сотни запросов в секунду
orignal
на них реально высокая нагрузка
unlike
а как тогда javai2p работает? через introducer?
orignal
они не поднимают флудфил на U
orignal
но они считают U за флудфилы
orignal
а мы нет
orignal
поднимать флудфил на U это дурость
unlike
окей, считают. но как они с ними работают?
onon
Через интродьюсеры
onon
А как ещё?
onon
Но как я выше указал, это очень медленно, а иногда вообще не возможно.
unlike
но это лучше чем вообще никак, правильно?
onon
В текущих реалиях - не правильно
unlike
почему?
onon
Потому что интродьюсер в данном случает получает нагрузку, сопоставимую с самим флудфилом
orignal
плохой флудфил хуже чем его отсуствие
unlike
тогда остается только политическая плоскость. уговорить всех перейти на i2pd или договориться с java developers
orignal
не в этом главная проблема
unlike
если вы не можете повлиять политически и при этом число роутеров javai2p составляет существенную часть сети то придеться делать как javai2p. иначе это вредит всей сети
orignal
нет
onon
Значит подождём, пока i2pd будет составлять большую часть сети
orignal
проблема вовсе не в этом
unlike
а в чем?
orignal
читай выше
orignal
что флудфил может не ответить а мы ждем слишком додго
unlike
а как это в javai2p сделано? какие-там таймауты
orignal
вот я и спросил деда
unlike
так-то это неразрешимая проблема технически. заранее ведь неизвестно ответит или нет. остается играться с таймаутом.
orignal
ну почему? можно например запрашивать 2 сразу можно запрашивать попторно
orignal
можно по более сложному алгоритму
unlike
это просто сужает окно вероятности. проще сделать предположение
unlike
но всеравно гадание
orignal
так вопрос чтобы поиск лизсета ускорить в большинстве случаев
orignal
onon считаем что он слишком медленный
onon
А ты, что, считаешь иначе?
unlike
чисто по вероятности нужно тогда сразу к нескольим флудфилам обращаться и брать самого быстрого. но это увеличит нагрузку на сеть
unlike
за все надо платить
orignal
сразу к нескольким это заведомо засирать всю сеть
orignal
флудфилов и так то не хватает
Spirit90
Я правильно понимаю, что strchr пробегает по всей строке и просто находит нужный символ?
Gamma
<Gamma> onon, orignal -
Gamma
<Gamma> Why read crystals of useless truths?, [22.12.2024 22:37]
Gamma
<Gamma> продумываю как в и2п гламурные аппы делать однокликовые чтоб клик и пашет
Gamma
<Gamma> Why read crystals of useless truths?, [22.12.2024 22:37]
Gamma
<Gamma> это придётся свой форк и2пд кодить
Gamma
<Gamma> он будет называться i2pd-component
Gamma
<Gamma> orignal я думаю не потерпит таких нововведений в и2пд
Gamma
<Gamma> чтобы без .conf файлов совсем.
Gamma
<Gamma> умело чтоб так
Gamma
ну и ещё easy to operate daemons
orignal
Spirit90 это канал о разработке i2pd а не обучении нубов программированию
Gamma
вторая purpose
Spirit90
orignal: зачем так? Мне хочется вам помочь в разработке...
segfault
Spirit90: что мешает прочитать man strchr? зачем тратить время других людей?
trust
Blinded message
tetrimer_
Получилось снять более менее разумную корку при shutdown на FreeBSD.
tetrimer_
Reading symbols from /usr/local/bin/i2pd-g39954480...
tetrimer_
[New LWP 109548]
tetrimer_
warning: Could not load shared library symbols for [vdso].
tetrimer_
Do you need "set solib-search-path" or "set sysroot"?
tetrimer_
Core was generated by `/usr/local/bin/i2pd --pidfile /var/run/i2pd/i2pd.pid --service --datadir /var/db'.
tetrimer_
Program terminated with signal SIGABRT, Aborted.
tetrimer_
Sent by thr_kill() from pid 8460 and user 255.
tetrimer_
#0 0x00000008286c154a in thr_kill () from /lib/libc.so.7
tetrimer_
(gdb) bt
tetrimer_
#0 0x00000008286c154a in thr_kill () from /lib/libc.so.7
tetrimer_
#1 0x000000082863b414 in raise () from /lib/libc.so.7
tetrimer_
#2 0x00000008286eb326 in abort () from /lib/libc.so.7
tetrimer_
#3 0x00000000004dfcbe in __clang_call_terminate ()
tetrimer_
#4 0x0000000000709703 in boost::detail::sp_counted_impl_pd<std::__1::array<std::__1::shared_ptr<i2p::data::RouterInfo::Address>, 5ul>*, std::__1::__bind<void (i2p::util::MemoryPoolMt<std::__1::array<std::__1::shared_ptr<i2p::data::RouterInfo::Address>, 5ul> >::*)(std::__1::array<std::__1::shared_ptr<i2p::data::RouterInfo::Address>, 5ul>*),
tetrimer_
i2p::util::MemoryPoolMt<std::__1::array<std::__1::shared_ptr<i2p::data::RouterInfo::Address>, 5ul> >*, std::__1::placeholders::__ph<1> const&> >::dispose (
tetrimer_
this=0x850587420) at /usr/local/include/boost/smart_ptr/detail/sp_counted_impl.hpp:179
tetrimer_
#5 0x0000000000518740 in boost::detail::sp_counted_base::release (this=0x850587420) at /usr/local/include/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp:120
tetrimer_
#6 0x00000000005186ea in boost::detail::shared_count::~shared_count (this=0x85a51ecf8) at /usr/local/include/boost/smart_ptr/detail/shared_count.hpp:432
tetrimer_
#7 0x00000000005106d9 in boost::shared_ptr<std::__1::array<std::__1::shared_ptr<i2p::data::RouterInfo::Address>, 5ul> >::~shared_ptr (this=0x85a51ecf0) at /usr/local/include/boost/smart_ptr/shared_ptr.hpp:336
tetrimer_
#8 0x00000000006fc70b in i2p::data::RouterInfo::~RouterInfo (this=0x85a51ecb8) at libi2pd/RouterInfo.cpp:84
tetrimer_
#9 0x00000000006a09e7 in _ZNSt3__112__destroy_atB8se180100IN3i2p4data10RouterInfoETnNS_9enable_ifIXntsr8is_arrayIT_EE5valueEiE4typeELi0EEEvPS5_ (__loc=0x85a51ecb8) at /usr/include/c++/v1/__memory/construct_at.h:67
tetrimer_
#10 0x00000000006a09b9 in std::__1::allocator_traits<std::__1::allocator<i2p::data::RouterInfo> >::destroy[abi:se180100]<i2p::data::RouterInfo, void, void>(std::__1::allocator<i2p::data::RouterInfo>&, i2p::data::RouterInfo*) (__p=0x85a51ecb8) at /usr/include/c++/v1/__memory/allocator_traits.h:316
tetrimer_
#11 0x00000000006a097e in _ZNSt3__120__shared_ptr_emplaceIN3i2p4data10RouterInfoENS_9allocatorIS3_EEE21__on_zero_shared_implB8se180100IS5_TnNS_9enable_ifIXntsr7is_sameINT_10value_typeENS_19__for_overwrite_tagEEE5valueEiE4typeELi0EEEvv (this=0x85a51eca0) at /usr/include/c++/v1/__memory/shared_ptr.h:284
tetrimer_
#12 0x00000000006a0805 in std::__1::__shared_ptr_emplace<i2p::data::RouterInfo, std::__1::allocator<i2p::data::RouterInfo> >::__on_zero_shared (this=0x85a51eca0) at /usr/include/c++/v1/__memory/shared_ptr.h:287
tetrimer_
#13 0x00000000004e7a51 in std::__1::__shared_count::__release_shared[abi:se180100]() ( this=0x85a51eca0) at /usr/include/c++/v1/__memory/shared_ptr.h:157
tetrimer_
--Type <RET> for more, q to quit, c to continue without paging--
tetrimer_
#14 0x00000000004e79f9 in std::__1::__shared_weak_count::__release_shared[abi:se180100]() ( this=0x85a51eca0) at /usr/include/c++/v1/__memory/shared_ptr.h:186
tetrimer_
#15 0x00000000005d3cfc in std::__1::shared_ptr<i2p::data::RouterInfo const>::~shared_ptr[abi:se180100]() (this=0x860366730) at /usr/include/c++/v1/__memory/shared_ptr.h:648
tetrimer_
#16 0x0000000000697bb7 in _ZNSt3__112__destroy_atB8se180100INS_10shared_ptrIKN3i2p4data10RouterInfoEEETnNS_9enable_ifIXntsr8is_arrayIT_EE5valueEiE4typeELi0EEEvPS8_ (__loc=0x860366730) at /usr/include/c++/v1/__memory/construct_at.h:67
tetrimer_
#17 0x0000000000697b79 in std::__1::allocator_traits<std::__1::allocator<std::__1::shared_ptr<i2p::data::RouterInfo const> > >::destroy[abi:se180100]<std::__1::shared_ptr<i2p::data::RouterInfo const>, void, void>(std::__1::allocator<std::__1::shared_ptr<i2p::data::RouterInfo const> >&, std::__1::shared_ptr<i2p::data::RouterInfo const>*) (__p=0x860366730)
tetrimer_
at /usr/include/c++/v1/__memory/allocator_traits.h:316
tetrimer_
#18 0x0000000000697b38 in std::__1::vector<std::__1::shared_ptr<i2p::data::RouterInfo const>, std::__1::allocator<std::__1::shared_ptr<i2p::data::RouterInfo const> > >::__base_destruct_at_end[abi:se180100](std::__1::shared_ptr<i2p::data::RouterInfo const>*) (this=0xa2a148 <i2p::data::netdb+552>, __new_last=0x860364800) at /usr/include/c++/v1/vector:926
tetrimer_
#19 0x0000000000697a48 in std::__1::vector<std::__1::shared_ptr<i2p::data::RouterInfo const>, std::__1::allocator<std::__1::shared_ptr<i2p::data::RouterInfo const> > >::__clear[abi:se180100]() ( this=0xa2a148 <i2p::data::netdb+552>) at /usr/include/c++/v1/vector:920
tetrimer_
#20 0x00000000006979dd in std::__1::vector<std::__1::shared_ptr<i2p::data::RouterInfo const>, std::__1::allocator<std::__1::shared_ptr<i2p::data::RouterInfo const> > >::__destroy_vector::operator()[abi:se180100]() (this=0x82132c960) at /usr/include/c++/v1/vector:490
tetrimer_
#21 0x0000000000692017 in std::__1::vector<std::__1::shared_ptr<i2p::data::RouterInfo const>, std::__1::allocator<std::__1::shared_ptr<i2p::data::RouterInfo const> > >::~vector[abi:se180100]() ( this=0xa2a148 <i2p::data::netdb+552>) at /usr/include/c++/v1/vector:501
tetrimer_
#22 0x00000000006802d9 in i2p::data::NetDb::~NetDb (this=0xa29f20 <i2p::data::netdb>) at libi2pd/NetDb.cpp:51
tetrimer_
#23 0x00000008286eb6ff in __cxa_finalize () from /lib/libc.so.7
tetrimer_
#24 0x00000008286ebc31 in exit () from /lib/libc.so.7
tetrimer_
#25 0x00000000004dc427 in _start (ap=<optimized out>, cleanup=<optimized out>) at /usr/src/lib/csu/amd64/crt1_c.c:71
tetrimer_
Блин, хотел ссылку кинуть. Прошу прощения.
orignal
спс
orignal
починю
R4SAS-hex-ilita
скоро запустится
R4SAS
вроде всё
orignal
дед сказал у них 3 секунды
orignal
такой вопрос: ставим ли для роутеров через тор букву H?
orignal
un твое мнение?