💾 Archived View for pub.phreedom.club › ~localhost › articles › 2023-04-05_i2p_federation_initiative… captured on 2023-07-22 at 16:27:34. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-04-26)

-=-=-=-=-=-=-

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

Замер плюсов и минусов

Плюсы:

Минусы:

Минусов довольно много, скорее всего инициатива будет мало полезна. Не рекомендуется к применению, проще всего реализовать в рамках 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

(gemini copy)

При необходимости, можно заставить парсить заголовок "X-I2P-DestB32", для корректного определения входящих запросов на федерацию

Что сейчас есть

В I2P я ещё не встречал инстансы, которые именно работают по i2p, в большинстве случаев это просто прокси веб-интерфейса из клирнета в i2p, вот некоторые из них:

Mastodon Vern

Mastodon Chudo

Bloat-FE (не инстанс)

Diaspora* (федерируется только с собой)

Это неплохо, но годится разве что, для того чтобы обойти блокировки, ну или анонимно полистать ленту (хотя, я не уверен, что с включенным JS это хорошая идея, но API должно работать). Так же такой вариант не позволяет общаться с инстансами, которые расположены внутри i2p (если когда-нибудь вообще будут)

[В процессе наполнения (пассивно)]

UPD: 21-04-2023 23:53 UTC+0