Максим Солохин (palaman) wrote,
Максим Солохин
palaman

Categories:

Для памяти: Zeronet

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

Пост-Интернет W++

(Материал заимствован с Лингвофорума)

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

ZeroNet работает как отдельное приложение на вашем компьютере, а для просмотра сайтов сети используется обычный браузер, в котором нужно открыть локальный адрес http://127.0.0.1:43110/

* * *

Когда вы просматриваете сайт, ZeroNet скачивает его на ваш компьютер целиком. (За исключением "опциональных" файлов, которые можно докачивать по мере необходимости — таких как аудио, видео, изображения, архивы и т.п.)

Таким образом, вы не просто просматриваете сайты, но размещаете их у себя на компьютере. Эта та же самая концепция, что знакома всем еще в торрентах: если вас интересует какой-то торрент, вы скачиваете его и затем раздаёте другим, кому потребуется этот торрент в будущем. За счёт этого выполняется многократное резервирование данных, и в сети нет того единого сервера, к которому можно прийти, нажать кнопку питания, и вся накопленная информация пропадёт. Данные есть всегда, у всех, и в то же время нигде конкретно.

В отличие от торрентов, которые статичны, сайты в ZeroNet могут обновляться. Когда автор сайта выкладывает на сайт новую информацию, обновление распространяется по сети от узла к узлу подобно волнам на воде, пока все подписчики сайта не получат новую информацию. Если ваш компьютер был оффлайн, при выходе в интернет ZeroNet опросит другие узлы и закачает обновленные данные.

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

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

[Подробности]* * *

В отличие от некоторых других попыток реализовать одноранговый веб, таких как Freenet, данные хранятся не в зашифрованном виде, а в открытом. Во Freenet каждый участник сети хранит «фарш» из кусочков зашифрованной информации, о которой сам не имеет представления. Читаемый вид информация приобретает только в ходе сборки целых файлов по криптографическому ключу. Из-за этого вы можете хранить и раздавать другим нелегальную или этически неприемлимую для вас информацию даже не подозревая об этом.

В ZeroNet данные хранятся открыто и полностью подконтрольно пользователю. Вы можете хранить и раздавать только то, что считаете интересным, полезным и т.п.

Можно сказать, что ZeroNet — это когда персональный архив файлов и заметок выходит в сеть и становится социальным.

* * *

В ZeroNet используются те же алгоритмы криптографии, что и в Bitcoin. Большинство адресов сайтов, кторые вы увидите в сети, выглядят так же, как адреса кошельков Bitcoin. Это не означает, что ZeroNet как-то связана с Bitcoin или использует блокчейн. Это просто потому, что под капотом задействованы те же алгоритмы для цифровых подписей и шифрования, что выбрали разработчики Bitcoin.

ZeroNet может работать как через обычную сеть Internet, так и через Tor. В первом случае ZeroNet также использует существующую инфраструктуру торрент-трекеров, чтобы повысить связность сети. И снова: это не означает, что ZeroNet может скачивать торрент-файлы. У ней собственные протокол обмен файлами. Она просто обменивается списками пиров через публичные трекеры.

Помните, что при работе без Tor ваш IP-адрес и список сайтов, которые вы размещаете, публично известны. По умолчанию сеть ZeroNet не анонимная и не скрывает вашего местоположения. Однако вы можете использовать её как анонимную, если всегда будете подключаться через Tor и не будете прямо или косвенно сообщать о себе никакой персональной информации.

* * *

Итак, вы хостите все нужные вам сайты у себя. Много ли места занимает ZeroNet? Может быть, это непрактично?

Вот порядок чисел:

Основной форум ZeroTalk: 154 мегабайта
Самый крупный русскоязычный форум: 31 мегабайт
Пять самых популярных хабов социальной сети ZeroMe: 65 + 50 + 43 + 37 + 33 = 228 мегабайт
Все вместе 690 сайтов, которые я храню на своём компьютере: 6.1 гигабайта. 356000 файлов.

