333.i2p

Форум, посвященный разработке и поддержке i2pd
 
Fri, 18 Mar 2016, 04:50pm #1
xcps
Участник
Registered: February 2016
Последний раз: Fri, 02 Dec 2016
Сообщения: 8

Народ не может заюзать i2pd, элементарно найти конфигов не могут, потому что они не создаются при запуске.
Предлагаю:
- создавать дефолтный конфиг
- tunnels.cfg с прописанным тоннелем на ирк и жабер
- subscriptions.txt тоже не создается
- поставлять в адресной книге адреса jump сервисов, а можно и вообще многих популярных ипсайтов, у которых например аптайм год и больше, ибо по джамп сервисам ходить тоже не великое удовольствие.

Еще бы придумать че то с торрентами и почтой, но видимо не на этом этапе.

Offline
Fri, 18 Mar 2016, 04:52pm #2
orignal
Директор
Wlm
Registered: February 2016
Последний раз: Fri, 13 Sep 2024
Сообщения: 209

И как его распространять? В .deb пакетах?

Offline
Fri, 18 Mar 2016, 04:59pm #3
xcps
Участник
Registered: February 2016
Последний раз: Fri, 02 Dec 2016
Сообщения: 8

Ну вроде компилить умеют, а дальше не получается.
В идеале бы да, в деб пакетах. Они же вроде есть уже?
Можно кстати и просто архивом, чтоб распаковал в папку i2pd, и там тебе и конфиги и тоннели и бинарник, и работает все. Фаерфокс недавно качал - они так делают.

А если еще сделать, чтоб какой нибудь бот раз в сутки netDB актуализировал в архивах на сервере, то вообще круто было.

Offline
Fri, 18 Mar 2016, 10:54pm #4
partizan
Участник
Registered: February 2016
Последний раз: Sat, 24 Sep 2016
Сообщения: 5

Я полагал, что в дебиановские пакеты конфиги из каталога debian попадают. В Archlinux тоже пакет формируется с этими конфигами.
Для тех, кто из исходников ставит, надо просто в документации уточнить, где брать готовые примеры. Или создать каталог examples.
А вот в subscriptions.txt, IMHO, было бы правильнее b32 адреса прописать. Это помогло бы быстрее получить addressbook при первых запусках.

Offline
Sat, 19 Mar 2016, 01:04pm #5
orignal
Директор
Wlm
Registered: February 2016
Последний раз: Fri, 13 Sep 2024
Сообщения: 209

xcps wrote:

А если еще сделать, чтоб какой нибудь бот раз в сутки netDB актуализировал в архивах на сервере, то вообще круто было.

А чем это лучше ресида?

Offline
Mon, 21 Mar 2016, 10:01am #6
partizan
Участник
Registered: February 2016
Последний раз: Sat, 24 Sep 2016
Сообщения: 5

Еще один момент, считаю, необходимо очевидным образом отобразить в документации: для нормальной работы i2p обязательно должна быть настроена синхронизация с точным временем.
Я, например, вроде бы и в курсе был, но т.к. на ноуте изредка синхронизирую время вручную, то разница была где-то в 1.5-2 минуты. При попытке поднять i2pd на нем часа полтора тупил на 3-4 известных роутера и пару сиротливых туннелей. Пока не синхронизировался, наконец. По-моему, очень знакомая картина, когда люди жалуются, что у них сутками не поднимается ничего.

Offline
Tue, 22 Mar 2016, 05:47pm #7
xcps
Участник
Registered: February 2016
Последний раз: Fri, 02 Dec 2016
Сообщения: 8

partizan wrote:

Для тех, кто из исходников ставит, надо просто в документации уточнить, где брать готовые примеры. Или создать каталог examples.

Проблема в том, что создается папка ~/.i2pd/ с набором файлов, юзеры не находят там конфиг и им кажется, что его и не должно быть. Имхо, раз создается папка, то надо туда пихать все, что там должно быть.

orignal wrote:

А чем это лучше ресида?

А хз. Если не лучше, то не надо :)

Offline
Wed, 23 Mar 2016, 03:58pm #8
orignal
Директор
Wlm
Registered: February 2016
Последний раз: Fri, 13 Sep 2024
Сообщения: 209

Да, логично туда положить хотя бы пустые файлы.

