Pull to refresh

Comments 78

Вопрос — насколько он полно поддерживает i2p для конечного пользователя? Есть ли хотя бы сёрфинг по i2p сайтам, i2p-торрент и тому подобное, что имеется в java-версии?
Поддерживает все, что есть в i2p. Просто является более быстрым и, самое главное, более стабильным.
Поддерживает серфинг, скрытые севрисы, торренты через BOB.
Подробно я описывал здесь habrahabr.ru/post/240815
Не подскажете, где найти такой headless торрент клиент?
Желательно с Web-интерфейсом. Видел вроде i2ptransmission, но я не знаю насколько он актуален.
У эшелона (echelon.i2p) точно есть.
Так и не понял сколько оно памяти занимает? На OpenWRT каком-нибудь его запустить реально или хотя-бы на малине?
И на малине, и на OpenWRT можно. Но оперативной памяти должно быть не меньше 128Мб.
Порядка 30-40 мегабайт. На малине (первой) у меня работает отлично.
Под OpenWRT тоже собирали и вроде работало.
Можно ли ожидать пакета в репозитории OpenWRT? (Как с Tor сейчас.)
Можно, если найдется мейнтенер для него.
Есть ли среди разработчиков кто-нибудь, кто мог бы этим заняться?
Собирал предыдущие версии под TL-MR3220V2 (Atheros AR9331@400MHz 32MiB RAM), со свопом работает нормально и стабильно
<оффтоп> КДПВ напомнила оформление статей в журнале хакер в его лучшие годы </оффтоп>
Картинки (особенно в посте про винду) отдают какой-то дешевой заманухой: «давай, парень, скушай таблеточку, брат мой жив, зависимости никакой».
Ну, я бы с радостью попробовал нативную реализацию ибо на жабе i2p слишком уж жирный получился:
WARN [impleAppMain] .tunnel.BloomFilterIVValidator: Configured for 4,00MBps share bandwidth but only 368,00MB available memory. Recommend increasing wrapper.java.maxmemory in c:\Program Files\i2p\wrapper.config to at least 422 (MB) if the actual share bandwidth exceeds 4,00MBps.

Т.е. для хоть сколько нибудь приличных скоростей он хочет несколько сотен МБ памяти.

P.S. Как с реализацией в i2pd будет покажет время. До сравнительных тестов i2pd vs i2p работающих параллельно на разных портах с одними и теми же настройками на одном и том же хосте у себя точно трогать ничего не буду ибо не хочется ломать работающую реализацию.

P.P.S. но я всё равно не понимаю, что с самим I2P не так. В настройках указано 4096 на входящую и исходящую скорость и доля транзита 100%, но скорости в пиках через хост десятки кБ/c, не больше.
Вполне годный тьюториал, будет очень полезет новичкам.
Спасибо
Есть, но не у всех. В стандартный дистрибутив он не входит.
Строго говоря, cmake тоже не входит. Использовать make install, тем более, без префикса — это антипаттерн в современных линуксах.
Потому и есть обычный Makefile
Как и половинавсе пкеты доставленные в статье.
к тому же, он тут совершенно не нужен.
Кто-нибудь собирал его под Centos6?
cmake -DCMAKE_BUILD_TYPE=Release -DBoost_NO_BOOST_CMAKE=BOOL:ON
выдает ошибку error: 'nullptr' was not declared in this scope
Какая версия g++?
Спасибо,
Прекрасно, что проект так развился с тех пор, как про него первый раз писали на хабре пару лет назад.
А как дела с аудитом безопасности? Оригинальный i2p вроде прямо предупреждает, что вполне могут быть дыры, но его вроде бы проверяли достаточно серьезные люди.
Сейчас у меня есть i2p роутер в контейнере, всё вместе потребляет 140 Мбайт памяти. Мне можно оставить всё как есть или ваш проект несет какие-то дополнительные бонусы?
Меня больше нагрузка на процессор интересует. Жрет ощутимо. Или это уже не оптимизируется?
Для снижения нагрузки на процессор в java реализации в wrapper.config надо включить вот это:
# Uncomment this for better performance.
# If it doesn't work, server mode is not available in your JVM.
# This may not be required if your machine is already "server-class".
# See http://java.sun.com/j2se/1.5.0/docs/guide/vm/server-class.html
wrapper.java.additional.7=-server

Ещё, наверняка, поможет отключение floodfill если нагрузка на процессор критична. На странице

127.0.0.1:7657/configadvanced

Настройка Floodfill

