IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2021/09/13
~R4SAS
~orignal
~villain
&N00B
+relaybot
Leopold
Most2_
Nausicaa
Nikat
Opax
Vort
WayBest_
`
acetone
anon
anontor
b3t4f4c3
banona
fidoid
grimreaper
itsAMe
karamba_i2p
onon
overflow
poriori
profetikla
qend
r00tobo
soos
teeth
tensor_
typhoon
uis
un
weko
whothefuckami
колдоёбина
колдырь
acetone не смотрел еще что там под капотом, но libi2psam на getMyDestination().pub возвращает почему-то адрес без окончания "AAcAAA==", то есть дописывать самому приходится (при sig type 7), иначе дест просто не валидный
R4SAS acetone: эт че за либа
acetone R4SAS: i2psam
acetone вроде как единственная либа под SAM на C++
R4SAS которая в гст лежит?
acetone R4SAS: вроде как да, но я ее брал с репозитрия i2pproject вроде как
acetone или в гст она допиленная дополнительно? :)
R4SAS там лось что то делал
R4SAS посмотри diff лучше
orignal бери ее из госткойна
orignal старая он только под dsa
acetone понял, принял)
acetone orignal: оказывается i2psam от i2pproject с 2019 года тоже умеет github.com/i2p/i2psam/commits/master
R4SAS acetone: это та же самая либа
R4SAS просто там мех как то по своему писал для гвк
orignal неее
orignal у гвк только dsa
orignal acetone я думаю они просто длину забыли изменить
acetone orignal: можно через сам bb32 (b33) лизсет создать?
acetone т.е зашифрованный
orignal конечно
orignal параметр передай и все
orignal i2cp.leaseSetEncType=5
acetone orignal: i2pd стабильно падает при одном сценарии (сейчас опишу), вот конец дебажного лога перед крэшем: paste.i2pd.xyz/?81a7326d52cc9a2d#4M6cniD4xfWrr5fdJomJkoke4bevWVx2bhs4T5jsSJTB
acetone даже "еррор" нету
acetone при работе с SAM'ом это происходит
orignal ну а кокретно что случается,
orignal сессия закрывается?
acetone orignal: i2pd закрывается
acetone сейчас попробую в разных вариациях воспроизвести сценарий падения, чтобы лучше понять
orignal нет ты не понял
orignal какой сценарий
orignal просто работал себе и закпылся?
orignal не дума.
acetone orignal: именно так)) я уже близок к тому, чтобы точно понять сценарий
orignal я думаю там у тебя сессия отваливается
acetone orignal: да, сессия отваливается, но тут же и i2pd закрывается
orignal так это старая беда
orignal давай стек
acetone orignal: у меня это всё сейчас только под виндовсами, как можно стек выдать?
orignal никак
orignal или жди R4SAS -а
acetone orignal: короче, если в параметр "i2cp.leaseSetEncType=5" не передавать, то не крешится
orignal ага
acetone а если передать - всяму пязда)
orignal это я проверю
orignal если честно я никогда не пробовал ))
acetone верю))
acetone я даже i2psam из госта взял вместо прежнего) всё также, но в гостовском аутпут подробный
acetone проверил, в гостовском i2psam getMyDestination().pub имеет корректный вывод
orignal ну в i2psam просто длину не поменяли я думаю
orignal потому что у них руки кривые
acetone orignal: пожалуй последний вопрос про сэм на сегодня: могу я скормить сэму обычный файл с ключами, а не base64 указывать?
orignal нет
orignal только base64 требуется
orignal и как ты ему скормишь файл?
orignal там же текст требуется
orignal ясное дело что ты можешь прочитать файл и сделать из него base64
acetone эврика, самому прочитать и скормить
acetone трюк с временными ключами имеет право на жизнь в этом случае?
orignal какими?
orignal это я не уверен
orignal надо вспомнить
acetone по замыслу так: сервер работает через сэм, но чтобы спать спокойно, ключик хочется использовать временный. если бы не так, вообще base64 можно было бы захардкодить
orignal тут подумать надо
orignal скорее всего можно
orignal если тупо весть .dat файл в base64 передать
acetone orignal: буду пробовать, отпишу по результатам)
acetone orignal: вывод i2pbase64 слишком коротковат, чтобы сравняться с DESTINATION, не хочет работать - INVALID_ID. Но так не только с оффлайн ключами, но и с обычным ключом, прочитанным через base64
orignal так надо по отдельности читать потому что
orignal снчала публиную часть потом секретную
orignal далее из публичного ключа еще надо сделать Identity
acetone ага, значит не всё так просто)
orignal короче дай подумать
orignal думаю что можно временные ключи сконвертировать в base64
orignal понимаешь технически там все равно из этого base64 делается класс PrivateKeys
acetone orignal: т.е. можно попробовать прочитать временный ключ, а остальную длину DESTINATION забить мусором, потому что всё равно только PrivateKeys нужен, или как?
orignal там сложная структура
orignal private keys там вроде бы должен быть все нули
orignal это надо по коду смотреть
R4SAS acetone: на винде без msys никак
R4SAS и надо собрать дебажный самому
R4SAS либо как то 250мб передать тебе
acetone orignal: если это дело сложное, тогда вполне разумно отказаться от SAM на сервере и юзать обычный сервер с серверным туннелем, на котором будет висеть традиционный временный ключ. при обновлении ключа перезагружать туннели (ключи же тоже перечитываются?)
acetone R4SAS: msys2 есть
R4SAS ну собирай через него без дебага
acetone R4SAS: _без_ ?
R4SAS имеется в виду без DEBUG=no
acetone ну да да, так и собран, я к этому
R4SAS ну тогда gdb ./i2pd.exe из папки
R4SAS и потом run
R4SAS а дальше как всегда воспроизводишь ошибку
acetone R4SAS: вначале gdb ругается, что нет дебажных символов))
acetone точно ли без дебага файлик нужен?)
orignal конечно
acetone R4SAS: попробовал и так и сяк, а где файл coredump искать? в той же директории его нет, пробовал явно указывать --core=BLABLA.core
orignal надо собиратьс с -g вместо -s
orignal под виндой не бывает core файлов
orignal ты запускаешь gdb и там r
orignal потом ждешь пока грохнется
acetone так
acetone грохается, а дальше?
orignal а дальше where
acetone оно?
orignal оно но надо собирать с отладкой
acetone момент
orignal ну понятно
R4SAS acetone: с дебагом
acetone R4SAS: ага, разобралися
R4SAS добавил плюшку в reg
R4SAS кому надо, тот её найдет
R4SAS но она так, не очень важная. просто чтобы было
orignal лучше не на гит
orignal лучше прямо мне копию в мускул на ovh
orignal а что с тобой то может случиться?
orignal ты явно не помрешь от старости как я
acetone сейчас на OVH кажется надежнее всех)) молния два раза в одно место не бьет ;)
orignal ты видел как у них дц устроены?
acetone нет
orignal там морские контенеры в стопку составлены
orignal так что вопрос не в том случится ли жопа
orignal а вопрос лишь когда
acetone ахаха, ох
orignal ядерный удар оно точно не выдержит ))
R4SAS orignal: какая разница куда
R4SAS просто для имения резервной копии
R4SAS orignal: а в чем разница между SSUPacket и новым PacketPoolMt?
R4SAS (m_PacketsPool)
orignal это пул их
orignal чтобы каждый раз память не выделять
R4SAS а, т.е. на SSUPacket выделение происходило?
R4SAS а как с gzip разбираться будешь?
R4SAS тогже пул сделаешь?
R4SAS посмотрел как делают в поектах Init для gzip
R4SAS там почемк то обычно делают через z_stream
R4SAS а нельзя разве делать init не при создании объекта, а при вызове m_Deflator.init например
R4SAS сейчас попроую сделать как я сказал
R4SAS вот так сделал
R4SAS и теперь нет тех 4-х выделений памяти
orignal а зачем?
R4SAS а смысл делать инициализацию если оно не используется?
orignal обхясни толком что ты сделал
R4SAS перенес инициализацию deflator из конструктора в void Init
R4SAS и вызываю его только если у нас gzip = true
orignal так погоди
orignal это в стримах?
R4SAS да
orignal так сделай его std::unque_ptr и все
orignal создаешь только когда gzip=true
R4SAS всм
R4SAS он у тебя при вызове класса создается
orignal вместо i2p::data::GzipDeflator m_Deflator;
R4SAS i2p::data::GzipDeflator m_Deflator;
orignal std::unique_ptr<i2p::data::GzipDeflator> m_Deflator;
R4SAS ну, а дальше?
R4SAS как создавать?
orignal в конуструкторе
orignal if (m_Gzip)
orignal m_Defator.reset (new i2p::data::GzipDeflator);
R4SAS эм
orignal ну и обращение к нему через ->
orignal с проверкой на nullptr
R4SAS ну а с inflate как тогда быть?
R4SAS там такое не провернешь
orignal его не трогай
orignal он всегда нужен
R4SAS хотя там пасяти выделяется всего 128 кб
R4SAS так что можно не дергать
orignal а по хорошему надо бы новоое соообщение Data без всей этой дури
orignal acetone смотри PrivateKeys.FromBase64
orignal короче .dat файлв в base64 должен работать
orignal и сравни с ClientContext::LoadPrivateKeys