Offline
Sat, 26 Mar 2016, 09:14am #9
kurator
Участник
22396bb2e31a0bbf91cdd7e75b85cc7db0244c6e_full
Registered: March 2016
Последний раз: Sat, 03 Aug 2024
Сообщения: 7

а ещё лучше конфиг с которым запускается роутер если ничего явно не настраивали, например я до сих пор путаю что висит на 4447 порту socks или https

Last edited: Sat, 01 Oct 2016, 05:39pm от kurator

Offline
Sat, 26 Mar 2016, 09:19am #10
kurator
Участник
22396bb2e31a0bbf91cdd7e75b85cc7db0244c6e_full
Registered: March 2016
Последний раз: Sat, 03 Aug 2024
Сообщения: 7

вообще предлагаю тому кто этим занимается, обращать особое внимание на сложности, с которыми сталкивается человек, впервые запустивший роутер. это не всегда новичёк, прошу заметить. очень важно чтоб роутер сам "подсказывал" что и как сейчас происходит или будет происходить или почему не происходит то что ожидалось.

Offline
Thu, 31 Mar 2016, 03:24pm #11
xcps
Участник
Registered: February 2016
Последний раз: Fri, 02 Dec 2016
Сообщения: 8

orignal wrote:

xcps wrote:

А если еще сделать, чтоб какой нибудь бот раз в сутки netDB актуализировал в архивах на сервере, то вообще круто было.

А чем это лучше ресида?

Я придумал, чем. Тем, что если к примеру хостить на гитхабе, то можно оттуда брать без палева :)

Offline
Sat, 01 Oct 2016, 05:45pm #12
kurator
Участник
22396bb2e31a0bbf91cdd7e75b85cc7db0244c6e_full
Registered: March 2016
Последний раз: Sat, 03 Aug 2024
Сообщения: 7

а сейчас один конфиг или по прежнему разбит на i2pd.cfg и tunnels.cfg ?

Offline
Thu, 20 Oct 2016, 05:08pm #13
R4SAS
Участник
Registered: May 2016
Последний раз: Sat, 19 Mar 2022
Сообщения: 15

kurator wrote:

а сейчас один конфиг или по прежнему разбит на i2pd.cfg и tunnels.cfg ?

Раздельно, как и всегда.

Offline
Fri, 03 Mar 2017, 09:01pm #14
anon
Участник
Registered: March 2017
Последний раз: день назад
Сообщения: 40

.

Last edited: Thu, 25 Jul 2019, 08:24pm от anon

Offline
Fri, 03 Mar 2017, 09:10pm #15
anon
Участник
Registered: March 2017
Последний раз: день назад
Сообщения: 40

Кстати, насколько чувствительна эта реализация роутера к неточности времени на компьютере? Официальный роутер переставал нормально работать, если расхождение часов компьютера с точным временем было порядка нескольких секунд, если более, то прохождение трафика по тунелям и вовсе практически останавливалось. Что произойдёт, если синхронизировать время при работающем роутере (официальный клиент становился очень быстро неработоспособным в моём случае)? Для чего вообще нужно точное время i2p-роутеру?

Offline
Tue, 07 Mar 2017, 10:53pm #16
orignal
Директор
Wlm
Registered: February 2016
Последний раз: Fri, 13 Sep 2024
Сообщения: 209

Проверяются временные метки сообщений и если расхождение более 30 секунд то отбрасывается. Иначе злоумышленник смог бы записать и посылать нужное сообщение сколько угодно раз.
Часы должны быть синхронизированы.

Offline
Mon, 20 Mar 2017, 09:07pm #17
anon
Участник
Registered: March 2017
Последний раз: день назад
Сообщения: 40

Небольшой список того, что заметил из особенностей:

1. В русском readme на гитхабе (github.com/PurpleI2P/i2pd_docs_ru/blob/master/README.md) неверно указана ссылка на образец конфы (github.com/PurpleI2P/i2pd/blob/openssl/docs/i2pd.conf).

2. В zip-архив с i2pd.exe желательно сразу положить и все конфиги, чтобы не скачивать их отдельно. При запуске проверять, если конфиги присутствуют в одной папке с exe, то запускаться с этими конфигами в портабельном режиме без дополнительных ключей командной строки.

