IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2023/05/08
~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
l13kdsa до атаки, на нормальном роутере не за фаерволом:
l13kdsa 2182 router.version=0.9.58; 1219 router.version=0.9.56; 609 router.version=0.9.57; 175 router.version=0.9.55;
l13kdsa правда на тот момент у меня ff не включен был вроде
orignal мне и дрозд что то гвоорил что 0.9.56
l13kdsa если я закину роутеры не первой свежести в netDb i2pd их отбросит да?
l13kdsa в прочем, учитывая что там внутри есть таймштамп, думаю скорее всего да
orignal через 10 минут выкинет
l13kdsa погоди, а в случае first start он разрешает просроченные роутеры? Чтобы закинуть например прошлогодний netDb архив к примеру
user Java i2p:
user RouterInfos have no set expiration time. Each router is free to maintain its own local policy to trade off the frequency of RouterInfo lookups with memory or disk usage. In the current implementation, there are the following general policies:
user There is no expiration during the first hour of uptime, as the persistent stored data may be old.
user There is no expiration if there are 25 or less RouterInfos. As the number of local RouterInfos grows, the expiration time shrinks, in an attempt to maintain a reasonable number RouterInfos. The expiration time with less than 120 routers is 72 hours, while expiration time with 300 routers is around 30 hours.
user RouterInfos containing SSU introducers expire in about an hour, as the introducer list expires in about that time.
user Floodfills use a short expiration time (1 hour) for all local RouterInfos, as valid RouterInfos will be frequently republished to them.
l13kdsa ну ладно, хм, может ради эксперемента откатиться на бэкапный netDb
l13kdsa спасиб
l13kdsa если кто хочет глянуть, вот команда под линь, выполнять находясь в каталоге netDb:
l13kdsa grep -a -R -o 'router.version=.*;' | cut -d';' -f 1 | cut -d':' -f 2 | sort | uniq -c | sort -rn
user Top 5:
user 7544 router.version=0.9.56
user 4445 router.version=0.9.58
user 1477 router.version=0.9.57
user 527 router.version=0.9.55
user 186 router.version=0.9.51
l13kdsa отвал
l13kdsa какой быстрый привал
orignal так ацетон отвалился
orignal пойду пересоберусь
l13kdsa кстати, по капсам, самый жирный - 8329 caps=LU
l13kdsa кстати, по капсам, самый жирный - 8329 caps=LU (повтор на всякий случай для orignal)
orignal а верися какая?
orignal то есть LU это как раз нормально
orignal это обычные обыватели
orignal <blngq> netbsd i2pd has been working great
orignal на тему бздунов
orignal он как раз собрал последний коммит
l13kdsa хотя, по поводу капсов, там есть и цифровой вариант, я хз, он ещё жирнее: 10644 caps=4
l13kdsa > а верися какая? < щас попробую распарсить
orignal неее caps=4 это дргой
orignal это который адреса а не роутера
orignal там 2 вида
l13kdsa что ж, если мои ковыряния верны, то, вот: 6031 caps=LU;netId=2;router.version=0.9.56;
l13kdsa так что, походу все просто сидят на старой версии просто потому что она работает...
l13kdsa класс, в netDb даже можно наковырять роутеры (их количество), которые известны другим (наверное флудфилам)
orignal да это число тоолько флудфилы публикуютсч
l13kdsa 20578;router.version 0.9.55;
l13kdsa 19461;router.version 0.9.55;
l13kdsa 18998;router.version 0.9.58;
l13kdsa 18928;router.version 0.9.58;
l13kdsa 18860;router.version 0.9.58;
l13kdsa 18730;router.version 0.9.58;
l13kdsa пытаюсь распарсить как могу, в этих полубинарных файлах)))
l13kdsa хех, названия family видно)
orignal конечно вижно
user Туннели резко в рост пошли
orignal аидпть баны у джавистов истекли
user Только 4хоп туннели всё равно не строятся
user И 3хоп с трудом
user Откатились обратно 18к -> 11к
l13kdsa Во, точно растёт, подтверждаю, ещё бы флудфилы tcsr бы слали...
orignal шлют для зондирующих
orignal джавовские
orignal там какой то хитрый формат который даже дед не знает
orignal кстати семейство gostcoin это мое
wat Кто здесь работает на плюсах?
orignal для тебя никто
orignal а вообще много кто
Vort tetrimer: там же вроде при анализе дампа надо путь к бинарнику указывать. это ж не винда, где такое делается автоматически
weko [22:16:05] <l13kdsa> погоди, а в случае first start он разрешает просроченные роутеры? Чтобы закинуть например прошлогодний netDb архив к примеру
weko Вроде да
weko Туннели ушли, TCSR чуть подрос
weko Это по другой причине))
Vort у меня 10%, примерно как и в предыдущие дни когда волны не было
Vort хоть это уже и много раз обсуждалось, но у меня в очередной раз возникло подозрение, что нынешние 10к транзитных туннелей могут быть делом рук юзеров
Vort если у децентрализированного приложения с вот таким количеством Client Tunnels есть заметное количество юзеров, то это вполне может давать такой эффект:
Vort а если оно вдруг ещё написано как попало, то и трафик бесполезный может тоже создавать
Vort атаки, как я вижу, имеют более пиковый характер
l13kdsa количество старых версий только выросло
Vort по куче L нод у меня тоже сомнение: не факт, что это обычные юзеры
Vort по графикам виден рост чисто L узлов, хотя если бы это были обычные юзеры, то и другие типы бы добавлялись
Vort в java ведь автодетект скорости?
Vort с чего бы это иметь рост i2pd, но не иметь рост java, где дефолтной L скорости нету (вроде как)
l13kdsa там ещё могут быть несостыковки, из-за того, что в файлах не только "caps", а ещё есть "ccaps" "-caps"
Vort l13kdsa: в файлах вперемешку текст и бинарные данные
Vort надо понимать, где одно, а где другое
Vort и не рассматривать бинарную длину строки как текст к примеру
Vort если хочется иметь чисто текст, то стоит RI пропускать через java
l13kdsa да я вижу, пытаюсь зацепить по сепараторам ";" и убрать непечатаемые бинарные символы, вывод вполне читабелен
l13kdsa router.exe к сожалению нет возможности стартануть (по некоторым причинам), по этому применить unixway подход
Vort какой такой exe ? я jar запускал
Vort надо папку router.jar целиком выковырять из установки джава версии и дальше уже с ней можно работать хоть с помощью OpenJDK
Vort папку с *
Vort жаль нет метода скачать эти файлы напрямик. ну или я не нашёл
Vort я упоминал routerinfo.exe, а не router.exe - и применить его мне не удалось. зато метод с java заработал
l13kdsa если по флудфилам вычислить среднее их известных роутеров, то получится вот: 7621
l13kdsa хотя, фиг его знает, эти цифры же можно подменять наверняка
l13kdsa Vort: > с вот таким количеством Client Tunnels < хм, а что, все таки большое количество туннелей делает хуже?
l13kdsa А ну да, с учётом банящей джавы
Vort "а что, все таки большое количество туннелей делает хуже?" - да, расходуется больше ресурсов. не просто так же java не тянет
Vort в случае если это ошибка (и программист не понимает, что по одному дестинейшену можно много коннектов делать), то это очень желательно исправить
Vort если для какой-то цели всё же нужно столько туннелей, то надо выяснить, почему и подумать над этим
Vort в любом случае мне кажется неправильным оставлять это просто так. но надо чтобы кто-то написал разработчику без ругани и наездов. а вот кто так умеет - не знаю
l13kdsa 275 флудфилов (известных моему) знают больше 10000 роутеров
l13kdsa К сожалению туннелей посмотреть не могу, наверняка они закодированы в бинарных строках
l13kdsa ещё бы тот router.jar разобрать на сорцы, чтобы попробовать разобрать файл чем-нибудь другим, но только не жавой
Vort а чем java мешает?
Vort сорцы есть. могу найти ссылку
Vort java i2p тоже опенсорс вообще-то
l13kdsa хотя, вручную байты перебирать тоже как-то не айс...
Vort вот тут обработка командной строки: github.com/i2p/i2p.i2p/blob/master/core/java/src/net/i2p/util/CommandLine.java
Vort l13kdsa: упс. не ту ссылку дал. вот правильная: github.com/i2p/i2p.i2p/blob/master/router/java/src/net/i2p/router/CommandLine.java
l13kdsa да я вот тоже подумал, это ж явно не то было)
l13kdsa но, спасибо
Vort оказывается у них там несколько точек входа как бы
Vort я привык что одна программа - один набор команд. а вот фиг там
Vort там видимо у каждого объекта свой toString
Vort а ниже метод, который вызывает вывод RI public static void main(String[] args) {
Vort не пойму пока правда как оно вариант *.dat обрабатывает
Vort ну да не важно
weko Можно ещё как вариант запарсить файл в объект RI в i2pd и потом читать параметры
weko Можно даже в i2pcontrol эту фичу встроить шоб считала
weko А то читать по куче файлов на диске чревато
Vort i2pd не всё хранит
Vort "<weko> А то читать по куче файлов на диске чревато" - в чём проблема? в доступе? ну так с копиями работать надо
weko Я просто думал либо делать костыльный протокол для получение данных напрямую с роутера (понятно почему это лучше и даже необходимо), либо же расширять i2pcontrol. Думаю второй вариант лучше, однако не уверен что сохраниться суть протокола (возможно, будет хорошая
weko идея отдельно отмечать параметры, зависящие от реализации. В доках уже есть просто отметки, но думаю можно возвращать код реализации для универсальности)
weko Vort: при чём тут доступ?
weko Читать тысячи файлов ну даже раз в 10 секунд - лишний износ диска
l13kdsa ну, в десять секунд перебор, там netDb обновляется раз в минуту как раз походу
weko Даже название говорит - i2pcontrol это про контроль, а не получения статистики. Хотя это не главное
l13kdsa Хотя, именно что читать, это не критично
l13kdsa А вот писать тонну файлов, вот тут да))
weko Почему то не хочется пихать всё в i2pcontrol, возможно ошибаюсь и это будет нормально; всё равно мало вариантов есть
weko Надо сделать обязательную аутентификацию,потому что там куча данных доступно
tetrimer weko: >Надо сделать обязательную аутентификацию
tetrimer Или доступ через unix-socket, чтобы только локально было доступно.
weko Да, хотел предложить
weko Только для другого
weko Обязательную не нужно делать, но настоятельно рекомендовать если хост не 127.0/8 стоит
Vort "<weko> Читать тысячи файлов ну даже раз в 10 секунд - лишний износ диска" во-первых, это от ОС зависит. во-вторых, можно на рамдиск закинуть. в третьих, зависит от цели. если однократный анализ, то пофиг
Vort "протокол для получение данных напрямую с роутера" если из памяти, а не диска, то я же уже сказал - в памяти обрезанные данные. если читать с диска, то это будет дублирование кода ну и лишние чтения
Vort хотя если кому-то обрезанных данных достаточно - то можно и так
weko При чём тут обрезанные данные?
weko Если данные читаются, значит они имеют значение. Если нет - то это мусор, и он в статистике не нужен
Vort weko: при том, что для анализа этого может быть мало. а вообще странный вопрос
Vort "Если нет - то это мусор" - неверно
orignal tetrimer чувак на openbsd собирал и зпаускал последние коммиты все у него нормальо
Vort tetrimer: видел моё сообщение про указание файла?
tetrimer У меня на 13-й версии - тоже пока все нормально.
orignal у джава тоже L по умаолчани.
weko Я тут подумал, что некоторые моменты придётся дописывать в метод чтения. И нужны будут только для статистики. Тоесть просто дописать методы в i2pcontrol не выйдет (так, чтобы не менять основной код). Значит либо придётся делать отдельный билд, либо думать что ещё
weko можно сделать и так ли это нужно
tetrimer Это там что-то в системе накосячено, раз она свои же debug-файлы не признает.
Vort orignal: странно. я припоминаю UI для теста скорости. надо будет мне когда-нибудь проверить
weko [11:21:54] <Vort> "Если нет - то это мусор" - неверно
weko Верно? Зачем это значение если оно не используется?
orignal LU это обычное дело
Vort не используется для работы i2pd, но может использоваться при анализе файлов
orignal сами они ничего не выставляют
weko И что ты там увидишь?
Vort tetrimer: файл указывал при анализе дампа?
weko Секретное послание?
weko Типо "мы вас видим"
tetrimer Vort: Да я там уже "и унитаз приносил и жопу показывал"... И пересобирал несколько раз... :(
tetrimer Там начинается с того, что gdb пишет про системные библиотеки, что, типа, не могу подгрузить символьный файл из debug версии.
tetrimer Хотя файлы от одной даты и версии...
Vort weko: да хоть послание. будет возможность по нему классификацию сделать. забыл что ли "salt" в caps`ах?
tetrimer Проще будет, после празников, обновить систему до более актуальной. Пока отключил там SSU2 и версию чуть понизил... Вроде работает.
weko У меня сомнение по поводу встраивания в i2pcontrol вот почему: надо добавить метод который возвращал бы количество java роутеров и i2pd роутеров, но на данный момент протоколом никак это не регламентируется и основано на разном поведении, которое может и поменяться.
weko Поэтому это костыль, которое не стоило бы встраивать даже в realization specific метод i2pcontrol... orignal , что думаешь?
orignal зачем оно?
weko Для статистики
weko Хочу туда пихнуть много новых методов
l13kdsa ну вы особо не заморачивайтесь, если я триггернул эту тему, кому надо и файлы может перебрать как-нибудь, все же статистика в i2p это почти рандом основанный на "тенденциях"
weko l13kdsa: необходимость в инструменте давно тут обсуждалась
weko Да и статистика не только по NetDb должны быть
l13kdsa ну, по вопросу нужно ли, в принципе чисто теоритически, например 500 флудфилов внезапно стали знать 10000-20000 роутеров, можно предположить, что снова спам роутерами
weko Я вот думаю стоит сделать просто возврат поддерживаемых методов
weko А клиент будет уже понимать что с этим делать и что можно использовать
weko l13kdsa: да нужно вообще по всем параметрам
weko Какие только можно
l13kdsa главное случайно не сделать инструмент деанона по статистике)))
l13kdsa по такой подробной статистике*
weko Ну как раз таки будет хорошо что мы узнаем об этом раньше чем различные чмошники
l13kdsa эх, если бы не атаки, можно было бы не пытаться статистику делать
qend Blinded message
qend смотреть количество java роутеров?
Vort "главное случайно не сделать инструмент деанона по статистике)))" - свой узел - легко. тот кто решится выкладывать статистику, уже не будет анонимен. другие узлы - не особо, так как хакер может сделать (а, точнее, скорее всего, уже делает
Vort ) ровно то же самое
Vort "<l13kdsa> эх, если бы не атаки, можно было бы не пытаться статистику делать" - для оптимизации работы сети статистика тоже нужна. ну если стараться сделать сеть лучше
Vort qend: метод, может, и не нужен. данные - нужны. хотя бы самое простое - сделали улучшение - проверили, перешли ли к нам юзеры
Vort вариант, когда хакер наваливает кучу узлов тоже полезно ловить. вряд ли он будет балансировать i2pd/java разновидности
weko [11:43:56] <qend> ... метод который возвращал бы количество java роутеров и i2pd роутеров... <- weko: что даст эта статистика, зачем она нужна всем, что ее следует добавить? Если она нужна только тебе конкретно, почему не сделаешь ее для себя, чтобы лично
weko [11:43:56] <qend> смотреть количество java роутеров?
weko А зачем делать так, чтобы никто потом не смог воспользоваться?
weko [11:40:35] <l13kdsa> эх, если бы не атаки, можно было бы не пытаться статистику делать
weko Не можно
weko В любом случае нужно сделать
qend <weko> А зачем делать так, чтобы никто потом не смог воспользоваться?
qend Я тебя спросил зачем делать то, что никому не нужно?
l13kdsa чтобы подмайорные узлы не стали юзать готовый инструмент статистики
l13kdsa это был ответ на "А зачем делать так, чтобы никто потом не смог воспользоваться?"
weko Эм
weko А смысл?
weko Они сделают свой
weko Какой толе
weko [12:40:30] <qend> Я тебя спросил зачем делать то, что никому не нужно?
weko Сначала аргументируй, что никому не нужно и не будет нужно
weko У меня нет причин полагать, что никому не нужно и не будет нужно, поэтому я сделаю нормальный метод
weko Впрочем даже если бы и были - все равно бы сделал метод
weko l13kdsa: закон Мёрфи, слышал?
qend weko: Аргументируй обратное) мне вот очень нужен метод, чтобы в телеграм еще статистику отправлял, тоже надо бы запилить, вдруг еще кому понадобится ;)
weko Делай
l13kdsa ладно, щас будет срач наверное, лучше не пытаться
weko Где проблема то?
qend l13kdsa: да, с таким на ru идти
l13kdsa В технической беседе прост получше
orignal HandleTunnlBuildI2NPMessage
orignal чини
weko Ой бля
weko Ок
orignal отсальное нормально
weko orignal:
orignal что?
weko исправил
orignal чрез 15 минут я на собрании
not_bob I thought the #ls2 meeting started in 45 min?
not_bob This must be something else.
weko 18:30 utc
weko now is 15:29 utc
not_bob OYH, 18, not 16! Hahahah
weko 39*
not_bob Yeah, my bad there.
weko heh
orignal it's 2:30
orignal смержил
weko щас ещё доделаю
weko кое что
weko boost::asio::ip::address m_LocalAddress;
weko boost::asio::ip::udp::endpoint m_RemoteEndpoint;
weko нейминг бомба ))
orignal а что не так?
weko это про одно и тоже
weko только адрес local а endpoint внезапно remote
Vort weko: endpoint - это address + port
weko не только
weko но это понятно
weko вопрос ведь почему одно local а другое remote
orignal нет
Vort ну свой и чужой, нет?
orignal одно local другое remote
orignal разные стороны
Vort свой IP и чужой IP + порт
weko IP роутера выходит?
weko там UDP серверный туннель
weko зачем там свой IP предельно не понятно
orignal local скрее всего куда bind
weko ну понятно
weko так стоп там нет bind
weko это же серверный туннель
Vort ну перекладывает же данные с одного места в другое, верно?
weko ну а зачем нам свой IP то хранить
weko нам он не нужен чтобы пакеты слать
weko которые с I2P приходят
orignal нужен чтобы привязку сокета делать говорю же
Vort поиск по названию просто делаешь и всё
Vort if(m_IsUniqueLocal && m_LocalAddress.is_loopback())
Vort вот тут используется к примеру
orignal ну да к 127.x.x.x
orignal а для серверных как?
weko куда идёт пишется
weko и показано стрелкой
weko стрелка направлена от адреса b32 на ip адрес
orignal хорошо
weko закрой иссуй ещё
orignal счас пусть дособерется
weko ок
l13kdsa merge o'clock
weko бля, надо было ещё добавить destination port в клиентские туннели
weko ну уже пох ))
orignal так добавь я еще не смержил
weko ок
weko там ещё переделать надо
Vort опять волна: Transit Tunnels: 17400
weko LeaseSets: 462
weko есть такое
orignal weko так мержить?
weko нет
weko там неверно в клиентских туннелях
weko переделываю
weko искал один момент просто
weko LeaseSets: 463
weko или я что-то не понимаю
orignal никакх typeid
weko а как сделать то
orignal делай виртуальный метод
weko а в прокси что ?
orignal только так
weko что прокси возвращать будет
orignal возвращать пустую строку
orignal метод возврашает b32 строку
weko ну да
weko ну ок хорошо
orignal в C++ typeid есть
weko думал так плохо будет )
orignal но мы его испольщовать не будет )))
orignal ибо моветон
weko почему?)
Vort он же наверно требует RTTI
Vort дополнительный код вроде генерится
weko ну тут оправдано было бы
weko потому что во время компиляции неизвестно какие будут туннели
weko и прокси
orignal RTTI это больгая гадость которую лучше избегать
orignal из соображений производетльности
weko хотя тут лучше было бы разделить их на разные контейнеры
weko orignal: да тут то ладно, а вообще вебконсоль не особо требовательна )
_mblw_ я юзаю веб консоль
weko _mblw_: а дальше то что?
weko orignal: там ещё проблема что GetRemoteDestinationPort() возвращает число, а как мне вот число пустым сделать?
weko хотя есть идея
weko просто проверять пустая ли строчка destination
weko хотя порт всё равно надо какой то возвращать
l13kdsa занулить порт?
weko ну я думал так сделать
weko просто не хочется не валидное значение возвращать
l13kdsa да и вдруг всё сломается
weko хотя пох
orignal возвраший 0
weko orignal: вроде всё
weko там длинная строка выходит, хз что с ней делать
weko там теперь выводится отдельно b32 локального дестинейшена и куда ведёт туннель если не прокси
weko 43zxxxucbwxxxxxxxxxxxzbxxxxhgnryy4c3xxfbmaxxx3pcxxxq.b32.i2p; 127.1.1.1:6624 ⇒ lxxxxxdoipmm7xxxxxbo2qcceiaxxxxxxxxxx7tyxxxxxxlx2poa.b32.i2p:2345
weko типо такого
orignal на веб морде прятать под спойлер середину
orignal * Dendy вышел (Quit: )