From 44dd7c036217fd07c14c97ea3769ce0632c75b36 Mon Sep 17 00:00:00 2001 From: postscriptum Date: Wed, 11 Feb 2026 20:39:19 +0200 Subject: [PATCH] minor corrections --- .../radicle-multi-network-seed-deployment.gmi | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/public/uk/radicle-multi-network-seed-deployment.gmi b/public/uk/radicle-multi-network-seed-deployment.gmi index 02f61a2..47fd444 100644 --- a/public/uk/radicle-multi-network-seed-deployment.gmi +++ b/public/uk/radicle-multi-network-seed-deployment.gmi @@ -2,7 +2,7 @@ > Цього разу, мені захотілось організувати персональний сервер, щоб не залежати від наявних публічних сідів. Нижче наведено приклад з налаштування персонального (Selective) вузла, орієнтованого на мережі Yggdrasil, Mycelium і Tor. -Radicle - це платформа децентралізованого хостингу Git, що працює на базі технологій BitTorrent/DHT. Роль сіда (англ. seed) в цьому випадку аналогічна класичним торентам і полягає в поширенні вузлом завантажених на нього даних. Різниця сіда в мережі Radicle, полягає лише в тому, що вузол тут окремо бере на себе й роль трекера. +Radicle - це платформа децентралізованого хостингу Git, що працює на базі технологій BitTorrent/DHT. Роль сіда (англ. seed) в цьому випадку аналогічна класичним торентам і полягає в поширенні вузлом завантажених на нього даних. Різниця полягає лише в тому, що сід-вузол в Radicle окремо бере на себе й роль трекера. Окремо про клієнтське використання цього програмного забезпечення вже було описано в матеріалі: => radicle-is-decentralized-p2p-git-dvcs.gmi Radicle: децентралізований P2P хостинг Git/DVCS @@ -28,7 +28,7 @@ $ rad self --config /home/radicle/.radicle/config.json ``` -Якщо запуск (в рамках гайду) раніше ще не здійснювався, і оскільки це серверний вузол, краще заздалегідь створити актуальну версію файлу через CLI. Для цього потрібно авторизуватись від створеного раніше користувача: +Якщо запуск (в рамках гайду) раніше ще не здійснювався, і оскільки це серверний вузол, краще заздалегідь створити актуальну версію файлу до запуску через CLI. Для цього потрібно авторизуватись від створеного раніше користувача: ``` bash su radicle @@ -37,7 +37,13 @@ $ rad self --config ✗ Hint: To setup your radicle profile, run `rad auth`. ``` -Як бачимо, файл конфігурації ще не існує і менеджер пропонує виконати команду `rad auth`. Після введення команди, відповідаємо на питання конфігуратора. Для серверного вузла - особисто я не вказую пароль, щоб потім не вказувати його в systemd змінною середовища (не бачу у цьому необхідності, адже це всього лише ресід мого віддалено-підписаного облікового запису) +Як бачимо, файл конфігурації ще не існує і менеджер пропонує виконати команду: + +``` bash +rad auth +``` + +Після введення команди, відповідаємо на питання конфігуратора. Для серверного вузла - особисто я не вказую пароль, щоб потім не вказувати його в systemd змінною середовища (не бачу у цьому необхідності, адже це всього лише ресід мого віддалено-підписаного облікового запису) Також, на цьому етапі важливо визначитись з політикою сідування (seedingPolicy) => https://radicle.xyz/guides/seeder#seeding-policies Radicle Seeder Guide: Seeding policies @@ -52,7 +58,7 @@ rad config get node.seedingPolicy ### Дозвільна політика (Permissive) -Лояльний режим роботи вузла. Він автоматично приймає будь-які поширення з інших вузлів, тим само найкраще підтримує мережу Radicle. Утім, такий спосіб вимагає чимало дискового простору і може тягнути за собою не бажані наслідки, зокрема юридичного характеру: адже будь-хто зможе розмістити на вашому сервері будь що. +Лояльний режим роботи вузла. Він автоматично приймає будь-які поширення з інших вузлів, тим само найкраще підтримує глобальну мережу Radicle. Утім, такий спосіб вимагає чимало дискового простору і може тягнути за собою не бажані наслідки, зокрема юридичного характеру: адже будь-хто зможе розмістити на вашому сервері будь що. Обираючи цей тип, політика встановлюється наступним чином: @@ -65,7 +71,7 @@ rad config get node.seedingPolicy } ``` -При виявленні не бажаного вмісту, при такому способі сідування, видалити окремий вузол можна командою: +При виявленні не бажаного вмісту, заблокувати окремий вузол можна командою: ``` bash rad block rad:z9DV738hJpCa6aQXqvQC4SjaZvsi @@ -73,9 +79,9 @@ rad block rad:z9DV738hJpCa6aQXqvQC4SjaZvsi ### Вибіркова політика (Selective) -Дана конфігурація вузла (що також є стандартною) вимагатиме від його адміністратора ведення "білого списку" клієнтських вузлів, від яких надходитимуть запити на сідування їх репозиторіїв. Прикладом такого вузла є `seed.radicle.xyz`, куди на відміну від `seed.radicle.xyz` та `iris.radicle.xyz` - ніхто не зможе надіслати свої дані. +Дана конфігурація вузла (що також є стандартною) вимагатиме від його адміністратора обліку "білого списку" клієнтських вузлів, від яких надходитимуть запити на сідування їх репозиторіїв. Прикладом такого вузла є `seed.radicle.xyz`, куди на відміну від `seed.radicle.xyz` та `iris.radicle.xyz` - ніхто не зможе надіслати свої дані. -Цей тип є оптимальним для організацій та приватних осіб, які бажають забезпечити хорошу конективність для своїх репозиторіїв (наприклад, не маючи достатньо ресурсів сервера для підтримки усієї мережі Radicle) і не бути залежними від інших учасників мережі. +Цей тип є оптимальним для організацій та приватних осіб, які бажають забезпечити хорошу конективність для своїх репозиторіїв (наприклад, не маючи достатньо ресурсів сервера для підтримки усієї мережі в форматі Permissive) та/або не бути залежними від онлайну інших учасників мережі. Кейс `seedingPolicy` у цьому випадку, матиме наступний вигляд: @@ -93,7 +99,7 @@ rad block rad:z9DV738hJpCa6aQXqvQC4SjaZvsi rad seed rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 ``` -І навпаки, видалити зі списку роздач: +І навпаки, видалити зі списку зберігання і роздач: ``` bash rad unseed rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 @@ -111,7 +117,7 @@ rad unseed rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 "[505:6847:c778:61a1:5c6d:e802:d291:8191]:8776" ], "externalAddresses": [ - "[202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:8776", "myc.ua.srv:8776", + "[202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:8776", "ygg.ua.srv:8776", "[505:6847:c778:61a1:5c6d:e802:d291:8191]:8776", "myc.ua.srv:8776" ], "seedingPolicy": { @@ -133,7 +139,7 @@ rad unseed rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 * роутер Tor у мене працює також через Yggdrasil, тому я не дуже залежу від сідів саме цієї мережі, але додав на випадок, якщо сіди Tor будуть не доступні (і навпаки) => https://yggdrasil-network.github.io/services.html#radicle-nodes Перевірити актуальні сіди Yggdrasil -Таким чином, сід Yggdrasil буде підключено через наявний мережний інтерфейс "напряму". Для підтримки сідів в мережі Tor - потрібно окремо вказати налаштування відповідного проксі: +Таким чином, сід Yggdrasil буде підключено через наявний IPv6 інтерфейс "напряму". Для підтримки вказаних вище сідів мережі Tor - потрібно окремо вказати налаштування відповідного проксі: ``` "node": { @@ -144,9 +150,9 @@ rad unseed rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 } ``` * стандартний порт `9050` замінено на `9150` (сучасна імплементація Arti на Rust) -* також, на моєму сервері використовується IPv6, для IPv4 це буде хост `127.0.0.1` (за умови локального розташування роутера) +* на моєму сервері для роутера Tor використовується локалхост IPv6, для IPv4 - це буде хост `127.0.0.1` (за умови локального розташування роутера) -Про налаштування підключення Arti через Yggdrasil, написано тут: +Про мій сетап Arti, детальніше написано тут: => arti-onion-router-with-tor-connection-over-yggdrasil.gmi Встановлення Onion-роутера Arti з підключенням до мережі Tor через Yggdrasil Щодо налаштування вхідного трафіку (hidden service) від пірів з мережі Tor, можна почитати окремо: @@ -175,7 +181,7 @@ ifconfig ufw allow from 0200::/7 to 202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148 port 8776 comment 'radicle' ufw allow from 0400::/7 to 505:6847:c778:61a1:5c6d:e802:d291:8191 port 8776 comment 'radicle' ``` -* мій сервер працюватиме тільки на дві мережі - Mycelium та Yggdrasil, у вас це може бути й Інтернет IP, або ж дозвільне правило, без точної прив'язки до сімейства мережі: `ufw allow 8776` +* мій сервер працюватиме тільки на дві мережі: Mycelium та Yggdrasil; у вас це може бути й Інтернет IP, або ж дозвільне правило типу `ufw allow 8776` * у прикладі я свідомо не вказую фільтрацію по TCP, адже технічно торенти можуть працювати також в контексті UDP (не цікавився) ## Запуск вузла @@ -276,7 +282,7 @@ DID did:key:z6Mkvky2mnSYCTUMKRdAUoZXBXLLKtnWEkWeYQcGjjnmobAU ``` * де `z6Mkvky2mnSYCTUMKRdAUoZXBXLLKtnWEkWeYQcGjjnmobAU` - вказується без префіксу `did:key:` -Отже, на клієнтському вузлі я додаю два рядки з реквізитами нашого сід-вузла, що згідно його конфігурації слухає з'єднання на `[::]:8776`: +Отже, на клієнтському вузлі я додаю два рядки з реквізитами нашого сід-вузла (який згідно конфігурації слухає з'єднання на `[::]:8776`) ``` config.json "preferredSeeds": [