~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
+relaybot
Leopold
Most2
Nausicaa
Vort
Xeha
anon2
nemiga
not_bob_afk
poriori_
profetikla
soos
un
weko
whothefuckami_
orignal
R4SAS надо попробовать на reg
orignal
потому что он там все время запрашивает
orignal
обнаружилась первая проблема
orignal
похоже подсчет числа узлов неправильный
R4SAS
успешно оживил малину, буду её теперь для сборок использовать под rpi
R4SAS
+ добавлю arm64 сборку
R4SAS
ну и теперь малина на NVMe сидит, вместо SD карты
R4SAS
сборку deb пакетов в GHA починят сегодня, уже отрепортил
weko
orignal: я вижу ты решил сразу RI хранить, по сути логично. Но я бы их ещё и какой нибудь список добавил, не знаю. Для подсчёта можно счётчик использовать
weko
немножко про "наболело":
weko
1) нужно починить перезагрузку конфига туннелей и сделать отдельной функцией перезагрузку transient ключей (желательно отдельно :) )
weko
2) по поводу туннелей и затыков - нужно чаще проверять туннель по которо��у идут данные сейчас и тот, на который планируется сменить (не исправит затыки, но они будут не настолько долгими)
weko
3) нужно написать понятную инструкцию по настройке туннелей, чем я могу заняться, возможно сегодня
weko
3 это не наболело, это просто лучше чтобы было))
Vort
решил я получше рассмотреть одну проблему и возникли некоторые вопросы
Vort
orignal: умеет ли i2pd сам определять свой ygg адрес или обязательно этот адрес надо указывать в конфиге?
R4SAS
Vort: по умолчанию возьмет 2XX: если игг локальный
Vort
ок, спасибо. попробую. правда, это усложняет ситуацию
Vort
я пытаюсь понять, сколько акцепторов нужно для нормальной работы клирнет v6 + ygg v6
R4SAS
2
Vort
ну а вот в коде i2pd, похоже, один
R4SAS
нет
R4SAS
в коде то один, но для ygg вызывается этот же, только указывается адрес
Vort
один, похоже, уничтожается и создаётся сразу другой
R4SAS
он в отдельном RunnableService
Vort
github.com/PurpleI2P/i2pd/blob/d602ea106148053b2b95cd24d99e1b6797752104/libi2pd/NTCP2.cpp#L1280
R4SAS
GetService ()
R4SAS
лось скоро будет, ответит
orignal
Vort умеет конечно
Vort
ок, тогда следующий вопрос про акцепторы
orignal
2 ацептор один для v4 другой для v6
Vort
вроде бы надо два v6, но в коде переменная только для одного
orignal
если у тебя на :: то один v6
orignal
если приявязка к разными интерйесам то сделает два
orignal
можно в приципе вообще один ацептор сделать и на 4 и 6
orignal
но я опять же этот код добавлял позднее потому не сделал
orignal
weko так счетчик же есть
orignal
polistern кстати твоя почередь
polistern
Куда?)
Vort
"<~orignal> если у тебя на :: то один v6" по факту я это вижу. но, похоже, такой эффект идёт из-за фейла одного из акцепторов
Vort
"<~orignal> если приявязка к разными интерйесам то сделает два" - так переменная только одна. разве первый не уничтожится при создании второго?
orignal
Vort ты прав да
orignal
там похоже не сделано жто
orignal
в случае когда адрес ipv6 и ygg указаны явно
orignal
как обычно собирался сделать не сделать
polistern
orignal, куда очередь то?
orignal
на реализациб DHT в коде
orignal
давай у себя тоже на основе того что у меня в KadDHT лежит
polistern
Ааа, так то да, но при 20 живых узлах прироста не будет явного) Но поменять буквально пару переменных получается... На выходных гляну.
Vort
мне кажется, что код должен осознанно создавать один акцептор в случае, когда два не нужны. сейчас это, похоже, получается в результате ошибки при создании второго
orignal
Vort должно быть 3 если у всех локальные адреса разные
orignal
но я как обычно это не сделал
Vort
то есть, вариант с двумя прибитыми адресами, скорее всего, будет глючить, да. но и другие варианты работают не совсем корректно сейчас
orignal
счас ygg + ipv6 работает когда ygg адрес явно не указан
Vort
работают, видимо, когда хоть что-то явно не указано
orignal
ну да
Vort
и удаётся повесить акцептор на ::
orignal
именно так
orignal
говорю же не сделал
orignal
собирался а не сделал
Vort
да я просто уточнил, что там все варианты надо обдумать, а не только явно нерабочие
Vort
с чего же я начал разбирательство: error - NTCP2: Accept ipv6 error Операция ввода/вывода была прервана из-за завершения потока команд или по запросу приложения
orignal
надо
orignal
в свое время ygg добавляли сбоку
orignal
потом добавили привязку к адресам
orignal
ну логично
Vort
вот та ошибка - это не нормально даже при условии, что ygg у меня полностью нормально работает
orignal
значит у тебя выходящие по ipv6 не работают
Vort
у меня, кстати, ygg адрес прибит, а клирнетовый - нет
Vort
работают, в том то и дело )
weko
orignal: кстати, помнишь тот прикол с подменой портов, и то, что он резко пропал? А не могла ли это быть попытка атаки?
orignal
weko и как работала эта атака?
weko
Какие то пиры слали неверные порты
orignal
так ты же сам видел снаружи
orignal
причем тут пиры?
Vort
иногда надо разбираться также, почему код работает при том, что по логике он работать не должен. бывает, что два бага друг друга компенсируют, к примеру :)
weko
Это было другое
weko
Вот что меня навело на такую мысль
weko
Что статус Full Cone NAT ставиться очень редко
orignal
не видно см ысла в такой атаке
weko
Тоесть порт неверных приходит не так уж часто
weko
orignal: а я вижу
weko
Сделать так, чтобы пиры отключили флудфилы и ставили U
weko
Ну тоесть переставили публиковать адреса
orignal
так надо захватить много узлов для этого
orignal
иначе все равно 5 придет
weko
Всё равно ведь странно что оно резко пропадало
orignal
ничего странного
orignal
логику просто поменяли
weko
А обрабатываются только те сообщения только пиртестов, заброшенных нами?
orignal
polistern то что сегодня 20 узлов не значит что завтра не будет 20K
orignal
там счас хитро
orignal
мы же это обсуждали
polistern
А ты оптимист)
orignal
polistern на так знаешь ли были времена когда ipv4 был на каждой сетевой карте с выходом в интернет ))
orignal
реальный
orignal
и по диалапу даже поклбчаеюся можно было получить сколько требовалось
polistern
Это да, было время) Да надо ещё правки внести, про которые Джефф говорил.
weko
Я почему спрашиваю - не может ли быть, что нам присылают 5 сообщений, а мы не смотрим, запрашивали ли мы их
weko
5 сообщений подряд именно
orignal
ну смотри при тысяче флудфилов все работает нормально
orignal
при 8 тыс уже начинаются проблемы
orignal
weko мы nonce проверяем
weko
orignal: тоесть?
orignal
когда мы начинаем пиртест
orignal
каждой серии присваивается nonce
orignal
потому незпрашенное прислать не получится
weko
Тогда окей
orignal
кроме того оно же обязательно содержить подпись
orignal
твою
weko
Ну подпись понятно
weko
обнаружил очень интересную вещь
orignal
давай
weko
забыл как называется
weko
короче в b32 для служебных целей
weko
висит застрявший стрим
weko
нету лиссетов, а стрим висит
weko
при чём received не 0
Vort
а что за стримы там? скачка адресбука?
weko
я не знаю...
weko
но сам факт что стрим висит, лиссета нету
Vort
destination секретный?
weko
а received не 0
Vort
может по нему будет понятно
weko
не знаю... я бы не стал лишний раз говорить... одно могу сказать, что локальный b32 в списке моих туннелей нету
Vort
не shx5vqsw7usdaunyzr2qmes2fq37oumybpudrd4jjj4e4vk4uusa ли?
orignal
shared local destination
weko
Vort: нет
weko
orignal: во!
orignal
адресбук это
weko
дааа
weko
а почему висит то?
orignal
через несколько минут закроется
Vort
веб сервер тупит, небось
weko
Vort: лиссетов нету
weko
вебсервер тут не при чём
orignal
значит бага в стриме
orignal
тут смотреть надо короче
weko
RTT почти 8 тыщ
weko
и не меняется
Vort
нет потока данных - нет изменения RTT
weko
надо что-то в логах смотреть?
Vort
поищи лучше чей destination
orignal
да адреная книга это
orignal
ничего другого там не бывает
Vort
в addresses.csv глянь, есть ли он
orignal
раз стрим есть значит лизсет был
weko
<Vort> поищи лучше чей destination
weko
я не думаю что это имеет значение
orignal
почему не закрылся вот x3
orignal
бага
weko
надо смотреть тогда, бага может не приятная, если повторится в стримах юзера
Vort
"<weko> я не думаю что это имеет значение" тебе не интересно, с чем устанавливает коннект твой узел?
weko
поэтому я и спросил про логи
weko
Vort: так лось же сказал, скачивание адресной книги
weko
с подписок
weko
один из адресов указаных в конфиге, хочешь посмотрю
Vort
weko: то есть, что-то отличное от reg.i2p ?
weko
ну так подписка не одна и не две
orignal
да эта бага годами
orignal
так поищи в адресах
weko
щас посмотрю
Vort
может, бага вылазит при взаимодействии именно с этим узлом
Vort
может, он перегружен, допустим
weko
это не значит что наш узел не проблемный
weko
точнее проблема точно есть на нашем узле
Vort
воспроизводить может быть проще
weko
ъэто джа
weko
это да
weko
stats.i2p
weko
)))
Vort
:)
orignal
ааа так он отключен
weko
в любом случае проблема
weko
что лиссета нету а стрим есть
orignal
проблема что лизсета нет а стрим есть
weko
))
orignal
посмотрите в addressbook.cpp
orignal
логику
orignal
ну или я
orignal
или может лизсет то есть а сам узел не отвечает
orignal
я не уверен
weko
смотри, данные такие: лиссета нету, received не 0, rtt почти 8тыщ, stats.i2p скачивание адресбука, висит долго
orignal
так лизсет наверное был потом истек
weko
ну это понятно
orignal
почему стрим не закрылся это вопрос
weko
я поэтому и сказал что received не 0 - значит данные текли
orignal
там может отлуп какой
orignal
надо смотреть что за данные
weko
86 байт
weko
пришло
orignal
отлуп значит
weko
но стрим не закрылся
weko
уже понятней
orignal
SYN был был поболее
orignal
вот надо смотреть логику
orignal
а мне счас некогда
weko
это в Streaming.cpp ?
weko
всё ещё висит кстати ))
orignal
да
orignal
там же кнопка есть "закрыть"
orignal
она там не просто так )))
weko
да я вижу
weko
просто хочу посмотреть сколько будет висеть
orignal
вечно
R4SAS
shx5 это рег
weko
kqyp - stats
R4SAS
не вечно
R4SAS
оно будет висеть 5 таймаутов
weko
а один сколько?
R4SAS
не помню
R4SAS
я помню что еще таймаут увеличивается
orignal
ну подожджем
orignal
и да надо код смотреть
weko
else if (flags & PACKET_FLAG_CLOSE)
weko
{
weko
if (m_Status != eStreamStatusClosed)
weko
SendClose ();
weko
m_Status = eStreamStatusClosed;
weko
Terminate ();
weko
}
weko
а если нету флагов?
weko
267-273
weko
а стоп
weko
понял))
weko
другой вопрос что если флаг не задан по каким то причинам, мы тогда думает что стрим ещё существует, видимо
weko
мы думаем*
polistern
orignal, это у тебя двусвязный список в DHT узле? Хитёр)) Теперь поняла то, что ты мне говорил про рекурсию и деревья)
R4SAS
polistern: да ему самому втолдычивать пришлось)))
polistern
А я подумала сам придумал так)
weko
тогда тут сразу две проблемы - в Addressbook.cpp и в Streaming.cpp
weko
первая что стрим не закрывается по таймауту (нормальному)
weko
вторая, что стрим не закрывается опять же по таймауту, но тут уже нам не приходит ответ на уровне i2p (ни лиссета, ни данных)
weko
polistern: ну это я подсказал как сделать, но я проверил свои догадки по одной статье, где описывается алгоритм
R4SAS
orignal: натянул на одну из двух рег нод
R4SAS
вроде разница не заметна
R4SAS
либо не очень существенав
R4SAS
1000 записей опрошены за 4 с лишним минуты
R4SAS
через 10 минут следующий заход, посмотрю еще раз
orignal
а по нагузке?
weko
время я думаю тут больше зависит от сетевого взаимодействия
orignal
R4SAS главный вопрос нормально ли опрашивабтся записи
orignal
на предмет того не поломал ли я чего
polistern
weko, элегантное решение, как по мне. Кто его предложил именно так сделать и использовать - тот и молодец :3
R4SAS
orignal: я не следил
weko
polistern: :D
orignal
polistern ты про DHT?
polistern
Да
orignal
да. идея weko можно сказать гениальна
weko
orignal: i2pd умеет ходить в поддиректории в tunnels.d ?
orignal
делать ветвление по биту
orignal
weko нет
orignal
не сделано... )))
weko
))
R4SAS
и не нужно
weko
ладно, значит аккуратной сортировки не будет... ))
R4SAS
по имени файлов делай
weko
R4SAS: ну почему, я вот хочу аккуратно разложить
R4SAS
00-abc.conf
weko
да понятно что сделаю...
R4SAS
01-abd.conf
R4SAS
и тд
weko
ну я примерно так и делаю
weko
просто с директориями по удобней, как по мне
R4SAS
флаг в руки, барабан на шею
R4SAS
)))
weko
)
R4SAS
CI сборку деб пакетов починили
weko
orignal: i2p.streaming.initialAckDelay - эта опция может быть разная для разных стримов?
weko
чисто физически
R4SAS
она на туннель ставится
weko
это как раз таки да
weko
но если возможно разные значения для разных стримов делать - то тогда это недочёт
weko
с тэгами кстати тоже самое
orignal
вроде ее в опциях передавать можно
orignal
при запросе стрима
weko
<~R4SAS> она на туннель ставится
weko
а стоп, ты имеешь ввиду не на destination, а на именно туннель? тогда это не проблема, кроме неточности документации
R4SAS
weko: не знаю, смотреть надо по коду
orignal
weko_ я не понмю передается ли она в опциях стрима
orignal
там же у него много чего передается
weko
orignal: странно - не работает shared destination для шифрованного лиссета
orignal
в смысле?
weko
в плане несколько серверных туннелей не создаётся
weko
только один
weko
первый
orignal
ну возможно
orignal
я не проверял это
orignal
ты хочешь несколько серверных тоннелей на одном адресе с шифрованным лизсетом
weko
да
weko
на разных портах конечно
weko
inport не писал кстати, потому что он одинаковый с port
orignal
так напиши
orignal
в обоих
weko
хорошо, проверю
orignal
R4SAS а не сделать ли нам новый релиз госткойна?
R4SAS
orignal: там нечего релизить
R4SAS
или ты чего то там делал?
orignal
во первых переход на 0,4
orignal
во вторых выпилил мамбетова из стартовых узлов
R4SAS
еще бы зачистку peers
orignal
ну и естественно новый opessl
R4SAS
который растет хз куда
orignal
я не знаю пока как ее делать
orignal
надо разбираться в коде
orignal
мамбетов сказал у него этого узла больше нет
orignal
и вообще он и адрес проебал
orignal
как обычно
R4SAS
дык обычное дело
orignal
для него да
R4SAS
ни сколь не первый раз
orignal
просто я попытался стартоавтьс нуля и что то вышло хуево я стал смотреть стартовые узлы
R4SAS
у меня на пуле пока что ш2зв отрублен
R4SAS
так что ты и туда не мог подрубиться
R4SAS
сейчас попробую запустить конечно
orignal
ну да
orignal
да счас свою поставил так пашет
orignal
я вот его не понимаю
orignal
ну не хотел больше заниматься передал бы адрес другим
R4SAS
дык шизик же
R4SAS
да, мамбет?
orignal
он точно не шизик
R4SAS
(если он тут конечно)
R4SAS
ну параноей тоже не назовешь)
orignal
это похуизм
orignal
и безотвественность
orignal
еще я думаю openssl 1.0.2 оттуда тоже выкинуть
R4SAS
давно пора
R4SAS
но стоит ли оно того, особенно учитывая что мы на 0.8
R4SAS
сейчас раскочегарится ш2зв на пуле
R4SAS
поставил транк
orignal
так собирается же с 1.1 везде
orignal
и работает
orignal
нахуй там держать такую древность?
R4SAS
лол, я ygg пир вижу там
R4SAS
при чем не один
orignal
так ему ж без разницы какой ipv6
R4SAS
понятное дело, просто факт
R4SAS
вероятно что это s1-s2 между собой
orignal
и неболсь с шифрованием 0
R4SAS
не помню адреса
R4SAS
надо еще как то длину поменять... 3 - много
orignal
а надо?
orignal
чем тебя 3 не устаивает?
orignal
то есть поменять это вообще не вопрос
orignal
там где то константы есть
R4SAS
параметр бы вынести
orignal
так есть параметры
R4SAS
так 2 достаточно
orignal
вроде бы ...
orignal
ты же знаешь что нет
orignal
для полной анонимности надо 3
R4SAS
для полной. а тут разговор о публичной ноде
R4SAS
которая еще своей жопой в клир пашет
orignal
где то есть параметрах это
orignal
на QT морде точно
orignal
скорее всего и в безголовой в конфиге
orignal
даже если нету такой параметр добавить легко
R4SAS
SAM_DEFAULT_I2P_OPTIONS
R4SAS
-i2poptions
R4SAS
#define I2P_SAM_I2P_OPTIONS_DEFAULT SAM_NAME_I2CP_LEASESET_ENC_TYPE "=" SAM_DEFAULT_I2CP_LEASESET_ENC_TYPE // i2cp.leaseSetEncType=0,4
R4SAS
#define SAM_DEFAULT_OUTBOUND_LENGTH 2
R4SAS
это в i2psam.h, но почему тогда строит 3,
R4SAS
хм.
orignal
ну это просто откуда то скопировано
orignal
ну да я постаил 3
orignal
это в гвк было 2
R4SAS
не вижу чего то
R4SAS
ощущение что оно игнорится
R4SAS
точнее его вообще не передает
R4SAS
и берется дефолт из ш2зв
R4SAS
а параметры i2cp в SAM передаются через пробел?
orignal
да так и есть
orignal
inbound.nickname=GOSTcoin-client SIGNATURE_TYPE=7 i2cp.leaseSetEncType=0,4
orignal
все что передается
orignal
но это если по умолчанию
orignal
ну веб морде есть настройки но куда они передаются надо смотреть
orignal
видать не доделал как обычно
R4SAS
вот так сделаю
R4SAS
i2poptions=i2cp.leaseSetEncType=0,4 inbound.length=2 inbound.lengthvariance=1 outbound.length=2 outbound.lengthvariance=1
orignal
себе?
orignal
не надо так
orignal
надо из конфига брать
orignal
в передавать если задано
R4SAS
я в конфиг и закинул
orignal
не понял
orignal
а все понял
orignal
дошло
R4SAS
только у меня ощущение что брыкнулось
R4SAS
потому что сессия появилась, а дест - нет
orignal
ну там думать надо
orignal
мне счас некогда
orignal
посмотри сам
R4SAS
Send: SESSION CREATE STYLE=STREAM ... inbound.nickname=GOSTcoin-client SIGNATURE_TYPE=7 i2cp.leaseSetEncType=0,4 inbound.length=2 inbound.lengthvariance=1 outbound.length=2 outbound.lengthvariance=1
R4SAS
Reply: SESSION STATUS RESULT=OK
R4SAS
смотрю в SAM sessions - а там этой сессии нет. только старая
R4SAS
GOSTcoin-client (OLDSESSION)
orignal
ну так смотри ошибки в i2pd
R4SAS
придется
R4SAS
SAM завис. не дает остановить ш2зв
orignal
цепляйся отладчиком
R4SAS
отладочных символов нет, бессмысленно
R4SAS
сейчас накачу их, посмотрим
R4SAS
вот так оно при перезапуске сделало
orignal
ничего непонятно
R4SAS
17 Thread 0x7ff9f3fff700 (LWP 2251730) "SAM" __lll_lock_wait (futex=futex@entry=0x555e8e109c38, private=0) at lowlevellock.c:52
R4SAS
(gdb) x/3d 0x555e8e109c38
R4SAS
0x555e8e109c38: 2 0 2251714
orignal
ну это нормально
orignal
жлдет готовности дестинейшина
R4SAS
RC крч опять. ступор на блокировках
orignal
стоть
R4SAS
,
R4SAS
?
orignal
а нет нормально
R4SAS
я пока что держу gdb, можно вытянуть
orignal
я думал опять рекусия
R4SAS
крч 2 треда опять друг друга ждут
R4SAS
i2p::client::SAMBridge::FindSession (this=0x555e8e109b10, id="ZTMDG") --- это старый ID, который остался висеть
R4SAS
i2p::client::SAMBridge::FindSession (this=0x555e8e109b10, id="OLFPEQOY") --- это новый, который вообще не появился
orignal
осталось понять почему у старого мьютекс не разблокировался
R4SAS
потому что его не вычистило корректно
orignal
это не два треда это один и тот же тред
R4SAS
как к этому придти: gostcoind stop
orignal
ну понятно опять лажа в сэме
R4SAS
а вот нет
orignal
ну а что это?
R4SAS
старый висит в SAM треде, а новый в daemon
orignal
а ну логично да
orignal
кстати почему в демоне?
R4SAS
Daemon_Singleton::stop
R4SAS
я же говорю, я вызываю остановку и начинается висняк
orignal
так ты останов делаешь что ли?
orignal
остановку чего?
R4SAS
ш2зв
orignal
гостокойна или i2pd?
R4SAS
после того как сессия не убивается
R4SAS
еще раз, по порядку
orignal
<R4SAS> как к этому придти: gostcoind stop
orignal
ну тогда понятно
R4SAS
сначала я делаю остановку гст
orignal
да я все понял
orignal
ты не сказал что отсналиваешь
orignal
я думал висит при создании новой сесии
R4SAS
старая сессия не пропадает из SAM хз почему
R4SAS
запускается гст, он пытается запустить новую, но получает отлуп ибо дест живым считается
orignal
ну это старая проблема
R4SAS
потом уже я пробую остановить ш2зв и получаю блокировку
orignal
так это всегда такое было
orignal
надо разбираться
orignal
опять же все надо
R4SAS
сейчас попробую дебаг врубить
orignal
но некогда
R4SAS
ы)
R4SAS
дебаг вообще мало чего дает
R4SAS
ну, стрим закрылся
R4SAS
а сессия нет
R4SAS
sessionHolder_ = std::make_shared<SessionHolder>(s);
R4SAS
void StreamSessionAdapter::StopSession ()... sessionHolder_ = nullptr;
orignal
ну x3
orignal
мне счас некогда
weko_
orignal: с разными inport работает. ну ты понял что нужно исправить
weko_
точнее с вообще указаными inport
orignal
так это уже говорили
orignal
надо в документации поправить
orignal
что если несоклько то надо inport у все
weko_
лучше сделать чтобы работало
orignal
не лучше
weko_
исходя из просто port=
orignal
там была какая то причина для этого
weko_
так просто же алгоритм, если нету inport, значит он равен port
weko_
разве не так?
R4SAS
не так
orignal
там все сложнее
orignal
там если нету inport то он назначается по умолчанию
orignal
всегда и всем
weko_
0?
R4SAS
да
weko_
понятно
weko_
тогда оке
orignal
там своя логика работы
weko_
надо поправить
orignal
надо в доках прописать
weko_
ты рассказывал
weko_
про логику я знаю
R4SAS
первый туннель всегда слушает inport и 0
weko_
просто про конфиг не знал
R4SAS
а последующие только inport
R4SAS
как пример - irc.r4sas.i2p
R4SAS
любой запрос на любой порт будет перенаправлять на 6667
R4SAS
если обращение конкретно на 80 - то будет вебморда
R4SAS
ну и 6695 еще есть, там znc
weko
R4SAS: знаю про логику подключения, не знал про логику конфига
R4SAS
так вроде логика конфига уже не раз описывалась тут
weko
вероянто, меня тут тогда не было
R4SAS
и с тобой, и без тебя
R4SAS
много раз
weko
ссылка один - там нету про несколько портов... это другое, там вообще про клиентские порты
weko
а вторая - меня не было
weko_
тестировали работу Mindustry - оказалось, нужно поставить дефолтный ЛОКАЛЬНЫЙ порт, и тогда работать будет, любой другой порт не работает. сейчас будем писать им иссуй
weko_
тоесть, видимо, клиент передаёт порт, на который он подключается, он не совпадает с тем, который у сервера - и вылезает ошибка
weko
сейчас всплыла какая то проблема либо несовместимости i2pd и java i2p либо же проблема java i2p... сейчас будем проводить тесты
orignal
все сделал отдельный тред для расшифровки сообшений роутера
weko_
отлично)
weko_
orignal: ксстатииииииии... нам тут внезапно meta leaseset понадобился... это просто сказать, что потребность появилась.
weko_
он ведь позволяет сделать сделать сервисы на разных портах на разных роуте��ах ? условно inport 1 на роутере A, inport 2 на роутере B, но при этом один b32 ?
orignal
он не реализован
orignal
не знаю
orignal
инетресный вопрос
weko_
<~orignal> он не реализован
weko_
вот я как раз и говорю... чтобы ты знал, что потребность сущетсвует) если конечно там такая фича есть
weko_
orignal: в нашем случае мы хотим несколько серверов игр запускать с разных роутеров на одном адресе
orignal
подумать надо
orignal
ха
weko_
аа?
orignal
оказывается на флудфиле рашифровка занимает приличную долю проца
weko_
ох
orignal
как и предполагалось
weko_
((
weko_
Антошка, Антошка, пойдём писать джавистам!
weko_
)))
orignal
так что вынесение в отлельный тред было правильным рещением
orignal
самое главное что теперь трафик не затормаживает
weko_
конечно
weko_
не будет во время атак стуканья в 100%
weko_
учитывая оптимизации
weko_
dht + отдельный тред
weko_
вот бы проверить.... ))
orignal
не в этом дело
weko_
а в чём?
orignal
тормоза в транспортном треде который обслуживает тысячи соединений это вещь неприятная
weko_
а ну да
weko_
может и рабоать лучше будет ))
Vort
а я этот тред даже найти пока что не могу )
weko_
мне правда щас не до обновлений, мы тут с леопольдом пытаемя отловить баг
weko_
с миндастри
weko_
тот самый
weko_
хотели проверить как будет работать в джаве - так не нашли как созадть udp серверный туннель
weko_
ну я спросил у них там в чате
weko_
пока что решили проверить снова с i2pd
orignal
у них нет UDP тоннелей ))
orignal
у них надо отдельную прогу streamr запускать
weko
<~orignal> у них нет UDP тоннелей ))
weko
есть
weko
но похоже нету серверного
weko
точнее он называется серверный, но по факту клиентский
weko
тот самый streamr
orignal
кстати наблюдение
orignal
похоже число флудфилов зависит от времени суток
weko
довольно таки логично
orignal
ну нет
orignal
флудфил должен по идее работать круглые сутки
weko
в идеале))
weko
идеала нету)
orignal
ну так можно новую эвристику
weko
ну надо сделать профилирование чтобы минимум было 90 процента аптайма
orignal
флудфил с низким аптаймом флудфилом не считать
orignal
угу
weko
иначе брать флудфил реже
weko
я думаю надо просто реже его использовать
orignal
я все говорю деду что надо ужесточать требования к флудфилам
weko
до 50%
weko
а ниже вообще не брать
orignal
а то добром это не кончится
orignal
вместо годных флуфилов будет всякое говно
orignal
неспособное держать нагрущку
weko
orignal: у нас появилось подозрение откуда баг
weko
udp же писал другой человек
orignal
ну да
orignal
и его зовут jeff
orignal
у нас
weko
в tcp точно известно, что выбирает 127.0.0.0/8 адрес на основе b32
Leopold_
heeey jeff C:
weko
а в udp также?
orignal
так спросите у него
orignal
пока он здесь
weko
jeff: Udp use address from 127.0.0.1/8 like TCP does ?
orignal
UDP tunnel
weko
yes
weko
orignal: суть в том, что возможно если коннект с одного адреса, и с одним и там же клиетским портом (как в udp), то игра думает что мы с одного адреса
orignal
так посмотрите в коде
orignal
как отсылается пакет
weko
у меня изначально было такое предположение, но сейчас мне показалось странным, что один из игровых действий сихнронизируца с леопольдом
weko
тоесть что делаю я - то и делает он (как я вижу)
weko
даже два момента
weko
постройка и снос, добыча
weko
движение не работает скорее всего из-за логики кода движения в игре, как я предполагаю...
orignal
if(m_IsUniqueLocal && m_LocalAddress.is_loopback())
orignal
{
orignal
auto ident = from.GetIdentHash();
orignal
addr = GetLoopbackAddressFor(ident);
orignal
}
orignal
else
orignal
addr = m_LocalAddress;
orignal
boost::asio::ip::udp::endpoint ep(addr, 0);
orignal
на линуксе должно работать
weko
похоже что игра не различает разные адрес loopback... возможно
weko
надо сделать дамп
weko
Leopold: сделаешь?
Leopold
Я пробую java i2p
Leopold
Сделать сперва дамп?
weko
давай
weko
нам нужно понять, точно ли разные адрес
weko
потом ешё кое что посмотрим
Vort
"<~orignal> оказывается на флудфиле рашифровка занимает приличную долю проца" какая функция должна быть самая прожорливая?
Vort
дело в том, что я вообще не вижу нагрузки в этом потоке (точнее, не вижу потока)
Vort
или я где-то ошибся или условия другие
orignal
он называется Router
orignal
именно флудфил
orignal
если
Vort
названия так просто в винде не словить, к сожалению
Vort
поэтому спрашиваю про функции
Vort
да, флудфил
orignal
RouterIncomingRatchetSession::HandleNextMessage
orignal
думаю она будет
Vort
ок, поищу
orignal
так расшифровка идет
orignal
которая вызывает RouterContext::Decrypt
orignal
а эта ECIESX25519AEADRatchetDecryptor::Decrypt
orignal
а там Agree для x25519
Vort
еле нашёл. в общем, получается вот так:
Vort
i2pd в среднем сейчас потребляет около 2% всего моего CPU
Vort
тред с той криптой потребляет 2% от всей загрузки i2pd
Vort
и в треде с криптой 99% времени CPU уходит на синхронизацию (GetQueuedCompletionStatus) и 1% на крипту
Vort
то есть, эта крипта (i2p::garlic::RouterIncomingRatchetSession::HandleNextMessage) ест у меня в итоге 0.0004% от всего CPU
Vort
неудивительно что я за ней больше часа гонялся :)
weko_
Vort:" пол дня за ней гонялся!"