~AreEnn_
~R4SAS
~acetone
~orignal
~villain
@onon
&N00B
+Xeha
AreEnn
CreateEnergyDecreaseEntropy
DsecT
Guest98878
Hypnosis
Most
Nos4-Group
Opax
SOS
ahiru
ananas
anontor
avele
ch
duanin2
entity
equinoxe
fidoid
ice_juice
justaperson
karamba_i2p
laugh4me
lilith
luvme
mareki2p
n1
pinotto
poriori
profetikla
ps
qend
rumpelstilzchen
shaye
sonya
tensor
un
urist_
vade
void
плаZскуф
onon
Floodfills: 914
orignal
когда уже тысяча?
onon
Когда бюджет выделят на аренду новых мощностей
Vort
у меня показатели как обычно. Floodfills: 607 LeaseSets: 385
onon
Это на U роутере с низким транзитом
onon
Видимо на высоком транзите пакеты теряются и флудфилы считаются недоступными и выкидываются
orignal
как это у тебя U роутер стал флудфилом?
Vort
многовато для выкидывания
onon
Никак
Vort
но возможно, да
onon
Это не флудфил
Vort
когда я проверял, около 100-200 выкидывалось
aboba
Сижу, не могу понять, почему git diff показывает, что изменен весь файл при сохранении. Оказалось, часть файлов i2pd в кодировке us-ascii, а часть — в utf-8. Очень неудобно. Может, закинуть PR, чтобы перевести все
aboba
файлы в utf-8, и добавить pre-commit hook для проверки кодировки изменений?
zIodtnSl
давно пора
aboba
Сейчас, хочу услышать мнение original, может в этом сокральный смысл есть. Либо он сам сделает =)
aboba
*orignal
orignal
нет
orignal
не надо этим заниматься
orignal
умножение сущностей без налобности
orignal
а UTF-8 по уму должно быть только в файлах с перенводами
orignal
все остальное обычное ASCII
aboba
Понял, спасибо
onon
А для чего в SSU2 при вызове ретрансмита туда передаётся таймстемп, а не вызывается из самой функции?
onon
Это оптимизация или есть какая то логика из-за времени выполнения кода
orignal
чтобы один раз его брать
orignal
операция взятия тайстампа тоже отнимает сколько то времени
onon
Угу
Vort
какие есть доказательства того, что не все файлы в i2pd в utf-8 ? :)
Vort
вот я глянул несколько штук и делаю вывод, что все в utf-8 и так
orignal
Vort я честно говоря вообще никогда не забумыался в чем они
Vort
это потому что в линуксе традиция использовать UTF-8
onon
А m_PendingOutgoingSessions только хендшейки ретрасмитит?
onon
Или ещё какие пакеты
orignal
вот я сооздают новый файл в xed в чем он будет?
orignal
да только хэншейки. SessionRequest и SessionConfirmed
onon
Когда получает ответ тогда переходит в m_Sessions
orignal
когдп получает подтверждение на SessionConfirmed
Vort
orignal: судя по тому, что я нагуглил, будет UTF-8, если не вызовешь Save As и не поменяешь в выпадающем списке
orignal
значит тогда все UTF-8
orignal
я по другому файлы не создавал
Vort
ещё по поводу кодировок: в винде есть такая штука как UTF-8+BOM. и вот её в код лучше не пускать. из-за неё может быть много хаоса
Vort
проще считать, что везде UTF-8 без BOM и пользоваться нормальными текстовыми редакторами
aboba
хз, взял исходники с github, пишу file -i i18n/Chinese.cpp выводит charset=utf-8 , пишу file -i libi2pd_client/I2CP.cpp выводит charset=us-ascii, я пишу в vim тыкаю :w , git diff показывает что часть строк поменялись на теж символы
Vort
ascii - это подмножество utf-8 без BOM
`
utf-8 в коде - спайварь
`
скам и спид
Vort
ну а насчёт vim... мне даже это название вспоминать не хочется
orignal
потому что с Chinese.cpp UTF8 с символы явно присутсвуют
orignal
а в I2CP.cpp нет
orignal
очевидно же
aboba
vim это да =) никому не советую, но я привык уже страдать. Да, но с git diff странная ситуация, но ладно возможно я где-то накосячил с конфигом vim
orignal
и странный выбор I2CP.cpp
zIodtnSl
micro хороший редактор
`
nano топ
Vort
уточнение: ascii совпадает с utf-8 только если нет символов с кодами > 0x7F
Vort
aboba: так посмотри в хекс редакторе в чём дело
orignal
что верно для блольшинтсва файлов
Vort
помимо кодировок ещё могут быть проблемы с переводами строк
Vort
некоторые редакторы могут либо нормализовывать переводы строк либо переделывать по-своему
Vort
в i2pd сейчас проверил - везде 0x0A (LF)
Vort
то есть, либо vim пихает BOM куда его не просят, либо переделывает переводы строк на другой лад
aboba
clangd, даже если указать чтобы автоформата кода не было удаляет whitespace , кодировка здесь не причем, я не разобравшись вкунул на абум, простите
Vort
а, ну в конце строк в i2pd много пробелов
Vort
это вполне можно зачистить, но orignal наделает их опять )
orignal
вот именно
orignal
я за ними не слежу
onon
Мне кажется в i2pd других проблем кроме лишних пробелов хватает.
orignal
о чем я сразу и сказал ))
onon
Что там дед собрался ревьюировать?
orignal
да все с посткватновой дуростью носится
onon
167 svc records Tue. Feb. 18, 3 PM EST
onon
Кто такие svc
onon
163 DG2 Tue. Mar. 4, 3 PM EST
orignal
не в курсе
onon
Это я так понял даитаграммы
orignal
это датаграммы 2
onon
169 PQ Tue. Mar. 18, 3 PM EST
onon
А кто такой PQ
orignal
post-quantium
onon
Ааа
onon
Ясн
onon
А когда SSU2 патчи ревьюировать собираетесь?
orignal
да никогда
orignal
дед хочет чтобы я написал пропозал как он хочет
orignal
а я сказал что я не буду писать как он хочет потому что это его идея
onon
Действительно не логично. Ты предлагал один вариант, он сказал что не годится и предложил другой, свой вариант. И теперь ждёт что ты для этого варианта сделаешь пропозал.
orignal
именно
orignal
сказал что мой вариант ему не нравится
onon
В функции SSU2Session::SendQueue () мы отправляем несколько пакетов пока m_SentPackets.size () <= m_WindowSize а потом ещё сверху один пакет if (packet->payloadSize > ackBlockSize)
onon
uint32_t packetNum = SendData (packet->payload, packet->payloadSize, SSU2_FLAG_IMMEDIATE_ACK_REQUESTED);
onon
m_SentPackets.emplace (packetNum, packet);
onon
Это уже превышает m_WindowSize
onon
Или я неправильно понял?
orignal
надо глянуть
orignal
возможно
onon
А если нам нужно только один пакет отправить...
onon
Будем прицепом ещё один цеплять
onon
200% оверхед
orignal
а еслм у тебя сообщение длиной 16k а рзамер окна 1?
onon
Потому у деда и сделано окно в байтах
onon
А не в штуках
orignal
короче нет лишнее не отправляется
onon
А как это работает объясни
orignal
в текущий пакет пихаем сообщения
orignal
как только полный отправляем
orignal
когда сообщения закончились отвпраялем последний
onon
Или лыжи не едут..
onon
В каком случае это условие будет верно: if (packet->payloadSize > ackBlockSize) ?
onon
while (m_SentPackets.size () <= 10)
onon
m_SentPackets.emplace (packetNum, packet);
onon
if (packet->payloadSize > ackBlockSize)
onon
m_SentPackets.emplace (packetNum, packet);
onon
Разве не получится m_SentPackets.size () == 11
onon
Чувствую себя segfault-ом
orignal
надо подумать
orignal
да ты прав
orignal
<= надо поменять на Б
orignal
и нет ты не он ты задаешь правильные вопросы
onon
Т.е. я правильно понимаю, что если нужно отправить 1 пакет то он отправляет 2
orignal
нет если нудно отправить 1 он и отправит 1
orignal
а если нужно 12 а можно только 10 то отправит 11
onon
А что насчет 1 пакета и SSU2_FLAG_IMMEDIATE_ACK_REQUESTED
onon
А если нужно 12 а можно 100, то сколько отправит и выставит ли SSU2_FLAG_IMMEDIATE_ACK_REQUESTED
orignal
а что там?
orignal
всегда выставляет на последнем
orignal
разумеется выставит
onon
Но если 12 < 100 то он будет в цикле отправлять а там SSU2_FLAG_IMMEDIATE_ACK_REQUESTED не выставляется
onon
Или как это работает
orignal
нет
orignal
он в цикле создаст 12-ый потом поймет что пакеты закончились
orignal
и отправит его отдельно
onon
Это на какой строчке он поймёт
orignal
while (!m_SendQueue.empty ()
orignal
вот тут
onon
Так он пустой пакет отправит?
orignal
он же проверяет дальше если там что то кроме ack
onon
Ну вот у нас в m_SendQueue лежит 1 пакет, m_WindowSize = 10. В каком месте он сделает SendData?
orignal
когда last
orignal
в цикле он создаст
orignal
в отправит после
onon
Как всё сложно
orignal
ну так смотри логику
orignal
у нас есть сообщения которые надо отправить пакетами
orignal
разумеется мы старамся набить пакет по максимуму
onon
Я понял
onon
Я думаю как туда ограничение количества одновременно отправляемых пакетов всунуть
onon
Чтобы пэйсить
orignal
так это не там надо
orignal
это в SSU2Server::Send надо
onon
Я на уровне сессии пока пробую
orignal
так не надо
orignal
у тебя сесиий тысячи
onon
Я один таймер юзать буду
orignal
вот в Send и надо
orignal
кидать не в сокет а в очередь
orignal
и там уже пейсер
onon
Если ты такой умный, то почему до сих пор не сделал? =)
orignal
потому что некогда
orignal
я даже локальные сокеты для тоннелей запилить не могу
onon
В новом релизе будет i2p.streaming.profile = 2 для [IRC-ILITA] в дефолтном конфиге?
`
Что за очередной ключ не прописанный в конфиге?
orignal
для какой сиситемы?
orignal
скажи какой файл поменять?
orignal
галка этот ключ есть в доках
onon
/contrib/tunnels.conf наверное
orignal
еще для ведра есть
orignal
поправилю
onon
Нужно что-то с SharedRoutingPath делать
orignal
где?
onon
В стримах
orignal
ну сделай
onon
Когда картинок много и они все шлют в один туннель, каждый стрим разгоняет своё окно и потом если на этом маршруте случается затык, там и теряется 800 пакетов
onon
И всё
`
> As of API 0.9.64, Java I2P ignores the value. Through API version 0.9.63, i2pd ignored this option; it is implemented in i2pd as of API 0.9.64.
`
> While the streaming protocol includes a flag field to pass the profile setting to the other end, this is not implemented in any known route
`
Эм..
orignal
ну так предлагай
`
<@onon> И всё
`
И придётся опять запускать очередь в 100500 фотографий говна на имиджборду.
onon
Так вот я и не знаю. Делать каждому новому стриму свой маршрут это медленно странички открываться будут
orignal
надо какое то общее окно иметь
orignal
и его учитывать
onon
Можно наверное при создании или завершении стрима пробегаться по списку стримов и выставлять там MAX_WINDOW_SIZE делением 800 на количество стримов.
onon
Тогда на каждом стриме будет скорость ограничиваться
orignal
надо сделать общий лимит просто
orignal
сделал чтобы тоннели пересоздавались в случайном порядке
onon
Ну так это и будет общий лимит
orignal
так на каком то стриме надо маленькое окно а на каком то большое
orignal
а проверять надо суммарное
onon
Ну да, но лучше я пока придумать не могу
onon
Если у нас один стрим уже разогнался до 512, а потом мы создаём ещё один, то как нам делить полосу?
onon
Только зажимать первый
orignal
поровну
onon
Ну вот я так пока и предлагаю