minor corrections

This commit is contained in:
postscriptum 2026-02-11 21:36:10 +02:00
parent 44dd7c0362
commit 22b6189101

View file

@ -1,8 +1,8 @@
# Розгортання сіда Radicle в мульти-мережному середовищі
> Цього разу, мені захотілось організувати персональний сервер, щоб не залежати від наявних публічних сідів. Нижче наведено приклад з налаштування персонального (Selective) вузла, орієнтованого на мережі Yggdrasil, Mycelium і Tor.
> Давно планував організувати автономний сервер Radicle, щоб не залежати від наявних публічних сідів. Нижче наведено приклад мого налаштування персонального (Selective) сід-вузла, орієнтованого в першу чергу на мережі Yggdrasil, Mycelium і Tor.
Radicle - це платформа децентралізованого хостингу Git, що працює на базі технологій BitTorrent/DHT. Роль сіда (англ. seed) в цьому випадку аналогічна класичним торентам і полягає в поширенні вузлом завантажених на нього даних. Різниця полягає лише в тому, що сід-вузол в Radicle окремо бере на себе й роль трекера.
Radicle - це платформа децентралізованого хостингу Git, що працює на базі технологій BitTorrent/DHT. У цьому випадку, роль сіда (англ. *seed*) аналогічна класичним торентам і полягає в поширенні вузлом завантажених на нього даних.
Окремо про клієнтське використання цього програмного забезпечення вже було описано в матеріалі:
=> 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
@ -48,7 +48,7 @@ rad auth
Також, на цьому етапі важливо визначитись з політикою сідування (seedingPolicy)
=> https://radicle.xyz/guides/seeder#seeding-policies Radicle Seeder Guide: Seeding policies
Поточну політику вузла (якщо файл конфігурації було створено раніше) можна дізнатися командою:
Поточну політику (якщо файл конфігурації було створено раніше) можна дізнатися командою:
``` bash
rad config get node.seedingPolicy
@ -56,7 +56,7 @@ rad config get node.seedingPolicy
Нижче розглянемо дві базові.
### Дозвільна політика (Permissive)
### Дозвільна політика (Permissive policy)
Лояльний режим роботи вузла. Він автоматично приймає будь-які поширення з інших вузлів, тим само найкраще підтримує глобальну мережу Radicle. Утім, такий спосіб вимагає чимало дискового простору і може тягнути за собою не бажані наслідки, зокрема юридичного характеру: адже будь-хто зможе розмістити на вашому сервері будь що.
@ -77,7 +77,7 @@ rad config get node.seedingPolicy
rad block rad:z9DV738hJpCa6aQXqvQC4SjaZvsi
```
### Вибіркова політика (Selective)
### Вибіркова політика (Selective policy)
Дана конфігурація вузла (що також є стандартною) вимагатиме від його адміністратора обліку "білого списку" клієнтських вузлів, від яких надходитимуть запити на сідування їх репозиторіїв. Прикладом такого вузла є `seed.radicle.xyz`, куди на відміну від `seed.radicle.xyz` та `iris.radicle.xyz` - ніхто не зможе надіслати свої дані.
@ -158,7 +158,7 @@ rad unseed rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Щодо налаштування вхідного трафіку (hidden service) від пірів з мережі Tor, можна почитати окремо:
=> https://radicle.xyz/guides/user#setting-up-a-tor-onion-service-for-radicle Radicle User Guide: Setting up a Tor Onion Service for Radicle
В мене ще крутиться роутер I2P, але цю тему я поки не копав, бо вузлів вище - цілком вистачає для синхронізації з глобальною мережею Radicle. Але додам деякі посилання по темі на майбутнє (хоча думаю що проксі налаштовується по аналогії з ключем `onion` тільки це буде `i2p`):
В мене ще крутиться роутер I2P, але цю тему я поки не копав, бо вузлів вище - цілком вистачає для синхронізації з глобальною мережею. Але додам деякі посилання по темі на майбутнє, хоча думаю що проксі налаштовується по аналогії з ключем `onion` тільки це буде `i2p`:
=> https://radicle.zulipchat.com/#narrow/channel/369274-General/topic/i2p.20and.20other.20overlay.20networks.20support Тема на Zulip Chat
=> https://app.radicle.xyz/nodes/seed.radicle.xyz/rad%3Az371PVmDHdjJucejRoRYJcDEvD5pp/patches/18e6ec1dd5e87e39223ceade8e016107937ab1c3 Add docs for I2P use in addition to Tor
@ -169,7 +169,7 @@ rad unseed rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Якщо у вас використовується виключно Tor або I2P - відкривати порти не потрібно!
Дивимось потрібні нам IP інтерфейсів командою:
В інших випадках (на базі оверлеїв класичного стеку) дивимось потрібні нам IP інтерфейсів:
``` bash
ifconfig
@ -182,7 +182,7 @@ ufw allow from 0200::/7 to 202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148 port 8776 comm
ufw allow from 0400::/7 to 505:6847:c778:61a1:5c6d:e802:d291:8191 port 8776 comment 'radicle'
```
* мій сервер працюватиме тільки на дві мережі: Mycelium та Yggdrasil; у вас це може бути й Інтернет IP, або ж дозвільне правило типу `ufw allow 8776`
* у прикладі я свідомо не вказую фільтрацію по TCP, адже технічно торенти можуть працювати також в контексті UDP (не цікавився)
* у прикладі я свідомо не вказую фільтрацію по TCP, адже технічно торенти можуть працювати також в контексті UDP (реалізацією сокетів Radicle ще не цікавився)
## Запуск вузла
@ -280,9 +280,9 @@ Alias YGGverse
DID did:key:z6Mkvky2mnSYCTUMKRdAUoZXBXLLKtnWEkWeYQcGjjnmobAU
...
```
* де `z6Mkvky2mnSYCTUMKRdAUoZXBXLLKtnWEkWeYQcGjjnmobAU` - вказується без префіксу `did:key:`
* де `z6Mkvky2mnSYCTUMKRdAUoZXBXLLKtnWEkWeYQcGjjnmobAU` - без префіксу `did:key:`
Отже, на клієнтському вузлі я додаю два рядки з реквізитами нашого сід-вузла (який згідно конфігурації слухає з'єднання на `[::]:8776`)
Отже, на клієнтському вузлі додаю два нові рядки з реквізитами нашого сід-вузла (який згідно конфігурації слухає з'єднання на `[::]:8776`)
``` config.json
"preferredSeeds": [