3. В лог некоторые фразы i2pd пишет на русском. Лучше бы писало всё на английском.

4. Хотелось бы иметь различные режимы лога, например: append, rewrite, ограничение по объёму лога. В режиме warn очень много разного текста в логе, может имеет смысл попереносить некоторые некритичные сообщения в категорию info?

5. В логе пишет warn - Addressbook: subscriptions.txt usage is deprecated, use config file instead. Что же тогда использовать, всё в конфиг вносить через запятую? А если подписок очень много?

6. Хотелось бы иметь возможность задавать интервал опроса каждой подписки по отдельности. Хотелось бы команду веб-интерфейса обновить подписки принудительно. Желательно отображение в веб-интерфейсе таблицы со списком подписок, статус скачивания успешно-неуспешно, количество скаченных записей, дата-время в UTC последней попытки скачивания для каждой подписки.

7. Хотелось бы команду веб-интерфейса перечитать конфиги, без перезагрузки роутера.

8. Не работает режим "Graceful shutdown". А также не работает ни один пункт меню "Router commands".

9. Можно ли задавать outproxy для http-прокси? Предусмотрен ли отдельный https-прокси? Или его функционал уже присутствует в http-прокси? Почему outproxy есть только у socks-прокси?

10. Хотелось бы возможность более точно выставлять ограничения полосы пропускания входящего/исходящего трафика (в т.ч. отдельно по TCP и UDP), а не только классы "P", "O", "X". Например: Inbound TCP = 2048 kbps, Outbound TCP = 4096 kbps, Inbound UDP = 16000 kbps, Outbound UDP = 20000 kbps. Возможность ограничения полосы пропускания для транзитного трафика в процентах или килобитах от общей полосы по каждому виду трафика раздельно.

11. Возможность раздельно задавать порт для TCP и UDP. Если порт выбирается автоматически, сделать опцию конфига, чтобы порты были разные. При автоматическом выборе выбирать из всего диапазона доступных портов или из указанного ограниченного диапазона. Возможность выбирать привязку к конкретному сетевому интерфейсу или определённому ip-адресу раздельно для TCP и UDP.

Offline
Tue, 21 Mar 2017, 01:02am #18
orignal
Директор
Wlm
Registered: February 2016
Последний раз: Fri, 13 Sep 2024
Сообщения: 209

8. На какой платформе? Только что проверил - все работает.

Offline
Tue, 21 Mar 2017, 06:34am #19
anon
Участник
Registered: March 2017
Последний раз: день назад
Сообщения: 40

Да, действительно, сейчас проверил, Graceful shutdown работает. Видимо меня смутило то, что когда выбираешь этот пункт, появляется надпись "SUCCESS: command accepted", через 5 секунд страница обновляется, возвращаясь в меню "Router commands", и ничего не происходит, процесс какое-то время продолжает висеть в оперативке, вебконсоль также работает, хотя транзитных тоннелей нет. Ну я вручную его и прибил. А нужно ждать порядка 5 минут, чтобы он завершился. Возможно стоит написать об этом прямо в вебконсоли.
Система: Windows 7 SP1 x86-64, браузер Firefox.

Offline
Tue, 21 Mar 2017, 11:24am #20
orignal
Директор
Wlm
Registered: February 2016
Последний раз: Fri, 13 Sep 2024
Сообщения: 209

Graceful это ровно 10 минут сейчас. Сделаю чтобы завершался как только исчезнет последний транзитный тоннель.

Offline
Tue, 21 Mar 2017, 02:03pm #21
anon
Участник
Registered: March 2017
Последний раз: день назад
Сообщения: 40

Да, так будет более логично.

А что скажете по пунктам 5,6,7 ?
Если переносить подписки в конфиг, было бы желательно иметь возможность напротив каждой подписки проставить интервал опроса в часах/сутках. Результаты опроса отображать в веб-консоли. Там же кнопка принудительно опросить выбранную подписку или все сразу. В текущей реализации не очень понятно, когда этот опрос производился и насколько успешно, сколько получено новых записей от каждой подписки?

Кнопка "перечитать конфиг" в меню в трее и в веб-консоли также была бы очень кстати.

Last edited: Tue, 21 Mar 2017, 02:32pm от anon

