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

12 KiB
Raw Blame History

Инициатива по федерации через 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 Копия

При необходимости, можно заставить парсить заголовок "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