субота, 10 січня 2026 р.

 # Setting up a Fedi-server Snac for the Yggdrasil Network | DevZone


# Setting up a Fedi-server Snac for the Yggdrasil Network


15 min. reading


May 11


[

2

](https://devzone.org.ua/votes/show/post/40059)


· 52 ·


[

1

](#comments)


·


Shortly after my [thoughts on p2p](https://devzone.org.ua/post/hrabli-p2p), I decided to try setting up my own experimental instance of [Fediverse](https://uk.wikipedia.org/wiki/%D0%A4%D0%B5%D0%B4%D0%B8%D0%B2%D0%B5%D1%80%D1%81). Moreover, to do this using the means of the overlay network [Yggdrasil](https://devzone.org.ua/post/yggdrasil-mereza-z-detsentralizovanym-routynhom), since I do not plan to buy a dedicated IP or VPS for this toy; instead, I will host from a modem, a single-board computer, or even from a PC when I am online, with a dynamic address behind NAT.


I am writing this note primarily for myself, and also, it may be useful for those who, like me, are just starting their experiments in the field of administering their own Fediverse node and are interested in alternative networks, in the context of Linux.


## What is Snac


[Snac](https://codeberg.org/grunfink/snac2) is a minimalistic, JS-less, written in C alternative to the [Mastodon](https://joinmastodon.org/uk) server, which also does not require installing PostgreSQL; instead, it stores all profile data in JSON files. Recently, [IPv6 support was added](https://codeberg.org/grunfink/snac2/pulls/256) to this server, and therefore, it will work with the Yggdrasil range `0200::/7` as well.


Since Yggdrasil allows generating an unlimited number of static IPs for free (based on the private key [Ed25519](https://en.wikipedia.org/wiki/EdDSA#Ed25519)), there is no usual need for DNS here. Although, you can optionally attach [Alfis](https://devzone.org.ua/post/alfis-dns-reyestratsiia-domenu-v-blokcheyn), but personally, I do not use it (including due to the still unresolved issue [#364](https://github.com/Revertron/Alfis/issues/364)), so I also do not want to impose it within the ActivityPub protocol—it will simply be the format `username@IPv6`, which I do not need to update or mine later.


## Installation


1. 

I do not know the exact list of packages for Debian, since my system is not new and already has previously installed packages. As indicated in the [README](https://codeberg.org/grunfink/snac2#building-and-installation), I only installed libssl-dev and libcurl4-openssl-dev (for Fedora, it should be approximately the same with the suffix *-devel).

2. 

Next, create a separate system user to isolate from potential vulnerabilities:


```

useradd -m snac

```


1. Change the environment to bash in the /etc/passwd file for convenience.

2. Log in via su snac and go to this user's home directory: cd

3. Download the latest source code: git clone https://codeberg.org/grunfink/snac2.git

4. Go to the working directory cd snac2

5. Compile make && sudo make install and install with appropriate permissions.

6. Initialize the server storage: snac init /home/snac/storage

7. And add our first user to it snac adduser /home/snac/storage

8. Then continue from root by executing the command exit


## Configuration


I already have an installed and configured Yggdrasil node; if anyone is interested in the installation process, use the [previous publication](https://devzone.org.ua/post/yggdrasil-mereza-z-detsentralizovanym-routynhom) or the [official documentation](https://yggdrasil-network.github.io/documentation.html).


### Yggdrasil Subnet Address


You can skip this step and use the main address `2*`, if ports `80` or `8001` are not occupied. But note that within the ActivityPub protocol API, the Snac server will provide your host address to other nodes, and they will cache it as part of the ID, and since the host address is stored locally in files, not in a DB, it will be difficult to replace it later. Therefore, it is better to allocate a separate one, especially if it is production:


1. yggdrasilctl getself - find out your IP, including the IPv6 subnet output

2. ifconfig lo inet6 add IP - instead of IP, specify an arbitrary address for the received range, for example 3xx:xxxx:xxxx:xxxx::fed/64, where fed is a kind of wordplay within the "dictionary" of IPv6 (0-9A-F).

* note that ifconfig routing data is not saved after system reboot; for this, you need to add the corresponding entry (command from point 2), for example to /etc/netplan/01-ygglo.yaml, /etc/network/interfaces, or directly to systemd yggdrasil.service (section ExecStartPost=) - depending on the operating system.


### Nginx Proxy


My server already has the [Nginx](https://nginx.org/) web server installed, which occupies port `80`; I do not want to change anything yet, and I also do not want to have public Snac addresses with its standard port `8001`. Therefore, since I already have a dedicated subnet address, I will simply proxy the API to port `80` through a new virtual host, partially using the [original configuration example](https://codeberg.org/grunfink/snac2/src/branch/master/examples/nginx-alpine-ssl/default.conf):


```

# /etc/nginx/sites-available/default

server {

    listen [3xx:xxxx:xxxx:xxxx::fed]:80;

    server_name 3xx:xxxx:xxxx:xxxx::fed;


    location @proxy {

        proxy_http_version      1.1;

        proxy_set_header        Upgrade $http_upgrade;

        proxy_set_header        Connection "upgrade";

        proxy_redirect          off;

        proxy_connect_timeout   90;

        proxy_send_timeout      90;

        proxy_read_timeout      90;

        proxy_set_header        Host $host;

        proxy_set_header        X-Real-IP $remote_addr;

        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header        X-Forwarded-Proto $scheme;

        proxy_set_header        Proxy "";

        proxy_pass_header       Server;

        proxy_buffering on;

        tcp_nodelay on;

        proxy_pass http://[3xx:xxxx:xxxx:xxxx::fed]:8001;

        proxy_set_header Host $http_host;

    }


    location /.well-known/webfinger {

        try_files $uri @proxy;

    }


    location /.well-known/nodeinfo {

        try_files $uri @proxy;

    }


    location / {

        try_files $uri @proxy;

    }


    location /fedi/ {

        try_files $uri @proxy;

    }

}

```


* systemctl reload nginx - apply changes

* perhaps, you will want to create a separate configuration file for Nginx, instead of default - I have one for all hosts.

* optionally, using Nginx, you can close separate locations by IP


As you can see, in the example above, port `443` is not specified, and there are no SSL certificates. This is done intentionally, since Yggdrasil already has a secure channel, and I do not want to create an extra layer here.


Since Yggdrasil client connections also have a static address, I decided to restrict access to the administrative API (admin of all accounts + `oauth`) by IP. How effective this is and whether I forgot about other addresses - I do not know, but I will add my example of a regular expression for `location`:


```

location ~ /([^\/]+/admin|oauth) {

    allow ADMIN_IP;

    deny all;

    try_files $uri @proxy;

}

```


### Snac Configuration


Edit the file `/home/snac/storage/server.json` previously generated by the `snac init` command:


```

{

    "host": "[3xx:xxxx:xxxx:xxxx::fed]",

    "prefix": "",

    "address": "3xx:xxxx:xxxx:xxxx::fed",

    "port": 8001,

    "layout": 2.7,

    "dbglevel": 0,

    "queue_retry_minutes": 2,

    "queue_retry_max": 10,

    "queue_timeout": 6,

    "queue_timeout_2": 8,

    "cssurls": [

        ""

    ],

    "def_timeline_entries": 50,

    "max_timeline_entries": 50,

    "timeline_purge_days": 120,

    "local_purge_days": 0,

    "min_account_age": 0,

    "admin_email": "",

    "admin_account": "",

    "title": "",

    "short_description": "",

    "short_description_raw": false,

    "protocol": "http",

    "fastcgi": false

}

```


* note that in my example, the protocol is changed to http


### iptables Accesses


The configuration in the examples does not provide for access to the node from the Internet network, so I opened the port only for Yggdrasil, so that other nodes within this network could interact with each other on events like following (both nodes must be online for the transaction):


```

ufw allow from 0200::/7 to any port 80

```


* if you do not use Nginx, or the server has a standard or other port, just specify the actual one instead of 80, for example 8001

* if you limit traffic by the range 0200::/7, also pay attention to the note about private mode, which is described below


### systemd Configuration


There is a ready [official configuration example](https://codeberg.org/grunfink/snac2/src/branch/master/examples/snac.service), but I supplemented it a bit:


```

# /etc/systemd/system/snac.service

[Unit]

After=network-online.target

Wants=network-online.target


[Service]

Type=simple

User=snac

Group=snac

ExecStart=/usr/local/bin/snac httpd /home/snac/storage

StandardOutput=file:/home/snac/debug.log

StandardError=file:/home/snac/error.log


[Install]

WantedBy=multi-user.target

```


* systemctl daemon-reload - update systemd configuration

* systemctl enable snac - autostart on system startup

* systemctl start snac - launch

* systemctl status snac - check status


### Backup


Since the Snac database is stored in file format, it is quite simple to backup the profile by only one location.


I do this using `rsync` for different time intervals with the following `crontab -e` command:


```

@daily /usr/bin/rsync -av --delete /home/snac/storage /path/to/snac/daily

@weekly /usr/bin/rsync -av --delete /home/snac/storage /path/to/snac/weekly

@monthly /usr/bin/rsync -av --delete /home/snac/storage /path/to/snac/monthly

```


## Usage


After launching Snac with the command `snac httpd /home/snac/storage` or through the `systemd` service, you can try opening `http://[3xx:xxxx:xxxx:xxxx::fed]` in the browser.


### Testing Interaction (API)


To check interaction with another Yggdrasil node, repeat the same actions for it and do a test following or correspondence between users via Web UI or a connected external client application.


### Browser Tuning


If you are using Yggdrasil sites in Firefox for the first time, you may need to optimize the handling of "raw" IPv6 addresses in `about:config`:


* browser.fixup.fallback-to-https : false - disable redirect http -> https

* browser.fixup.alternate.enabled : false

четвер, 1 січня 2026 р.


Эволюция клиентов I2P: от анонимного IRC к полноценной теневой инфраструктуре

Рерайт
I2P — это не «ещё один Tor», а параллельная логика анонимных сетей. Если Tor исторически смотрит наружу, проксируя пользователя в обычный интернет, то I2P с самого начала строился как внутренняя экосистема: сайты, чаты, почта и файлообмен живут внутри сети и не нуждаются в выходе наружу. Технической основой стал garlic routing — усложнённая форма луковой маршрутизации, где в одном пакете передаётся сразу несколько сообщений, снижая утечки метаданных.

Развитие клиентов I2P началось в начале 2000-х с довольно наивной задачи — скрыть IRC-общение пользователей Freenet. Проект Invisible IRC Project быстро перерос первоначальные рамки, а переписывание на Java и появление однонаправленных туннелей превратили I2P в самостоятельный анонимизирующий слой. Уже к середине 2000-х сформировался «классический» стек: роутер, туннели, встроенные сервисы и API для внешних приложений.

Ключевая особенность эволюции I2P — отсутствие одного «правильного» клиента. Официальная Java-реализация постепенно обрастала функциональностью и криптографией, но параллельно возник запрос на лёгкость и контроль. Так появился i2pd на C++ — минималистичный роутер без встроенных сервисов, пригодный для слабых устройств и интеграции в сторонние проекты, включая криптовалютные экосистемы. Эксперименты с Go, Rust и C# показывают интерес сообщества к безопасности памяти и производительности, но также демонстрируют сложность повторной реализации протоколов без фрагментации сети.

С конца 2010-х развитие клиентов сместилось от «добавим ещё функций» к «выживем под наблюдением». NTCP2, X25519, EdDSA, защита от Sybil-атак и DPI — всё это ответ на взросление противника. I2P перестал быть игрушкой для энтузиастов и стал инфраструктурой, которая вынуждена думать как объект давления. К середине 2020-х сеть живёт за счёт донатов и грантов, развивается эволюционно и остаётся нишевым, но устойчивым инструментом для тех, кто понимает цену анонимности.

Интеграция хэштегов
#I2P #АнонимныеСети #GarlicRouting #Darknet
#ЦифроваяПриватность #Децентрализация
#FOSS #P2P #АнтиЦензура #Инфраструктура

Список литературы и источников
Официальный сайт проекта I2P — https://geti2p.net/
Документация I2P (architecture, proposals, specs) — https://geti2p.net/en/docs
I2P Proposal Tracker (NTCP2, crypto, routing) — https://geti2p.net/spec/proposals
GitLab I2P (официальная реализация) — https://gitlab.com/i2p-hackers/i2p.i2p
i2pd (C++ реализация) — https://i2pd.website/
I2PCon (материалы конференций) — https://i2pcon.i2p/
PurpleI2P / Kovri (исторические материалы) — https://github.com/monero-project/kovri

Текст полезен как отправная точка: I2P — живая система, и её клиенты эволюционируют не по дорожной карте, а по линии давления реального мира.

RetroShare и relay-серверы: как работает скрытая сеть, подключение через реле и безопасность F2F


RetroShare без прямого доступа: как работают relay-узлы и где на самом деле «добавляют серверы»

SEO-заголовок
RetroShare и relay-серверы: как работает скрытая сеть, подключение через реле и безопасность F2F

Подзаголовок
Почему в RetroShare нет «серверов», как узлы становятся релеями, и чем на самом деле платят за приватность в децентрализованной сети

Вступление
RetroShare любит путать новичков — не из вредности, а по философии. Здесь нет привычных серверов, нет «вбить IP и поехали», и уж точно нет центра, который кого-то пускает или не пускает. Зато есть relay-узлы, которые многие пытаются искать вручную, и chat-серверы, которые принимают за одно и то же. Этот текст — короткая карта местности: что в RetroShare называется relay, почему его нельзя «добавить», и где на самом деле происходит первое подключение к живой сети.



Целевая аудитория (ЦА)
Новички в RetroShare, которые упёрлись в NAT, файрвол или серое соединение и ищут «сервер».
Пользователи 0.6+, которым нужно понять разницу между relay-механикой и чат-серверами.
Люди, интересующиеся F2F-сетями, децентрализацией и приватными коммуникациями без мифов и шаманства.

Чем хорош RetroShare? 1) Все соединения всегда идут через несколько узлов, невозможно определить IP-адрес владельца файла. 2) Используются удобные sha1-хэши, можно раздавать имеющиеся файлы и папки, есть удобный поиск с фильтрами 3) Не требуются никакие серверы, полностью p2p. 4) При использовании "Анонимной личности" в чате невозможно узнать IP-адрес её владельца. 5) Нет цензуры, нет модераторов и администраторов. Что-либо забанить можно только "для себя лично". (Но блокируя у себя, блокируешь и пересылку через себя этого траффика, т.е. траффик вредителей постепенно будет угасать в сети.) 6) RS может соединяться через любые сетевые протоколы (yggdrasil, riv-mesh, tor, i2p, lokinet, clearnet и так далее), может пробивать NAT различными механизмами.




### Как добавить сервер-транслятор (relay server) в RetroShare


В RetroShare "серверы-трансляторы" (relay servers) — это функция, которая позволяет использовать другие узлы (пиры) в сети как мосты для соединения, если прямое подключение невозможно (например, из-за файрвола или NAT). Они не добавляются вручную по адресам, как обычные серверы, а активируются в настройках программы. RetroShare — это децентрализованная F2F-сеть (friend-to-friend), где подключение происходит через обмен сертификатами с друзьями, а релеи используются автоматически от подключенных пиров.


#### Шаги по активации серверов-трансляторов (relay servers):

1. Запустите RetroShare и войдите в свой профиль (node).

2. Перейдите в раздел **Настройки** (Settings) > **Сервер** (Server) или **Сеть** (Network).

3. В разделе релеев (Relays) поставьте галочку напротив **Использовать серверы-трансляторы** (Use Relay Servers). Это позволит вашему узлу пользоваться релеями от друзей.

4. Опционально: Если вы хотите, чтобы ваш узел сам действовал как релей (для помощи другим), поставьте галочку **Включить релейные соединения** (Enable Relay Connections). Укажите лимиты пропускной способности для друзей, друзей друзей или всех.

5. Сохраните изменения и перезапустите RetroShare, если потребуется.


После этого RetroShare будет автоматически использовать доступные релеи от ваших подключенных друзей. Нет необходимости добавлять конкретные адреса — сеть находит их сама через DHT (distributed hash table) и подключенных пиров.


Если вы имеете в виду "чат-серверы" (chat servers), которые часто называют трансляторами или broadcaster'ами для публичных чатов (где можно найти других пользователей и обменяться сертификатами), то их добавляют как "друзей" через сертификаты. Это точки входа для новичков, чтобы bootstrapping (начальное подключение) в сеть.


#### Шаги по добавлению чат-сервера (chat server) как транслятора:

1. Сгенерируйте свой сертификат в RetroShare (если еще не сделали): В настройках > **Профиль** (Profile) > скопируйте свой сертификат (RetroShare ID).

2. Зайдите на сайт чат-сервера (см. список ниже).

3. Вставьте свой сертификат в форму на сайте и нажмите "Submit" или "Отправить".

4. Сайт выдаст вам сертификат чат-сервера в ответ.

5. В RetroShare перейдите в **Добавить друга** (Add Friend) > Вставьте полученный сертификат > Поставьте галочку "Аутентифицировать друга (подписать PGP-ключ)" > Введите пароль от вашего сертификата > Подтвердите.

6. После добавления чат-сервер появится в списке друзей. Зайдите в раздел **Чаты** (Chats), присоединитесь к публичным комнатам (например, "New Users Reception") и обменивайтесь сертификатами с другими пользователями, чтобы расширить сеть.


Это позволит вам "транслировать" сообщения в публичные чаты и находить новых друзей.


### Где взять адреса серверов-трансляторов (relay или chat servers)

- Relay servers не имеют публичных адресов — они берутся из вашей сети друзей автоматически.

- Для chat servers (как точек входа) используйте эти сайты (они предоставляют сертификаты для подключения). Некоторые могут быть устаревшими, проверьте актуальность:

  - https://retroshare.ch/ — Основной чат-сервер RetroShare. Введите свой ID, получите сертификат сервера.

  - http://retrosharechatserver.no-ip.org/w2c/ru/ — Чат-сервер для русскоязычных (для старых версий 0.5.x).

  - https://retrochat.piratenpartei.at/w2c/ru/index.php — Чат-сервер Pirate Party (для русскоязычных, версии 0.5.x).

  - http://107.150.3.74/w2c/gxs/ — Для версий 0.6 и выше.

  - Telecomix chat server (упоминается в старых гайдах, но адрес не всегда доступен; ищите на форумах).


Дополнительные источники для поиска актуальных чат-серверов:

- Официальная документация: https://retroshare.readthedocs.io/en/latest/ (разделы First Steps и Settings).

- Форумы и блоги: https://retroshare.cc/ (сайт проекта), Reddit (r/retroshare), или русскоязычные ресурсы вроде adorabilis.wordpress.com (гайды по подключению).

- GitHub репозиторий: https://github.com/RetroShare/RetroShare — там можно найти обновления, но hardcoded bootstrap-адресов нет, так как сеть F2F.


Если ваша версия RetroShare старая (0.5.x), обновитесь до актуальной (0.6+), чтобы избежать проблем с совместимостью. Если у вас проблемы с подключением, попробуйте включить Tor или I2P в настройках для скрытых узлов.


### Введение в интеграцию Tor в RetroShare


RetroShare — это децентрализованная платформа для общения и обмена файлами на базе friend-to-friend (F2F) сети. Интеграция с Tor позволяет запускать RetroShare как скрытый узел (hidden node), где входящие соединения проходят через Tor Hidden Service, а исходящие — через Tor SOCKS-прокси. Это обеспечивает анонимность, скрывая ваш реальный IP-адрес даже от друзей в сети. Все трафик остается внутри сети Tor, без использования exit-нод. Функция доступна начиная с версии 0.6.0.


Это особенно полезно для пользователей, желающих избежать раскрытия IP в DHT (distributed hash table), предотвратить отслеживание социального графа и работать за файрволом без портового форвардинга.


### Предварительные требования

- Установленный Tor на вашей системе (для Linux — из репозиториев, например, `sudo apt install tor` на Debian/Ubuntu).

- Доступ к конфигурации Tor (обычно `/etc/tor/torrc`).

- Права на создание директорий для hidden service (обычно под пользователем `debian-tor` или аналогичным).

- Установленный RetroShare (версия 0.6+; рекомендуется последняя с официального сайта retroshare.cc).

- Для полной анонимности рекомендуется использовать ОС вроде Whonix или Tails, где весь трафик по умолчанию идет через Tor.


### Настройка Tor

1. **Установка и базовая конфигурация Tor**:

   - Установите Tor, если не установлен.

   - Убедитесь, что Tor создает SOCKS-прокси для исходящих соединений. По умолчанию это localhost:9050. В файле `/etc/tor/torrc` добавьте или проверьте:

     ```

     SOCKSPort 9050

     ```

     Если Tor используется только для hidden service, можно установить `SOCKSPort 0`.


2. **Настройка Hidden Service**:

   - Отредактируйте `/etc/tor/torrc` (с правами root) и добавьте раздел:

     ```

     HiddenServiceDir /var/lib/tor/hidden_rs/  # Директория для ключей (можно выбрать любую)

     HiddenServicePort 7812 127.0.0.1:7812     # Порт для Tor (7812 — пример; используйте свободный порт)

     HiddenServiceVersion 3                    # Рекомендуется v3 для лучшей безопасности

     ```

     - `HiddenServiceDir`: Путь к директории для приватного ключа hidden service.

     - `HiddenServicePort`: Порт, на котором Tor слушает (виртуальный), и перенаправляет на локальный порт RetroShare (127.0.0.1:порт).

   - Создайте директорию:

     ```

     sudo mkdir /var/lib/tor/hidden_rs/

     sudo chown debian-tor:debian-tor /var/lib/tor/hidden_rs/

     sudo chmod 0700 /var/lib/tor/hidden_rs/

     ```

   - Перезапустите Tor:

     ```

     sudo systemctl restart tor

     ```

   - Проверьте статус:

     ```

     sudo systemctl status tor

     ```

     Должен быть "Active: active (running)".

   - Получите onion-адрес:

     ```

     sudo cat /var/lib/tor/hidden_rs/hostname

     ```

     Пример: `xxxxxxxxxxxxxx.onion`.


3. **Резервное копирование**:

   - Сделайте бэкап приватного ключа hidden service: `/var/lib/tor/hidden_rs/hs_ed25519_secret_key`. Это позволит восстановить сервис на другой машине.


### Настройка RetroShare для работы с Tor

1. **Создание профиля**:

   - Запустите RetroShare.

   - При создании нового профиля выберите "Advanced Options" > "Create a hidden node".

   - Установите длину ключа 4096 бит для лучшей безопасности.

   - Введите псевдоним и пароль.


2. **Настройки сети (Settings > Network)**:

   - Включите индикатор скрытого узла (Hidden Node Indicator).

   - Отключите DHT (Network Mode: Disable DHT).

   - Рекомендуется включить Discovery (для поиска друзей); альтернативно — Darknet (отключить и Discovery, и DHT).

   - Установите Local Address: 127.0.0.1.

   - Скрыть внешний адрес (Hide external Address).

   - Отключите Known/Previous IPs и внешние проверки IP.


3. **Конфигурация Hidden Service (в разделе Hidden Service Configuration)**:

   - **Исходящие соединения (Outgoing Connections)**:

     - Tor SOCKS Proxy: 127.0.0.1:9050 (или порт вашего Tor-прокси).

     - Проверьте статус прокси в индикаторе (должен быть зеленым).

   - **Входящие соединения (Incoming Connections)**:

     - Local Address: 127.0.0.1 (заблокировано).

     - Local Port: Тот же порт, что в torrc (например, 7812).

     - Onion Address: Вставьте полученный .onion-адрес из Tor.

     - Onion Port: Тот же порт, что и Local Port (симметрично для удобства).


4. **Специальные сборки**:

   - На официальном сайте retroshare.cc доступны сборки с встроенным Tor, которые автоматически управляют Tor. Это упрощает настройку для новичков — RetroShare сам запускает Tor.


### Преимущества

- Полная анонимность: IP скрыт даже от друзей; трафик не выходит из Tor.

- Нет нужды в портовом форвардинге или управлении файрволом — Tor handles это.

- Защита от глобального пассивного слежения: скрывает социальный граф и метаданные.

- Возможность добавлять случайных пользователей (например, из форумов) без риска раскрытия IP.

- Работает за NAT/файрволом.


### Возможные проблемы и предупреждения

- **Ограничения hidden nodes**: Не могут подключаться к обычным IPv4-узлам (только к другим .onion). Нормальные узлы могут подключаться к hidden через Tor-прокси.

- RetroShare может показывать предупреждения вроде "NET WARNING No DHT; Behind NAT UNKNOWN NAT STATE MANUAL FORWARD" — это нормально при отключенном DHT.

- Сканеры onion-сервисов могут подключаться и видеть ваше имя пользователя в сертификате — используйте аутентифицированные onion-сервисы и доверяйте только проверенным друзьям.

- Прямое использование SOCKS-прокси (без Tor Browser) может быть рискованным (см. FAQ Tor).

- В Whonix или аналогичных ОС убедитесь, что non-Tor трафик блокируется.

- RetroShare требует постоянной работы для участия в сети, что нагружает CPU.

- Документация по Tor-интеграции может быть неполной; проверяйте обновления на retroshare.readthedocs.io.

- Используйте сильные ключи (4096 бит) и регулярно обновляйте ПО.

- Если проблемы с подключением, проверьте логи Tor и RetroShare.


Для дополнительной информации посетите официальную документацию или форумы RetroShare. Если нужны детали по I2P (аналог Tor), настройка похожа.


Заключение
RetroShare — это не сеть «подключился и исчез», а среда, где каждое удобство имеет цену, а каждая настройка — последствия. Relay-узлы решают проблему связности, но не заменяют анонимность. Чат-серверы помогают войти в сеть, но не являются нейтральными сущностями. Понимание этих различий избавляет от ложных ожиданий и превращает RetroShare из странного зверя в управляемый инструмент. Здесь выигрывает не самый доверчивый, а самый внимательный.

Полезные ссылки
Официальный сайт проекта: https://retroshare.cc/
Документация (First Steps, Network, Security): https://retroshare.readthedocs.io/en/latest/
Исходный код и обновления: https://github.com/RetroShare/RetroShare
Сообщество: Reddit — r/retroshare

Хэштеги
#RetroShare
#F2F
#Децентрализация
#Приватность
#ЦифроваяБезопасность
#P2P
#Анонимность
#СвободноеПО



  Noosphere, Connectivity, and Decentralized Networks: Why Open Development Became Critical Infrastructure for Thought #Noosphere #Decentral...