Offline
Tue, 21 Mar 2017, 11:29pm #22
orignal
Директор
Wlm
Registered: February 2016
Последний раз: Fri, 13 Sep 2024
Сообщения: 209

7 надо сделать - все никак не доберусь до этого

Offline
Wed, 22 Mar 2017, 10:41pm #23
supervillain
Участник
Registered: February 2016
Последний раз: Sun, 24 Dec 2017
Сообщения: 2

anon wrote:

7. Хотелось бы команду веб-интерфейса перечитать конфиги, без перезагрузки роутера.

+1

anon wrote:

1. В русском readme на гитхабе (github.com/PurpleI2P/i2pd_docs_ru/blob/master/README.md) неверно указана ссылка на образец конфы (github.com/PurpleI2P/i2pd/blob/openssl/docs/i2pd.conf).

Русские доки необходимо дорабатывать со временем. Помощь очень кстати будет.

anon wrote:

4. Хотелось бы иметь различные режимы лога, например: append, rewrite, ограничение по объёму лога. В режиме warn очень много разного текста в логе, может имеет смысл попереносить некоторые некритичные сообщения в категорию info?"

Конкретные примеры?

anon wrote:

5. В логе пишет warn - Addressbook: subscriptions.txt usage is deprecated, use config file instead. Что же тогда использовать, всё в конфиг вносить через запятую? А если подписок очень много?

Да, теперь используем конфиг. Ничего страшного, если подписок много, роутер справится.

anon wrote:

6. Хотелось бы иметь возможность задавать интервал опроса каждой подписки по отдельности. Хотелось бы команду веб-интерфейса обновить подписки принудительно. Желательно отображение в веб-интерфейсе таблицы со списком подписок, статус скачивания успешно-неуспешно, количество скаченных записей, дата-время в UTC последней попытки скачивания для каждой подписки.

Настройка интервала, хорошая идея. Принудительное обновление тоже норм идея.

Вопрос, насколько актуально все так детально прорабатывать. Сам этот механизм подписок убогий костыль by design.

Может лучше продумать и заимплементить современный addressbook, например, на блокчейне?

Offline
Thu, 23 Mar 2017, 03:34pm #24
anon
Участник
Registered: March 2017
Последний раз: день назад
Сообщения: 40

Конкретные примеры?

Ну это все сообщения, которые появляются регулярно и НЕ сигнализируют о критических ошибках, не позволяющих продолжать работать роутеру. Например:
warn - Profiling: no profile yet for xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
warn - SSU: Missing fragments from 0 to 0 of message 1111111111
warn - SSU: session with 111.111.111.111:11111 was not established after 5 seconds
warn - TunnelMessage: I2NP message size 1078 is not enough
error - Tunnels: Can't select next hop for xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
error - Tunnels: Can't create inbound tunnel, no peers available
warn - Tunnels: test of tunnel 1111111111 failed
warn - TunnelMessage: Unexpected fragment 2 instead 1 of message 1111111111, saved
warn - Streaming: Missing messages on sSID=1111111111: from 8 to 12
warn - Streaming: Duplicate message 7 on sSID=1111111111
warn - TunnelMessage: First fragment of message 1111111111 not found, saved
error - ElGamal decrypt hash doesn't match
error - Garlic: Failed to decrypt message
warn - Streaming: Another remote lease has been selected for stream with rSID=1111111111, sSID=2222222222
warn - Streaming: Another outbound tunnel has been selected for stream with sSID=1111111111
warn - SSU: no activity with 111.111.111.111:11111 for 330 seconds
warn - NetDb: destination xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= is requested already
warn - Streaming: packet was not ACKed after 6 attempts, terminate, rSID=1111111111, sSID=2222222222
warn - NetDb: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= was not found on 7 floodfills
warn - SSU: MAC verification failed 52 bytes from 111.111.111.111:11111
warn - Transports: Session to peer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= has not been created in 10 seconds
и т.д.
Их можно из категорий warn и error перенести в info, чтобы не забивали лог, а то он разрастается очень быстро, и в нём много повторяющихся сообщений.
Вопрос, насколько актуально все так детально прорабатывать. Сам этот механизм подписок убогий костыль by design. Может лучше продумать и заимплементить современный addressbook, например, на блокчейне?