выбрать «Отключить» и нажать «Сохранить изменения»

P.S. где у вас лежит wrapper.config не знаю, у меня i2p под windows работает и с умолчательной установкой файл лежит в
 %PROGRAMFILES%\i2p\wrapper.config
Спасибо, посмотрю. Floodfill включал, чтобы узел был более известен. Думал, что увеличит связность
Пожалуйста, вот ещё вспомнил что на странице

127.0.0.1:7657/graphs

доступна статистика по потребляемой памяти очень может быть что нагрузка на процессор вызвана не столько I2P сколько самой Java из-за сборки мусора. У себя увеличил максимальное значение потребляемой памяти, в т.ч. и для поддержания более высокой скорости (судя по логам), по умолчанию стояло 128, поставил 384:
# Initial Java Heap Size (in MB)
#wrapper.java.initmemory=4

# Maximum Java Heap Size (in MB)
# The JVM's default is 64MB, and I2P can work fine in that, but to handle
# lots of I2PSnark activity in the same JVM, increasing the default max heap
# size should help.  Feel free to reduce this if not using I2PSnark in the jvm
# High-bandwidth routers may need to increase to 256 or more.
#
# WARNING - for any changes to take effect, you must completely
# stop the router and the wrapper. Clicking 'Restart' on your
# router console will NOT reread this file! You must
# click "Shutdown", wait 11 minutes, then start i2p.
#
wrapper.java.maxmemory=384

Это настройка всё в том же wrapper.config.
Это все из-за java. В i2pd такого нет уже просто потому, что реализация на C++. i2pd работает быстрее и стабильней, чем оригинальная java-реализация.
такие споры мне напоминают холивары: twitter стал быстрее потому что переписали с ruby на scala
на самом деле: полностью сменили архитектуру на микросервисы и event processing

почти любой кто видел тормозящий i2p на java и смотревший в исходники может подтвердить:
1) одна из основных проблем это большой context switch, так как на каждый поток ввода-вывода создает thread
2) почти полное отсутсвие использования nio, большинство вещей на стандартном io
3) наличие N потоков в каждом из которых имеется личный буфер дает дополнительное давление на память и gc
4) и уже только на четвертом месте оказывается само шифрование-дешифрование

в итоге мы вместо асинхронности и вменяемого потребления под различные буфера ввода-вывода сжираем почти все что можно

почему же не использовать netty и другие сетевые фреймворки?
ответ до банальности прост: безопасность, так как текущий код до ужаса прост, то и аудит его сделать проще, ну и отсутствует зависимость на сторонних библиотеках (через которых можно что-либо пропихнуть), только голый java core.
Несёт. Говорю по опыту, i2pd работает быстрее, но, самое главное, стабильнее. Не вылетает непонятно из-за чего и не обрывается на ровном месте.
Ммм… ну вылетов и обрывов я не наблюдал, может по тому что виртуалка раз в неделю рестартится для бекапа.
По нагрузке сейчас как-то так:
Картинка


Чертовы узлы наконец начали появляться после включения floodfill и повышения лимита до 4096\4096, а то больше года работаем а толку никакого.

А интерфейс консоли i2pd такой же страшный как и у официального?
Да, обрывы на достаточно сильном компе не будут так часто наблюдаться, однако на более слабых они есть и постоянно.

А i2pd автоматически использует максимально возможную скорость.

Нет, интерфейс очень приятный для глаз, особенно, после официального.
Web-консоль i2pd
Запилите мне туда девочку из топика про винду и я готов пробовать =)
А вообще интерфейс действительно приятный, да.
И еще была раздражающая фигня со связностью. Когда узел работает пару месяцев, а некоторые ресурсы доступны через раз.
Это, боюсь, либо by design, либо какие то баги реализации, на этот момент все жалуются, но решения «чтобы наверняка» мне так и не попадалось.
Вот это и смущает. Вроде и поток максимальный через себя пропускал, значит все меня знать должны были уже. Видимо еще ковырять долго протоколы.
Можно ещё попробовать вот в этот сайт адресов проблемных ресурсов накидать, через I2P он тоже доступен без xyz. Возможно, что проблема не у вас, а сами ресурсы просто лежат. Ну и список подписок побольше ибо умолчательный обновляется раз в вечность, у меня, например, так:
Список подписок
http://bl.i2p/hosts2.txt
http://cipherspace.i2p/addressbook.txt
http://dream.i2p/hosts.txt
http://hosts.i2p/
http://i2host.i2p/cgi-bin/i2hostetag
http://i2p-projekt.i2p/hosts.txt
http://inr.i2p/export/alive-hosts.txt
http://no.i2p/export/alive-hosts.txt
http://rus.i2p/hosts.txt
http://stats.i2p/cgi-bin/newhosts.txt
http://tino.i2p/hosts.txt
http://trevorreznik.i2p/hosts.txt


