minor corrections

This commit is contained in:
postscriptum 2026-02-11 20:39:19 +02:00
parent 625578d73a
commit 44dd7c0362

View file

@ -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": [