Это данные, полученные непосредственно из файлового менеджера, то есть сумма с учётом всех сопутствующих потерь места: рабочих файлов, создаваемых самой ZeroNet, и потерь на хранение коротких файлов в файловой системе.

На фоне размера современных жёстких дисков, операционных систем (Windows 10 не хватает 32 ГБ, чтобы обновиться) или фильмов в Ultra HD качестве, это совсем немного.

* * *

При запуске ZeroNet вы по умолчанию попадаете на страницу ZeroHello http://127.0.0.1:43110/1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D/ . Пока вы еще не скачали ни один сайт, в левой части страницы будет отображаться небольшой список «стартовых» сайтов: блог главного разработчика, один из форумов сети и т.п.
По мере того как вы посещаете сайты, левая колонка заполняется списком всех сайтов, что вы скачали. Вы можете сортировать сайты по размеру, времени обновления, времени добавления, числу пиров. Закреплять сайты в списке избранного.

В правой колонке отображаются обновления от сайтов. Вы будете видеть там уведомления о новых темах на форумах, ответах на ваши посты, об упоминаниях вашего никнейма другими пользователями и т.п. На каждом сайте предусмотрены кнопки, чтобы оформить подписку на разные типы уведомлений или отказаться от неё. А если вы знакомы с SQL и базами данных, вы можете вручную добавить себе в ленту какий-нибудь нестандартные уведомления, не предусмотренные разработчиком сайта.

Таким образом главная страница объединяет в себе функции социальной сети, RSS-ленты, новостной рассылки и программы для управления "торрентами" (то есть сайтами).

Кроме того, в ZeroNet существует социальная сеть ZeroMe, внешне представляющая собой что-то среднее между Twitter и VK. (В отличие от Твиттера, ограничения на длину постов нет, но возможностей не так много как в VK, больше похоже на Твиттер.)

* * *

Также в ZeroNet предусмотрена система для обмена шифрованными личными сообщениями ZeroMail. По сути, вы публикуете сообщение от своего имени в открытом доступе на специальном сайте, но прочитать его может только тот, кто владеет ключом для расшифровки. Для всех остальных это просто бессмысленный набор байт. Сообщение хранится всеми участниками ZeroMail столько, сколько необходимо, пока вы его не удалите.

Если кто-то захочет проанализировать вашу переписку, вот что он увидит:

* Вы писали кому-то сообщение, но неизвестно, кому и что именно. Известен только приблизительный размер сообщения.
* Сообщение разошлось по всей сети, но невозможно установить, на каком узле сети оно было прочитано. Было ли оно прочитано вообще, и кто адресат. Каждый узел просто пробует расшифровать все сообщения подряд, и если ему удалось расшифровать сообщение, значит это и было письмо, адресованное ему. Но наружу он никак не афиширует, что расшифровал какое-то письмо.
* Когда-нибудь вы удалите сообщение, что вероятно означает, что адресат его получил, и хранить его стало не нужно.

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

* * *

Что вы можете посетить в ZeroNet для начала:

ZeroTalk — основной форум на английском языке: http://127.0.0.1:43110/Talk.ZeroNetwork.bit/
Ru-ZeroTalk 🇷🇺­ — форум на русском языке: http://127.0.0.1:43110/1RuZntipLvXcLKFEjT6Fr7ZA3GuywYfr5/
OpenNews 🇷🇺 — русскоязычный новостной форум, который я пытался раскрутить: http://127.0.0.1:43110/1Nowr5oVEdbU5ZTQBriRd2jJVj2vhsDJd4/