Публикую поскольку в топике список чуть поменьше.
Что-то мне эта КДПВ напомнила…
Заголовок спойлера
image
-поэтому не очень много и ресурсов.

Ждём гугл для i2p :) или тот самый «Портал со всеми сайтами в сети»
А вообще, гугл для i2p есть.

что-то типа прокси? google.i2p не отвечает.
elgoog.i2p/
Только вам придется его, скорей всего, добавить в адресную книгу. Это просто. Зайдите на inr.i2p/ и вбейте в поисковой строке название этого сайта. Base64 link этого сайта будет добавлен в вашу адресную книгу автоматически.
Да, в i2pd не хватает встроенной поддержки jump сервисов: не найден сайт, редирект на преднастроенный jump сервис. Пока приходится использовать макрос (или как они называются, когда делаешь закладку в браузере, даёшь ей короткое имя и в нужное место адреса %s подставляешь?) в браузере: «j site.i2p», который отсылает на «inr.i2p/jump/site.i2p»
Никто это ещё в ppa не запихнул, чтобы руками не пересобирать?
Как разрешить доступ не только из localhost?
Вообще, никак. Это особенность сети, один из столпов, на котором и строится анонимность сети.

Но, простите, а зачем вам это?
Запустить i2pd на банане, и иметь доступ к i2p из android/winphone.
Эммм… проброс портов iptablesами настроить, не?
Что именно надо? Для тоннелей в поле address написать 0.0.0.0.
Для HTTP прокси — параметр httpproxyaddress и так далее
Я не могу получить доступ к веб-интерфейсу извне. Развернул i2pd на отдельной виртуальной машине как и обычный i2p ранее. Где в конфигах прописать разрешение на доступ отовсюду 0.0.0.0 и порт? Мне грубо говоря, надо зайти на 192.168.100.10 и увидеть там интерфейс управления.
Собственно, мне нужно это же.
C java i2p это возможно.
-httpport=192.168.100.10 тогда можно будет заходит с сеть 192.168.100.*
если вообще отвсюду то -httpport=0.0.0.0
Для прочих сервисов аналогично.
Это в котором конфиг файле?
Это скорее на аргумент строки запуска похоже.
это параметр командной строки. или можно в отдельный конфиг файл их записать и передать в качестве параметра имя файла
А по поводу нормального конфиг-файла можно пункт мануала? В обычном i2p это решалось правкой одной строки в /etc/i2p/чтототам.cfg
Конфиг: ~/.i2pd/i2p.conf
пример можно посмотреть в дистрибуции (в дебке с офф сайта это: /var/lib/i2pd/i2p.conf)
а вообще там всё просто: <опция без --> = <значение>
опции посмотреть: i2pd --help либо /usr/share/doc/i2pd/configuration.md
Поясните, пожалуйста, пару вопросов:
1. Пока i2pd не опросит всю сеть я подключиться к search.i2p не смогу?
2. search.i2p или http:// search.i2p?
3. А мы же не создали клиентский туннель, как мы будем коннектиться по http?

В общем и целом хочется больше информации о принципах работы i2pd… Буду благодарен за ссылки)
и кстати порт у меня заработал 4444 а не 4446 который предлагается использовать в статье…
На 4444 вчера только сменили.
Подключиться можно будет как только адресную книгу скачает, а это когда первые тоннели построит.
search.i2p
на этапе make была куча ворнингов о каких-то пустых параметрах и под конец вылетела с ошибкой «не хватило памяти».
VPS 1 гиг оперативы.
не айс.
мне это рекомендовали как альтернативу «прожорливой» жаве))
А как связана прожорливость компиляции и прожорливость работы?
С++ действительно компилируется долго и тяжело, а работает быстро.
верное замечание.

в общем, по инструкции оно не установилось.
Я брал уже в виде пакета готового.
.deb я тоже попробовал — там тоже какие-то траблы (уже не помню чего именно, но пришлось сносить потом)

в общем, буду по старинке, на Java -)

**кстати, пакет какой ставили? у меня Ubuntu 16.04
Тоже Ubuntu 16.04 Server. Откуда пакет не помню.
Sign up to leave a comment.

Articles