IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2024/10/01
~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
+relaybot
DUHOVKIN
Leopold
Most2
Nausicaa
Vort
Xeha
anon2
b3t4f4c3
karamba_i2p
nemiga
not_bob_afk
poriori_
profetikla
soos
un
weko
whothefuckami_
papakarlo я правильно понимаю что для связи с i2cp я использую сокеты?
papakarlo грубо говоря если питон
papakarlo import socket
papakarlo sock = socket.socket()
papakarlo sock.connect(('localhost', port))
papakarlo и пошел
papakarlo так?
orignal а зачем тебе понадобился i2cp?
papakarlo хочу написать кое что интересное
orignal так тебе джавовские либы тогда понадобтся
papakarlo почему?
orignal потому что с голым i2cp ты мало что сделаешь потмоу что в нем грубо говоря только пейлоад как набор байтов передается
orignal фактически датаграмма
papakarlo то есть кастрированный доступ?
orignal я не вижу примнения i2cp кроме как для работы с джавовскими приложениями
orignal доступ самы полный но там много чего нет
orignal я не знаю откуда вообще у тебя идея использовать именно i2cp
orignal в i2pd он существует только для джавовских приложений
orignal а они используют своим либы
papakarlo у меня просто в голове сложилась картина что это нормальный способ связи с роутером
papakarlo протокол
papakarlo а как тогда
orignal ну так заивисит от задачи
orignal если не нужно постоянно генерить локальные адреса то тоннели
orignal если нужно то сэм
papakarlo мне нужен доступ к сети i2p для установки соединений с другими роутерами, отправка прием сообщений, настройка туннелей (длина, количество)
papakarlo по факту то что нужно любому приложению для работы с i2p
orignal ну тогда сэм
papakarlo я и сам не прочь написать либу
papakarlo сейчас посмотрю про sam
orignal ну пиши
orignal i2cp это просто прокол который слушает порт и парсит сообщения
orignal целый талмуд есть описывающий их формат
papakarlo на geti2p net ,
papakarlo пишут Note that i2pd does not currently support most 3.2 and 3.3 features.
papakarlo а что за фичи
orignal тебе хватит 3.1
orignal который используют все сущестующие приложения
papakarlo спасибо
Vort провёл я тест U узла в виртуалке
Vort Uptime: 6 hours
Vort Tunnel creation success rate: 52%
Vort Transit: 5.41 MiB (0.47 KiB/s)
Vort Routers: 1658 Floodfills: 414 LeaseSets: 0
Vort Client Tunnels: 22 Transit Tunnels: 15
papakarlo U это сколько кб
Vort U это через NAT
Vort а скорость - X, безлимит
Vort транзита чуть больше, чем с предыдущими тестами (где-то год назад проверял)
Vort то есть, результат как минимум не хуже, а , может, лучше
papakarlo причина в том что больше трафика стало?
papakarlo в сети
Vort или это или багов меньше в среднем
Vort плюс получил один необычный результат:
Vort довольно много сообщений в логе вида error - SSU2: Send exception: Требуемый адрес для своего контекста неверен to 0.0.0.0:12308
Vort я когда-то пытался поймать этот баг и не получилось, возможно через NAT он воспроизводится лучше
Vort на основном узле за сутки ни одного такого сообщения, а в виртуалке - штук 30 за 6 часов
papakarlo вопрос за датаграмы
papakarlo если мне нужно быть уверенным что отправитель данных именно тот который нужен
papakarlo (preventing mitm)
papakarlo нужны ли мне repliable datagrams
papakarlo_ нужны ли мне repliable datagrams
papakarlo_ или сохранность данных гарантируют протоколы ниже?
orignal Vort я у деда багу нашел
orignal похоже он SessionResponse всегда шлет 6 штук
orignal papakarlo_ да repliable и проверять подпись
Vort а как надо? я этой части кода не помню
orignal Vort а надо если на него пришел Ack больше не слать
orignal papakarlo_ можно проверить на уровне сесиии но это уже внутренности i2pd
papakarlo_ orignal_ а i2pd поддерживает их создание?
papakarlo_ а то написано как раз что в v3.2 они появились
Vort не могу в коде найти SessionResponse. это вообще про какой протокол? создание SSU2 сессии? SessionCreated?
orignal ты про сэм?
orignal какие то там поддерживаются потмоу что polistern использовала
orignal посмотри код pboted
orignal Vort я говорил RelayResponse
orignal опечатка ))
orignal papakarlo_ да датаграмы полностью поддерживаются
orignal и DATAGRAM и RAW
Vort не вижу пока что там вообще циклов. может где-то внутри методов отправки разве что: github.com/i2p/i2p.i2p/blob/915494557162c07104211ee204dfe8122d3eb3b9/router/java/src/net/i2p/router/transport/udp/IntroductionManager.java#L817-L822
papakarlo_ вот эти что ниже
papakarlo_ repliable
orignal я тебе говорю что на самом деле
orignal стараниями деда все версии сэма счас перпутаны
papakarlo_ дед кто такой
orignal ты опять за свой I2CP принялся
orignal я тебе про сэм толкую
orignal дед это zzz
papakarlo_ никакого i2cp, только sam
orignal Vort а как они HolePunch срут?
orignal там про I2CO
orignal ты сам то читал что там написано?
papakarlo_ так там непонятно то i2cp то sam
papakarlo_ ну вот
papakarlo_ чуть ниже пролистать
papakarlo_ Version 3.2 Changes
papakarlo_ и там пошло про датаграмы
papakarlo_ больше про repliable datagram я не видел где написано
orignal ну вот я тебе объясняю что i2pd поддерживает датаграммы и в 3.1
papakarlo_ то есть я могу DATAGRAM SEND сделать
orignal SESSION CREATE
orignal STYLE={STREAM,DATAGRAM,RAW}
papakarlo дудосят меня
papakarlo orignal спасибо понял
orignal не ты нихуя не понял
orignal ты создаешь сесиию
orignal вешаеь ее на UDP порт
orignal и датарграммы с этого порта пойдут
papakarlo а почему не tcp
papakarlo или это локально все
papakarlo локал udp
orignal потому что датаграммы это всегда UDP
orignal SEND DATAGRAM это из другой опнры
orignal это такой костыль для iMule был
papakarlo geti2p.net/en/docs/api/samv3 это единственная документация по сэму?
orignal это можно без ссессии слать
orignal думаю что да
Vort в жава коде какие-то подозрительные огрызки висят
Vort _recentHolePunches
orignal причем этот происходит только с этим сообщением
Vort int MAX_PUNCHES = 20
Vort но прикол в том, что эти переменные нигде вообще не используются
Vort как будто кто-то вычищал этот код, но не дочистил
Vort надо по истории смотреть, как раньше использовалась переменная MAX_PUNCHES
papakarlo orignal хорошо
papakarlo я сделал сессию
papakarlo повесил на порт
papakarlo geti2p.net/en/docs/api/samv3 Sending Repliable or Raw Datagrams
papakarlo там чуть ниже как отправлять датаграму
papakarlo то есть я отправляю строку
orignal поищи на гитхабе код pboted и посмотри как там сделано
papakarlo 3.1 $nickname $destination ...
papakarlo ок сейчас посмотрю
orignal i2pd всегда возвращает 3.1 по своим причинам
orignal блять с HolePunch вообще какой то пиздец творится
Vort припоминаю что даже с виртуалкой была проблема связаться )
Vort и вроде как раз из-за HolePunch
orignal там еше какая то дичь с токенами
orignal счас разбираюьс
Vort так не просто так же U узлы глючат. ты наверно только маленький кусочек ковырнул )
orignal так я грубо говоря на прошлой недел ковырнул так гной фонтаном забил
orignal сам охуеваю
onon А до релиза успеешь?
orignal токены починить успею
Vort чуть покопал историю, в общем, константа MAX_PUNCHES относилась к SSU1. так что она тут не при чём
orignal uint64_t token = 0;
orignal ой все
orignal я почему то токен не генерю
orignal а нет все нормально
papakarlo есть рекомендации какие то по тому какие порты для сессий использовать?
Vort orignal: сможешь проверить, не сбрасываются ли интродьюсеры у U узлов из-за пир теста (Unknown)? не хотелось чтобы в релиз такой глюк попал. у меня подозрение возникло когда я в виртуалке тест делал. было 10-20 транзитов, а потом довольно быстро
Vort количество сползло до 1-2
Vort но логирование стояло на error уровне, поэтому точную причину такого эффекта не знаю
orignal погляжу
orignal не должно вроде
orignal я разрешаю сбрасвать в Unknown только если раньше не был Firewalled но проверю
Vort кстати, похоже, страницы веб консоли по-прежнему глючат. но я точно сказать пока что не могу. видел несколько раз пустые страницы пока тестировал в виртуалке
orignal if (GetRouterStatus () != eRouterStatusFirewalled && addr->IsPeerTesting ())
orignal SetRouterStatus (eRouterStatusFirewalled);
orignal session->SetStatusChanged ();
orignal я только здесь разрешаю
orignal ты погоди
orignal пустые или непополные?
orignal пустые это совсем другая тема
Vort сегодня только пустые видел
Vort но может это Firefox какую-то фигню делал, не знаю
orignal это другой вопрос
Vort надо будет просто ещё проверять
orignal в прошлый раз речь шла о неполных
Vort "<~orignal> я только здесь разрешаю" так это что-то->Firewalled. у меня же были подозрения про Firewalled->Unknown. но сейчас глянул по коду - вроде норм
Vort надо тупо логирование смены интродьюсеров воткнуть и всё станет понятно
orignal ну вот когда изначально был Firealled то Uknown не посатвиться потому что тот флаг не установится
Vort orignal: добавил логи и первый тык пир теста выдал вот такое:
Vort Router: network status v4 changed Firewalled -> Unknown
Vort Router: network status v4 changed Unknown -> Firewalled
Vort RouterContext::ClearSSU2Introducers v4
Vort затем 3 штуки RouterContext::AddSSU2Introducer v4
orignal давай смотреть
orignal кто его вообще ставит в Unknown
Vort было Firewalled - Symmetric NAT, стало Firewalled. но полагаю это не важно
orignal это неправильно
orignal почему вообще переходит
Vort попробую ещё логирования натыкать
Vort SSU2Session::HandlePeerTest GetTestingState() 1 code 68
Vort eSSU2PeerTestCodeCharlieAliceIsAlreadyConnected = 68
orignal счас
orignal ага понял
orignal это обработка оибуки
orignal ошибки
orignal счас переделаю
orignal сделал
papakarlo а вы когда роутер на андроид портировали
orignal а его не портировали он тот же самый
papakarlo свистоплясок с интернетом не было?
orignal там плюсовый код собиратеся c NDK
orignal и прикручена главная активность
papakarlo это хорошо
Vort пир тест теперь интродьюсеров не сбрасывает. хорошо
Vort но они сами сыпятся!
Vort не наш ли узел рвёт с ними связь?
orignal думаю что дед рвет
orignal он же пустой пакет не считает за данные
Vort за 14 минут аптайма 7 интродьюсеров поменялось
orignal иначе говоря интродьюсеры с i2pd
orignal нормально
orignal а с джавой хуйня выходит
orignal счас объясню в чем дело
Vort он не считает, что интродьюсерская сессия должна жить долго?
orignal void SSU2Session::SendKeepAlive ()
Vort а кстати я же сейчас могу глянуть по netdb i2pd это были или java
orignal видимо нет
orignal да глянь
orignal вот в том методе мы шлем только паддинг
Vort два узла проверил, cost 3 и 8. это i2pd как я понимаю
Vort надо хотя бы проверить не рвётся ли локально
orignal да интреесная мысль
orignal в что если пир тест не дошел?
Vort а он тут при чём?
Vort я имею в виду, что RouterContext::RemoveSSU2Introducer вызываются
orignal пардон keep alove
Vort а, это может быть
orignal я погляжу
orignal я полагаю через эти соединения RelayIntro не прилетали
Vort лучше на своём U узле добавь логирование как-то так paste.i2pd.xyz/?18e97d5c38a3801b#895eHLdkyxFcWEJ6zG6n74xWvCt8kB48oVNcMBuPniL7
Vort у меня система в свопе так как не хватает RAM, поэтому мои результаты не очень точны
orignal да это понятно
orignal Remove там делается только если сессии больше нет
Vort у меня есть небольшое подозрение на пересоздание в обратном направлении
Vort но это так, на всякий случай говорю
orignal да такое может быть
orignal но почему изначальная сдыхает?
Vort у меня в виртуалке могут быть короткоживущие дырки. но это опять неточно
Vort хотя наверно не в этом дело
Vort смутно припоминаю что при тестировании год назад сессии к интродьюсерам у меня жили дольше
orignal я посмотрю у себя сколько живут
Vort окей
onon Сделал суточный график количества флудфилов, может кому интересно: paste.i2pd.xyz/?42d4087717876613#HeBat9LDoMEbY2jgshEta8sLWejzhou2uvcP21xPzKq4
onon Начало и конец графика - 21:30 по UTC
orignal и каков вывод?
orignal Vort может сделать параметров в конфиге интрервал проверки интрольюсеров и послыку keep-alive?
onon Что количество флудфилов увеличивается примерно на 100 когда в европах вечер
orignal const int SSU2_KEEP_ALIVE_INTERVAL = 15;
orignal счас константа
orignal и нет я посмотрел у меня интрольюсеры у поляков не меняются