IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2022/02/01
~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
+Xeha
+relaybot
DUHOVKIN
Leopold
Most2
Nausicaa
Ruskoye_911
Vort
anon2
b3t4f4c3
karamba_i2p
nemiga
not_bob_afk
plap
poriori
profetikla
soos
teeth
un
weko_
whothefuckami
orignal я про виндовый
orignal что то слишком мало ))
R4SAS мало XP жрет, или чего?
R4SAS не могу понять ход твоего недоумения
orignal 11 мегов
R4SAS хрюша голая потребляет всего 110 мб, ш2зв на нем тоже мало жрет
R4SAS тем более не разогнанный
orignal а с чего i2pd так мало?
orignal память она и на хрюше память ))
R4SAS там от силы 400 роутеров в нетдб после чистки
orignal все равно мало
orignal обычно 30-40
R4SAS могу запустить и подольше подержать в сети
R4SAS интереса ради
R4SAS проверяю транк с biglybt
R4SAS один торрент качается с скоростью 1.8 мб/с
orignal проверяю роутеры из того списка
orignal пока все тоннели отлично работают
R4SAS 1 час, 12 мегов
R4SAS 1000 роутеров
R4SAS 10 транзита
orignal интересно все же почему это просиходит?
R4SAS по разному выделяется память?
R4SAS я хз
orignal нее я про тоннели
R4SAS там точно такой же компилятор я сейчас использовал
R4SAS аа
R4SAS тут я хз
R4SAS надо чтобы он логировал эти кривые туннели
R4SAS ибо ш2зв-ш2зв все работает
R4SAS а тут где то затык
R4SAS надо попробовать дать ему список своих роутеров, пусть посмотрим
R4SAS может есть у меня хоть какой то роутер который так же к нему "относится" ))
orignal тут вообще что то непонятное выхолдит
orignal ну вот с этим например затык
orignal ebfLDsBJ9DdwwtKjBJvgqkm4IrQY4XoCNJRiH6U-s3o=
R4SAS ну
orignal но похоже он один такой ))
orignal и там длинные запросы на построение работают нормально
orignal короче похоже проблема явно с джавой
orignal точнее получаются как то несовместимые
orignal я еще попробую другие из списка
orignal но не думаю что будет сильно иначе
R4SAS это началось где то 3 месяца назад
R4SAS начало на их ирке телепать
orignal у меня начало после того как все грохнулось у них
R4SAS не, раньше
R4SAS потому что товарищей местных на жабе постоянно тут телепает
orignal ну там могут быть другие причины
orignal еще 5 проверил
orignal все строятся
orignal и тесты идут
R4SAS 1098 root 20 0 1194044 190396 6248 S 30.7 9.3 3362:15 `- ./i2pd
R4SAS уже 190 на рег
R4SAS orignal: на, поржать
orignal как так?
R4SAS )))))))
orignal отключил таблицы?
r4sas-web а вот так
r4sas-web они по умолчанию отключены
r4sas-web x64 же
orignal разве XP это x64?
orignal она же 32 разрядная
R4SAS ты че
R4SAS на интерфейс посмотри
R4SAS это же семерка
orignal вижу
r4sas-web могу попробвать параллельно запустить хп и отключить там таблицы
orignal да там всего 2 мега они
r4sas-web а стоп
r4sas-web у меня тут таблицы включены сейчас
r4sas-web хотя нет
r4sas-web тут же дефолтный конфиг
orignal ну да
r4sas-web да, отключены на 7
r4sas-web на хп сейчас отключаю
r4sas-web 9.3 на старте
orignal видать от числа роутеров зависит
r4sas-web естественно
r4sas-web но тут еще один ньюанс
r4sas-web на хп используется обертка на mscvrt
r4sas-web а на 7 я проверяю с оберткой над ucrt
orignal а в чем разница?
r4sas-web ucrt работает так, будто код был скомпилен с помощью MSVC
orignal а если попробовать с самим MSVC?
r4sas-web т.е. работа с памятью, потоками и прочей хренью выполняется по принципам msvc
r4sas-web а это сложна
r4sas-web ооошеньь сложнааа
r4sas-web как минимум надо собирать boost, miniupnpc, openssl под него
r4sas-web чтобы их в дальнейшем линковать
orignal мишаня же как то собирал в свое время
r4sas-web у него оно собиралось в appveyor абсолютно полностью
r4sas-web начиная с библиотек
r4sas-web а потом позже оно сломалось
orignal потом на openssl перешли
orignal точнее это было так что я забил
orignal у меня с openssl собралсось и запустилось все на mingw
orignal потому VS стал не нужен
R4SAS 2 часа аптайма на семерке, 7.8 мб памяти
R4SAS 1000 роутеров
orignal однако
R4SAS сейчас поставлю флаг О
R4SAS чтобы транзит пошел нормально
R4SAS и порт проброшу
orignal ты думаешь под лиунксом много мегабайт отжирают либы?
R4SAS возможно сам libc
R4SAS начался транзит, начало поднимать потребление
Bergsecretpiratehaus <Bergsecretpiratehaus> <r4sas-web> я уже 2 года жду пока он перепишет активити чтобы не убивался сервис при убийстве главного окна
Bergsecretpiratehaus <Bergsecretpiratehaus> <r4sas-web> воз и ныне там - нахуй не нада, это жвм а не этот ваше кернел моуд
Bergsecretpiratehaus это надо приложение в приложении как-то
Bergsecretpiratehaus я так ещё не пробовал
Bergsecretpiratehaus то есть у тебя в ОЗУ будет ДВЕ жвми
Bergsecretpiratehaus мож нахуй? думаю нахуй.
orignal zlatinb как дела с тестовой сетью?
zlatinb ещо обдумаваю сценарии
zlatinb нужни либо два теста а - 1 жава осталние i2pd и наоборот
orignal фйлится только джава через i2pd
orignal потому что у меня все работает нормально из того списка
orignal надо если возпроизводится посмотреть какую ошибку i2pd пишет
zlatinb тогда сделаю етот тест сначало
zlatinb все идет медленно потомучто за каждою конфигурацию надо рисиид сначало полнить, но ето мои проблемьй
R4SAS zlatinb: создаешь все инстансы, останавливаешь их
R4SAS 5 секунд достаточно
R4SAS и потом собираешь router.info со всех нод, пихаешь в ресид
zlatinb да, так и буду делать
R4SAS orignal: почти 3 кача
R4SAS часа***
R4SAS 3700 роутеров
R4SAS 330 транзита
R4SAS 16 мб
orignal ну это норма
R4SAS это слишком хорошо
R4SAS вопросы по коду
orignal задавай
R4SAS htobe32buf (ssu + I2NP_SHORT_HEADER_EXPIRATION_OFFSET, bufbe64toh (header + I2NP_HEADER_EXPIRATION_OFFSET)/1000LL);
R4SAS conversion from 'uint64_t' to 'uint32_t', possible loss of data
orignal так оно и есть что написано
orignal короче мы из миллисекунд делаем секунда
R4SAS как побороть? указать тип перед значением?
orignal время в миллисекундах там 8 байт а в секундах 4
orignal (uint32_t)bufbe64toh
orignal вот так написать
R4SAS а если conversion from 'size_t' to 'uint16_t', possible loss of data
orignal аналогично
R4SAS SetSize (len - offset - I2NP_HEADER_SIZE);
orignal мы передмаем размер как size_t
orignal но протокол позволяет 64K максимум
R4SAS ты догадываешься откуда такие варнинги?
orignal думаю все новые компиляторы
R4SAS нет
R4SAS msvc
orignal ну и откуда?))
orignal ты таки взялся за это? ))
R4SAS я посмотреть захотел
R4SAS собрал набор библиотек, скомпилил zlib, miniupnpc
R4SAS буст и опенссл взял скомпиленые
R4SAS но блин, буст ломает сборку в FS.cpp
R4SAS boost/asio/detail/socket_types.hpp(24): fatal error C1189: #error: WinSock.h has already been included
R4SAS хотя я не вижу где жто происходит
R4SAS так что в ступоре (как и в прошлые разы)
orignal там где то надо порядок поменять
orignal я помню такое давным давно было
R4SAS ясно что надо, но только где
orignal не помню
orignal буст под виндой это беда ))
orignal кстати
orignal в госткойне в makefile какой то параметр был на этот счет
orignal я там натыкался
R4SAS хз хз
R4SAS посмотрю
orignal ладно пойду таймстампы делать
orignal а чего в i2pendian год не поправил,))
R4SAS еще успею
R4SAS там надо добавить проверку на MSVC
R4SAS ибо тут нет свапа
orignal понял
R4SAS sum uint16_t
R4SAS ret uont8_t
R4SAS точнее его буффер
R4SAS переполнения не будет?
orignal счас
orignal будет
orignal так переполнение уходит в carry
R4SAS значит спокойно отдаю uint8_t?
R4SAS лишь бы не было что отсчет будет неверным
R4SAS и не прилетело туда вместо 270 например 5
orignal куда я не понял
R4SAS если sum будет 270 (что больше uint8_t)
R4SAS то что будет если явно указывать?
orignal 270 % 256 отдаст
R4SAS туда отдаст 255 или 15
R4SAS (15, не 5, опечатался)
orignal 255 никогда не будет
R4SAS так и в carry будет 15 тогда
R4SAS нет?
orignal нет
orignal 1 там будет
R4SAS эмм
R4SAS от 270 снимаем 8 бит, как там будет 1 ?
R4SAS хотя да, понял
R4SAS тогда почему ему не нравится
R4SAS warning C4333: '>>': right shift by too large amount, data loss
orignal не знаю
orignal все там в порядке
R4SAS uint64_t GetSecondsSinceEpoch ();
R4SAS а почему uint64_t?
R4SAS в garlic везде идет uint32_t ts = i2p::util::GetSecondsSinceEpoch ();
orignal не помню
orignal думаю потому что функция внутри так возвращает
orignal ну для секунд 4 байт хватит
R4SAS static uint64_t GetLocalSecondsSinceEpoch ()
R4SAS return std::chrono::duration_cast<std::chrono::seconds>( std::chrono::system_clock::now().time_since_epoch() ).count ();
R4SAS видать из-за этого
R4SAS сейчас проверю
R4SAS эм
orignal знаешь че?
R4SAS std::chrono::seconds duration</*signed integer type of at least 35 bits*/>
R4SAS что
orignal надо чтобы эта функция возвращала auto
orignal но это только в C++17 есть
R4SAS не вариант
orignal почнму?
R4SAS не везде у нас 17
orignal я объясняю откуда uint64_t
orignal так что оставим как есть
orignal в 2036 года вроде превысит 4 байта
R4SAS так а чего делать с uint32_t ts в garlic?
orignal ничего пока что
R4SAS в 2038
orignal в какой это строке?
orignal мне надо понять логику там
R4SAS 61, 123, 138, 365, 384, ...
R4SAS крч везде где i2p::util::GetSecondsSinceEpoch ()
R4SAS но нсть такое место
R4SAS ts*1000LL > m_SharedRoutingPath->remoteLease->endDate
R4SAS строка 50
orignal в Garlic.cpp что то не вижу
R4SAS и тут получается что uint32_t * int64_t
orignal ну это будет in64_t на выходе
R4SAS то то и оно, что будет int64_t
R4SAS а в m_SharedRoutingPath->remoteLease->endDate у тебя uint64_t
orignal я знаю че
orignal наверное там раньше возвращало uin32_t
orignal а я потом поменял на uin64_t
orignal а где вызывается нет
orignal короче пох
R4SAS крч везде писать так?
R4SAS uint32_t ts = (uint32_t)i2p::util::GetSecondsSinceEpoch ();
orignal нет
orignal везде uin32_t заменить на auto ))
R4SAS хорошо
orignal ну смотреть что если куда копируется побайтно если то не надо
orignal то есть делать с умом надо
mabu а разве произведение uint32_t и int64_t не переполнит int64_t
R4SAS tags->tagsCreationTime = i2p::util::GetSecondsSinceEpoch ();
R4SAS как пример, чего тут делать
R4SAS mabu: нет
R4SAS в этом случае по крайней мере
orignal оставить как есть
R4SAS а вот оно ругается
orignal конечно
R4SAS tagsCreationTime это uint32_t
orignal но надо ближе к 2038 переделать ))
orignal я не хочу туда uin64_t пихать
orignal приводи к uin32_t и комметарий "исправить до 2038 года" ))
R4SAS сейчас глянем чего будет с auto
orignal нормально будет
orignal все пошел время чинить
R4SAS так параллельно сюда глядя сиди)
R4SAS я так же сижу ведь)
orignal так я еще типа на работе )))
R4SAS все с тобой ясно)
orignal с дегсом ругаюсь попутно ))
R4SAS сюда приглашай его еще)
orignal не хочет
orignal влом ему i2p запускать
orignal и ygg влом
orignal и вообще ему все влом ))
mf2 Hello! (Sorry for not speaking russian) I'm trying to use idk's goSam library to write a Gemini client. It works on java I2P, but not on i2pd which I use. I've posted on zzz.i2p, and someone thought I should try my luck in this channel. I've described my problems in this post: zzz.i2p/posts/17816
mf2 Seems that 1st time it works, but not 2nd time I try to load a page. The goSam lib does a SESSION CREATE STYLE=STREAM ID=2133283415 and reuses the same ID for next time. Sometimes, rarely, it works a 2nd time by using ID+1 and doing a DESTINATION=TRANSIENT (whatever that means), but mostly it fails. It _always_ fails the third time.
orignal do it with some delay
orignal like 30 seconds
orignal there is an issue with SAM in i2pd
orignal session is not get closed immediately
orignal due some race conditions
mf2 Ok, and nothing that can be worked around in some other way? The gemini client is like a http protocol, only scaled down heavily, and asking the user to wait 30 seconds between every page load is .. well, not optimal. :)
mf2 And I've waited several minutes between each reload, and the same thing happens.
orignal my questiion is
orignal why do you even to recreat SAM session?
orignal usually you shouldn't
orignal once you create it you should keep that connection alive
orignal and you need to recreate it rarely
orignal like restart, etc.
mf2 fair question, not sure why, I'm basing my implementation on idk's work and it is done that way in his software.
orignal then ask him
orignal I need to understand this use case
orignal and see what can be dobe
orignal if you really need to do it
orignal remeber we run goscoin for years on many nodes without any problems
orignal and it's SAM
zlatinb как можно заставить флудфил?
R4SAS zlatinb: включить?
R4SAS --floodfill=true
R4SAS либо в конфиг
R4SAS там параметр есть
mf2 In my mind, maybe a SESSION CREATE STYLE=STREAM, and then SESSION CONNECT should work fine?
zlatinb floodfill=true ?
orignal в кофиге включить явно
R4SAS да
zlatinb спосибо
orignal mf2 SESSION CREATE creates a new local destination
R4SAS опять через О )))
orignal SESSION CONNECT creats a stream from that destination
R4SAS сп_а_сибо )
orignal R4SAS не забывай что у них падежей нет ))
mf2 orignal: Ah, not well versed in the intricacies of SAM, sorry about that.
R4SAS orignal: да про это я ничего не говорю, но тут не в падеже дело)
orignal session is long live thing
orignal stream is short live thing
orignal ну так ))
orignal короче я бы болгарски говорить не смог ))
orignal *по
mf2 orignal: so when you create a STREAM with a certain ID, could you reuse it, or should one create a new ID for each transaction?
orignal no, it must be unique
orignal sorry I meant session
orignal for stream you sepcify session id only
orignal and such session must exist
orignal there is streamid but it's internal thing
orignal SAM knows nothing about it
mf2 orignal: the thing is, the error message is "DUPLICATE_ID", like it is trying to create the same ID twice.
orignal it's for SESSION CREATE
mf2 So, what should one use instead of SESSION CREATE?
orignal not STREAM CONNECT
orignal different messages
orignal you call SESSION CREATE once
orignal it creates new local destination
orignal then you open another connection and call STREAM CONNECT using that sessinon id
orignal and you don't close SESSION CREATE socket
mf2 orignal: so the error is in goSam in that case?
orignal I'm saying that duplicate id is error message for SESSION CREATE
orignal meaning exactly what it says
mf2 orignal: ok
mf2 just trying to wrap my head around how this works. I'm a bit thick..
orignal read SAM specs first
mf2 aight, will do. Thanks
orignal everything is explained there
mf2 aight, I'll dig into it. Thanks for the clarification :)
R4SAS orignal: ssize_t payloadLen = packet->len - (packet->GetPayload () - packet->buf);
R4SAS почему именно signed?
orignal там надо ptrdiff_t скорее всего
orignal аааа я знаю
orignal там же дальше проверка есть на минус
orignal если минус то ошиька
orignal значит что мы за пределы буфера вылезли
R4SAS это да, но я вот хз чем заменить ssize_t тут
orignal а чем он плох?
R4SAS не знает mvsc такого
orignal нету такого типа что ли?
R4SAS int16_t я так понимаю
orignal int64_t
orignal а ptrdiff_t нету?
R4SAS не знаю, сейчас гляну
orignal это то же самое что ssize_t
R4SAS есть
R4SAS нельзя разве просто packet->GetPayload () и packet->buf сравнить?)
R4SAS точнее.. ну ты понял
R4SAS хотя лишняя работа
R4SAS дважды подсчитывать
orignal ну я не помню почему так сделал
orignal замени на ptrdiff и все
R4SAS уже
Bergsecretpiratehaus R4SAS, тебе тоже напоминать когда ты постоянно одни и те же ошибки в русском делаешь?
Bergsecretpiratehaus и оригнал кст тоже
R4SAS Bergsecretpiratehaus: тебе ни кто не мешает этого делать
R4SAS но ответ ты уже знаешь
R4SAS тебе лось уже говорил какой)
Bergsecretpiratehaus не помню
Bergsecretpiratehaus да и похеру
Bergsecretpiratehaus прост бросилось в глаза когда ты zlatinb скорректировал
R4SAS до этого делал таргет для ninja
R4SAS теперь для msvc самого
R4SAS через cmake генерирую проект
R4SAS если нормально настроить... то мб и соберется
R4SAS не, нафиг
R4SAS гнилое дело как по мне
R4SAS win7
R4SAS 8 часов
R4SAS 4100 роутеров
R4SAS 360 транзита
R4SAS 21 мб
orignal неплохо