Несколько технарских форумов:
http://127.0.0.1:43110/1EfLnw7GDXbZfJmGNoXGQ4XkuHGWkRZTMq/
http://127.0.0.1:43110/1LfvE91ZF18jdG3wW62Dw7NtfTZh737KPL/
http://127.0.0.1:43110/1BpFtPez7mSiShtXfb4wPfMT1dZTuRybfZ/
http://127.0.0.1:43110/1F4WVHDpQYxuJL6xEY3EZTYkZds9TTjVHC/
http://127.0.0.1:43110/1G56gcfMzp7695tpSHJN8qRR5N2pfTe7fw/

Подборка разных сайтов на русском и информация об устройстве и работе сети:
http://127.0.0.1:43110/1zeroRvxd42DSWUETotiaa8k5a5mDGvJs/

Самый полный каталог сайтов, наполняемый всеми участниками сети:
http://127.0.0.1:43110/Sites.ZeroNetwork.bit/

Wiki по устройству сети:
http://127.0.0.1:43110/138R53t3ZW7KDfSfxVpWUsMXgwUnsDNXLP/

* * *

Если не хочется устанавливать приложение, можно побродить по сети через этот шлюз: https://zeronet.now.im/

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

* * *

ZeroNet в обычном вебе:

https://zeronet.io/ — официальный сайт
https://github.com/HelloZeroNet/ZeroNet — исходники
https://zeronet.readthedocs.io/en/latest/ — документация
https://www.reddit.com/r/zeronet/ — сабреддит про ZeroNet

Decentralized Web Developer Report 2020 — статья про P2P-технологии.



Где вообще хранится 0Net-сайт — на компьютере его создателя, на каждом компьютере просматривавших его пользователей, в распределенном виде на машинах необязательно просматривавших его пользователей, на специальных ZeroNet-серверах или их аналоге?..
У всех пользователей сайта. Некоторые энтузиасты держат раздачи многих сайтов на VPS-ках, так же как это бывает с торрентами.

Может ли сайт быть удален из ZeroNet создателем/«хозяевами ZeroNet»
Создатель сайта может стереть всё содержимое, оставив только пустое корневое оглавление. Так как это вполне себе заверено ключом автора сайта, узлы сети примут такой апдейт.

случайно стать недоступным (подобно торренту, с которого ушли все раздающие)?
Может, но на практике встречается крайне редко. Даже давно заброшенные блоги, у которых было полтора читателя, я успешно скачивал. В качестве эксперимента, около 60-ти таких блогов, если не ошибаюсь.

Предположим, имеется веб-сайт (на внешнем хостинге или локальном диске), состоящий из статических страниц. Как проще всего создать его ZeroNet-зеркало (желательно с возможностью периодического обновления)?
Если обычная статика, то просто по расписанию или вручную копировать в каталог /data/ и запускать консольную команду опубликовать сайт.

Предположим, я хочу создать свой ZeroNet-поисковик (ищущий информацию по заданному мной алгоритму) — с чего вообще начать, существуют ли готовые решения?
Поисковики есть, но хороших нет. Открыты ли у них исходники, не интересовался.
В принципе, поисковик должен последовательно ходить по ссылкам и выкачивать все сайты, а по мере исчерпания кэша, удалять старые, и всё найденное заносить в БД.
Возможно, можно взять сорцы (wiki/ru) YaCy и допилить до совместимости с ZeroNet. Заменить в нём краулер.

По уже скачанным сайтам можно искать через поисковую строку на главной странице ZeroHello.
Subscribe

  • Книга мёртвых

    Вчера вечером во время всенощной на память Московским святителям умер Сергей Щеглов. Господи, Иисусе Христе, Сыне Божий, упокой душу раба Твоего…

  • Только что умер Сергей Щеглов

    Сергей не был церковным человеком, однако он шёл к вере. В личном общении он был со мной на эту тему откровенен. Он тайно практиковал Иисусову…

  • Суть магии Власти, кратко

    Эта короткая заметка дополняет цикл Как на самом деле. Каждую заметку этого цикла я начинаю со следующих слов: Всякий человек, который начинает…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 9 comments