# zeronet-conservancy

[in English](README.md) | [em português](README-ptbr.md) | [简体中文](README-zh-cn.md)

zeronet-conservancy — это форк/продолжение проекта [ZeroNet](https://github.com/HelloZeroNet/ZeroNet)
(покинутого его создателем), предназначенный для поддержки существующей сети p2p и развития
идей ценности децентрализации и свободы, постепенно развивающийся в более совершенную сеть

## Зачем нужен этот форк?

Во время кризиса onion-v3 появилась необходимость в форке, который работал бы с onion-v3 и не зависел от доверия к конкретным личностям.
Для выполнения этой задачи форк начался с внесения минимальных изменений в
[ZeroNet/py3](https://github.com/HelloZeroNet/ZeroNet/tree/py3), которые легко проверяются. В то время как остается возможность использования ранних версий форка для работы с onion-v3, цель данного форка изменилась и мы стали стремиться решать больше проблем и повышать удобность и безопасность для пользователей до тех пор, пока новая, полностью прозрачная и проверенная сеть не будет готова, и необходимость в этом проекте не отпадет.


## Зачем нужен 0net?

* Мы верим в открытую, свободную, и не поддающуюся цензуре сеть и коммуникацию.
* Нет единой точки отказа: Сайт онлайн пока по крайней мере 1 пир обслуживает его.
* Никаких затрат на хостинг: Сайты обслуживаются посетителями.
* Невозможно отключить: Он нигде, потому что он везде.
* Быстр и работает оффлайн: Вы можете получить доступ к сайту, даже если Интернет недоступен.




## Особенности
 * Обновляемые в реальном времени сайты
 * Клонирование вебсайтов в один клик
 * Авторизация без паролей, с использованием пары публичный/приватный ключ
 * Встроенный SQL-сервер с синхронизацией данных P2P: позволяет упростить разработку сайта
 * Анонимность: поддержка сети Tor с помощью скрытых служб .onion (включая onion-v3)
 * TLS зашифрованные связи (в клирнете)
 * Автоматическое открытие uPnP порта (опционально)
 * Плагин для поддержки многопользовательской (openproxy)
 * Работает с любыми браузерами и операционными системами


## Как это работает?

* После запуска `zeronet.py` вы сможете посетить zeronet сайты используя адрес
  `http://127.0.0.1:43110/{zeronet_address}`
(например. `http://127.0.0.1:43110/1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D`).
* Когда вы посещаете новый сайт zeronet, он пытается найти пиров с помощью BitTorrent
  чтобы загрузить файлы сайтов (html, css, js ...) из них.
* Каждый посещенный зайт также обслуживается вами. (Т.е хранится у вас на компьютере)
* Каждый сайт содержит файл `content.json`, который содержит все остальные файлы в хэше sha512
  и подпись, созданную с использованием частного ключа сайта.
* Если владелец сайта (у которого есть закрытый ключ для адреса сайта) изменяет сайт, то он/она
  подписывает новый `content.json` и публикует его для пиров. После этого пиры проверяют целостность `content.json`
  (используя подпись), они загружают измененные файлы и публикуют новый контент для других пиров.


Ссылки c информацией о ZeroNet:

####  [Слайд-шоу о криптографии ZeroNet, обновлениях сайтов, многопользовательских сайтах »](https://docs.google.com/presentation/d/1_2qK1IuOKJ51pgBvllZ9Yu7Au2l551t3XBgyTSvilew/pub?start=false&loop=false&delayms=3000)
####  [Часто задаваемые вопросы »](https://zeronet.io/docs/faq/)
####  [Документация разработчика ZeroNet »](https://zeronet.io/docs/site_development/getting_started/)
#### [Скриншоты в ZeroNet документации »](https://zeronet.io/docs/using_zeronet/sample_sites/)

## Как присоединиться

### Установить из репозитория вашего дистрибутива

- NixOS: https://search.nixos.org/packages?channel=22.05&show=zeronet-conservancy&type=packages&query=zeronet-conservancy

### Установить из исходного кода (рекомендовано)

#### System dependencies

##### Generic unix-like (including mac os x)

Установите autoconf и другие базовые инструменты разработки, python3 и pip.

##### Apt-based (debian, ubuntu, etc)
 - `sudo apt update`
 - `sudo apt install pkg-config python3-pip python3-venv`

##### Android/Termux
 - Установите [Termux](https://termux.com/) (в Termux вы можете устанавливать пакеты через команду `pkg install <package-names>`)
 - `pkg update`
 - `pkg install python automake git binutils` (TODO: проверьте новую установку на наличие дополнительных зависимостей для установки)
 - (optional) `pkg install tor`
 - (optional) запустить тор через команду `tor --ControlPort 9051 --CookieAuthentication 1` (вы можете открыть новый сеанс свайпом вправо)

#### Создание зависимостей Python и запуск
 - клонируйте репозиторий (NOTE: на Android/Termux вы должны клонировать его в «домашнюю» папку Termux, потому что виртуальная среда не может находиться в `storage/`)
 - `python3 -m venv venv` (создайте виртуальную среду python, последнее `venv` это просто имя/название, если вы используете другое, вы должны заменить его в более поздних командах.)
 - `source venv/bin/activate` (активируйте среду)
 - `python3 -m pip install -r requirements.txt` (установите зависимости)
 - `python3 zeronet.py` (**запустите zeronet-conservancy!**)
 -  откройте основную страницу в браузере, перейдя по: http://127.0.0.1:43110/
 -  для повторного запуска с нового терминала вам нужно перейти в деректорию репозитория и ввести :
 - `source venv/bin/activate`
 - `python3 zeronet.py`

#### Создание образа Docker
- создание образа: `docker build -t 0net:conservancy . -f Dockerfile`
- или создрание образа с встроенным tor: `docker build -t 0net:conservancy . -f Dockerfile.integrated_tor`
- и его запуск: `docker run --rm -it -v </path/to/0n/data/directory>:/app/data -p 43110:43110 -p 26552:26552 0net:conservancy`
- /path/to/0n/data/directory - директория, куда будут сохраняться все данные в том числе секретные ключи. Если вы запускаете в боевом режиме, не потеряйте эту папку!
- или вы можете воспользоваться docker-compose: `docker compose up -d 0net` запускает два контейнера раздельно, для 0net и tor сервисов.
- или: `docker compose up -d 0net-tor` запускает один контейнер с tor и 0net.

#### альтернативный скрипт
 - после установки общих зависимостей и клонирования репозитория (как указано выше) запустите `start-venv.sh` который создаст для вас виртуальную среду и установит требования Python
 - больше удобных скриптов будует добавлено в ближайшее время

## Текущие ограничения 

* Файловые транзакции не сжаты
* Нет приватных сайтов
* Отсутствует поддержка DHT
* Централизованные элементы, такие как Zeroid (мы работаем над этим!)
* Нет надежной защиты от спама (в процессе разработки)
* Не работает напрямую из браузера (один из главных приоритетов в ближайшем будущем)
* Нет прозрачности данных


## Как создать сайт ZeroNet?

 * Нажмите на **⋮** > **"Create new, empty site"** пункт меню на [admin page](http://127.0.0.1:43110/126NXcevn1AUehWFZLTBw7FrX1crEizQdr).
 * Вы будете перенаправлены **redirected** на совершенно новый сайт, который можете изменить только вы!
 * Вы можете найти и изменить содержимое своего сайта в каталоге **data/[yoursiteaddress]**
 * После внесения изменений откройте свой сайт, перетащите верхнюю правую кнопку «0» влево, затем нажмите кнопки **sign** и **publish** , находящиеся внизу.

Следующие шаги: [ZeroNet Developer Documentation](https://zeronet.io/docs/site_development/getting_started/)

## Поддержите проект

### Вы можете стать одним из сопровождающих 

Нам нужно больше сопровождающих! Станьте им сегодня! Вам не нужно знать, как кодировать,
есть много другой работы.

### Исправленные баги & новые функции

Мы решили пойти дальше и создать идеальную сеть p2p, поэтому нам нужна дополнительная помощь в воплощении этой идеи.

### Создайте свой сайт / переносите свой контент

Мы знаем, что документации не хватает, но мы делаем все возможное, чтобы поддержать любого
кто хочет переехать. Не стесняйтесь спрашивать.

### Используйте его и делитесь информацией о его существовании

Обязательно расскажите людям, почему вы используете 0net и этот форк в частности! Люди
должны знать об альтернативах.


### Финансовая поддержка сопровождающих

В настоящее время ведущим разработчиком/сопровождающим этого форка является @caryoscelus. Вы можете
посмотреть способы пожертвования на https://caryoscelus.github.io/donate/ (или проверьте
боковую панель, если вы читаете это на github, чтобы узнать больше). По мере роста нашей команды мы
также создаст командные аккаунты на дружественных краудфандинговых платформах.

Если вы хотите, чтобы ваше пожертвование было признано пожертвованием для этого
проекта, для этого также есть специальный биткойн-адрес:
1Kjuw3reZvxRVNs27Gen7jPJYCn6LY7Fg6

Если вы хотите сделать пожертвование другим способом, не стесняйтесь обращаться к сопровождающему или
создать запрос
