frssoft-site/RU/articles/2023-04-05_i2p_federation_i...
2023-08-09 22:37:22 +03:00

88 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Инициатива по федерации через i2p-only (deprecated; недоделано)
```
---------------------------------------------------------------+
|
x000O. |
x0000000O. |
'000000000o |
':;O00000000' |
,oooood,cO0000d;0x +------------------
'cooooo, .:co;dxk'oKKKO I2P
.,,,,,' clooool. .:::. :oo; l0KK0.
',,,,,,,;'lo. .:::. .ool lKKKO. +------------------
,,,,,,,,,.:xxxo:. .:::. loo. cKKK0. |
',,,,,,,,.xkkkkkkkl,:::.oxxo;. .. ;KKKl'ddo, |
',,,,..:l. ,:::.dkkkkkkkkkxkkkkkko;,oOkkkOOOd |
,,,..::::. '::: ...;ldxkkkkx;kkOOOOOOkc |
.;;' .::::..::; :od; c;kkOOOOOOk, |
.;;, ;;;;.. 'ooc .cooooo,dOOOOOk. |
,;;. ;::;. .ooo'ooool. .odd, |
';;. ,:;.;:::. .l'coo,:. .loo, |
.;;, ;::, ;::;..ooooo:'ooc .ooo' |
;;;. ,::, .:cloool. .loo. .ooo' |
','.,;:' .llooooc.'c, coo' .ooo. |
.,,,,,;.;loooo; ,:::, 'ooc 'ooo. |
.''''''''':; ,:::;.olc;ooo. |
''''''''''.:;;;;'.. ,:.;lllll, |
.'''''''' ..,,,,,,,,,,,;;,.lllllllll |
.''. ..'',lllllllll. |
clllllll: |
:lll; |
---------------------------------------------------------------+
```
## Замер плюсов и минусов
Плюсы:
* полная анонимность федерации (без разницы где оно будет находится)
* не нужен https (шифрование на транспортном уровне уже есть)
* независимость от DNS (по возможности без красивых доменов, чтобы не наводить сложности server side, base32 домены)
* каждый сможет поднять инстанс даже на своей домашней машине не имея статического IP и домена в клирнете
* более гиковское сообщество без возможности резкого наплыва
* участие в сети I2P и соответственно её ускорение и повышение устойчивости со связностью
* пока Fediblock не существует в I2P глобально
Минусы:
* мало кто станет использовать хэндлы вида @user@aaaaaaaaaaaкакмногабукавбубубуlksamdlfmfkjiewjflksxmd.b32.i2p (может стать причиной спама длинными упоминаниями)
* федерироваться нужно только внутри i2p, чтобы не наводить сложности смешивая с клирнетом
* федерация не будет работать пока i2p-роутер не пробудет в сети достаточно долго, чтобы собрать рисунок сети больших масштабов
* Довольно большое потребление оперативной памяти (в будущем), что не подойдёт для хостинга на одноплатнике
* скорее всего это не будет работать с многим уже существующим ПО Федивёрса, могут вылезти странные баги
* большие медиа аттачи не рекомендуются (опционально, кто-то ведь даже видео гоняет по i2p)
* неизвестные последствия при росте такой федерации
* очень шумная и трафико-нагрузочная сеть, при отдаче полной скорости канала в i2p
* I2P сообщество уже и так общается через ирку например и форумы, вряд ли им понравится AP реализация over i2p добавляющая только головную боль. Чем проще - тем лучше
* богатые возможности для троллинга и спама - нет сдерживающих факторов как оформление домена, покупка сервера и прочие этапы добавляющие финансовые сложности
Минусов довольно много, скорее всего инициатива будет мало полезна. Не рекомендуется к применению, проще всего реализовать в рамках yggdrasil туннеля (практически как в обычном клирнете).
## Техническая составляющая (относительно простыми словами)
### base32 или ааааааааапроститео_будут_такие_адреса_вместоормальныхоменовsaldm.b32.i2p или DNS как заноза в одном месте
Так как будем опираться на base32 (ну или если точнее хэши от них) домены, то наличие конкретного адреса в адресной книжке не обязательно, однако можно в принципе сделать какой-то "центр" регистрации доменов для Феди I2P по аналогии с reg.i2p и им подобным, но это уже выходит какой-то DNS. Это если ещё не учесть конфликты, если кто-то решит вести несколько таких "центров" выдачи, будем иметь разные книги на разных хостах - всё поломается скорее всего.
В base32 доменах есть преимущество, если сервер A реквестирует какой-то домен такого вида, то он будет его тут же запрашивать у i2pd роутера, а тот будет опрашивать других, так скажем естественный процесс без вмешательств обёрток красивых DNS и адресных книг (аналог hosts), представьте федерацию на уровне IP адресов, тут примерно так же, но здесь будут использоваться эти псевдо-домены. Да, конечно некрасиво и не удобно, иметь хэндлы с овер большим доменом, но зато меньше думать о проблеме вида "вот у меня этот домен резолвится и всё работает", а у другого "у меня ничего не работает, this address not found in address book".
У федеративных сетей и так есть проблемы и в обычном Интернете без оверлеев, что уж говорить, о попытке завернуть их в оверлей.
В прочем, с base32 доменами могут возникнуть проблемы, когда I2P-роутер только-только появился в сети, он ещё "не разжился" известными роутерами другими, а значит его нужно держать в онлайне какое-то время, чтобы успешно подключаться к другим инстансам. Ну, день например вы просто включаете его и бродите по разным сайтами (чтобы увеличить эффективность), ну и должен быть стабильный коннект, а со статическим IP без NAT (например на VPS) вы сможете расширить рисунок сети I2P-роутера буквально за часов 10 при скорости в 256 KBps с включенным транзитом. А потом можете уже поднимать инстанс. Как альтернативу ожиданию, можно ещё обмениваться папками NetDb друг с другом, но это не очень безопасно, лучше дать роутеру найти свежие самому.
### Привязки ключей от инстанса к псевдо-домену
Тут не должно возникнуть сложностей, по крайней мере, до тех пор, пока не потеряете ключ от туннеля, иначе вам придётся пересоздать и туннель и инстанс, начав с нового листа (аналогично ситуации с обычным Интернетом, когда нужно переехать с домена на домен)
### Совместимость ПО
При желании можно прокинуть любой федеративный движок в i2p, но как минимум движок не должен требовать https шифрования, а значит придётся менять код. Клиенты должны поддерживать http прокси, иначе - строить клиентские туннели до инстанса. В Pleroma есть поддержка I2P (не нативно, а через fedproxy) и даже есть инструкция по поднятию (не без нюансов конечно)
[I2P Federation and Accessability](https://docs-develop.pleroma.social/backend/configuration/i2p/)
[Копия](../../any/copies/pleroma_I2P_Federation_and_Accessability.gmi)
При необходимости, можно заставить парсить заголовок "X-I2P-DestB32", для корректного определения входящих запросов на федерацию
### Что сейчас есть
В I2P я ещё не встречал инстансы, которые именно работают по i2p, в большинстве случаев это просто прокси веб-интерфейса из клирнета в i2p, вот некоторые из них:
http://fedi.vern.i2p Mastodon Vern
http://mastodon.chudo.i2p/ Mastodon Chudo
http://bloat.clubcyberia.i2p Bloat-FE (не инстанс)
http://diasporg.i2p/ Diaspora* (федерируется только с собой)
Это неплохо, но годится разве что, для того чтобы обойти блокировки, ну или анонимно полистать ленту (хотя, я не уверен, что с включенным JS это хорошая идея, но API должно работать). Так же такой вариант не позволяет общаться с инстансами, которые расположены внутри i2p (если когда-нибудь вообще будут)
UPD: 21-04-2023 23:53 UTC+0