Да, вы правы, механизм подписок это жуткий костыль. Использовать блокчейн идея здравая, нужно только грамотно продумать дизайн этого решения, чтобы в дальнейшем после внедрения не приходилось править архитектуру уже работающей системы.

Last edited: Thu, 23 Mar 2017, 03:41pm от anon

Offline
Fri, 24 Mar 2017, 08:56pm #25
anon
Участник
Registered: March 2017
Последний раз: день назад
Сообщения: 40

Прописал в конфиг строки:

[socksproxy]
enabled = true
address = 127.0.0.1
port = 4447
outproxy = адрес_прокси.i2p
outproxyport = 80

но трафик через прокси не пошёл, а в логе появились строчки:

warn - SOCKS: upstream proxyадрес_прокси.i2p not resolved: Этот хост неизвестен
warn - SOCKS: v5 request failed: 3

Проверил непосредственно сам прокси - он доступен (позже выяснилось, что указанный прокси был http, а не socks, однако резолвится его адрес то всё равно должен был бы, а в логе писало, что хост неизвестен).

Вышел из положения путём прописывания в tunnels.conf отдельного клиентского туннеля до прокси. Чтобы не дергать постоянно настройки браузера, создал файл proxy.pac (прописав в нём правила применения прокси) и подсунул его Файрфоксу.

----------

Прописал в конфиг подписки (каждая подписка с новой строки):

[addressbook]
subscriptions =
адрес_подписки1.i2p,
адрес_подписки2.i2p,
адрес_подписки3.i2p,
...
адрес_подпискиN.i2p

Роутер даже не запустился. Получается, их в одну строчку писать нужно? Но это же очень не удобно.

----------

Отсутствует возможность прописать в конфиге прокси для reseed.urls
Роутер будет подключаться напрямую к reseed-узлам, что в некоторых случаях крайне нежелательно (и явно раскрывает факт использования i2p).

Last edited: Sat, 25 Mar 2017, 06:36pm от anon

Offline
Mon, 17 Jul 2017, 08:47pm #26
anon
Участник
Registered: March 2017
Последний раз: день назад
Сообщения: 40

Что произойдет, если выставлять опцию конфига precomputation.elgamal = true? В каких случаях она нужна?

Вопросы по udpserver:
Для чего нужен параметр "address =" ? Разве "host =" и "port =" не задают однозначно комбинацию, куда будут приходить udp-пакеты, выйдя из туннеля?

Почему для udpserver отсутствует опция "inport =" ?

Применимы ли для udpserver опции, аналогичные обычному server? Например эти:
accesslist = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
gzip = true
signaturetype = 1
enableuniquelocal = false

Можно ли на destination, созданный как udpserver, заходить через socks-прокси? Вроде протокол socks5 это позволяет. Тогда не нужно создавать отдельные udpclient, или я не прав?

Last edited: Mon, 17 Jul 2017, 08:52pm от anon

Offline
Wed, 19 Jul 2017, 08:28pm #27
orignal
Директор
Wlm
Registered: February 2016
Последний раз: Fri, 13 Sep 2024
Сообщения: 209

anon wrote:

Что произойдет, если выставлять опцию конфига precomputation.elgamal = true? В каких случаях она нужна?

С ней будет работать быстрее и жрать процессор существенно меньше.
Цена этом - дополнительные 16 мегов памяти на x64.
Так что если памяти хватает, то включать однозначно.

Offline
Wed, 02 Aug 2017, 11:34am #28
anon
Участник
Registered: March 2017
Последний раз: день назад
Сообщения: 40

xcps wrote:

Еще бы придумать че то с торрентами и почтой, но видимо не на этом этапе.

Почту отправляю/принимаю из Mozilla Thunderbird, через socks-прокси. Торренты пока не пробовал, но вроде под линукс есть i2p-transmission и qBittorrent.

-------------

orignal, можно Вас попросить сделать, чтобы у http-proxy и socks-proxy были отличающиеся Local Destination. Сейчас у этих прикси один и тот же Local Destination, хотя и изменяющийся при перезапуске роутера (если параметр конфига "keys =" не задан).

Еще очень кстати была бы команда веб-интерфейса принудительно на лету сменить Local Destination для выбранного прокси или тоннеля без перезапуска роутера.

Offline