howto-db/data/pages/wiki/decentralization.txt
2024-02-10 12:53:55 +00:00

61 lines
13 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

====== К вопросу о децентрализации wiki ======
//**Примечание:** статья создана для обсуждения вопроса децентрализации [[this>|wiki]] и не является инструкцией или рекомендацией к действиям. Без согласованности мнений по этой теме никаких практических действий со стороны [[user:newbie|админа]] не предполагается.//
Как известно, [[yggdrasil:yggdrasil]] является децентрализованной сетью, что означает, что в ней нет необходимости в некоем центральном узле, мощном сервере, который будет являться критически важным, объединяющим, управляющим, распределяющим, содержащим настройки и т.п. Сеть самоорганизующаяся, маршрутизация работает автоматически, "из коробки", все узлы [условно] равны и это не является препятствием для нормальной работы сети, наоборот - в определенных условиях, является преимуществом. Хотя, у такого подхода могут быть некоторые недостатки, уязвимости, но в целом, концепция [с некоторыми оговорками] подразумевает, что устойчивость децентрализованной сети выше...
Периодически, в тематических чатах и на форумах, можно услышать мнение о том, что в децентрализованной сети все или большинство сервисов должны быть децентрализованными. В этом есть определенный смысл. Совместно работая над каким-либо ресурсом, люди могут опасаться того, что в какой-то момент узел, на котором хранится результат их работы может уйти в offline и не вернуться, труд окажется напрасным, собранная информация, знания окажутся недоступны, и всё сообщество в целом получит урон. Высокая вероятность того, что и школьник, и домохозяйка, воодушевившись, в какой-то момент могут открыть в развивающейся сети потенциально популярный ресурс, и разочаровавшись через две недели, закрыть его, не способствует снижению опасений. И это понятно. К слову, здесь [[wiki:wiki_backup|публикуются]], бэкапы всех статей wiki, которые может скачать любой желающий, но...
Да, было бы хорошо использовать децентрализованные решения. Однако, что в первую очередь приходит на ум, как ассоциация со словом "децентрализация" в этом контексте? Наверное, блокчейн - хорошо зарекомендовавшая себя в некоторых областях технология связанных блоков, которая используется, в общем случае, для хранения, прозрачного учета, контроля, защиты от подмены неких данных и их транзакций...
Саму технологию блокчейна тут обсуждать вряд ли стоит, не думаю, что найдется много пользователей, которые поспорят с тем, что блокчейн в его современной реализации не лишен недостатков и не очень хорошо подходит для создания на его основе универсальных децентрализованных баз данных, форумов, wiki... Хотя, кто знает? ) Для обсуждения и написан этот текст.
Да, я слышал о WikiChain, но, на сколько я знаю, этот проект является экспериментом и не обделен недостатками, присущими технологии блокчейна.
В общем, на данном этапе, проблема в том, что пока нет готовых решений для того, чтобы легко и просто организовать децентрализованную базу знаний в небольшой сети с равными узлами, но "разношерстными" пользователями ) Делитесь знаниями, если знаете о таких.
Ну, а поскольку удобных децентрализованных решений нет (или я/мы о них не знаем), используем то, что есть.
В мае 2020 г. была поднята эта wiki на базе движка [[https://www.dokuwiki.org/dokuwiki|dokuwiki]]. Наличие возможности подключать плагины, менять темы оформления, использовать различные способы хранения статей (СУБД / текстовые файлы), версионирование, Open Source, некоторая гибкость в настройках, скорость работы, "легкость" - это всё способствовало выбору именно этого движка. Кстати, некоторые считают, что хранение данных в текстовых файлах - это не серьезно, но я (тот, кто хостит этот ресурс) считаю, что использовать СУБД для этого ресурса в относительно небольшой сети, с малым числом активных пользователей - это, так сказать, небольшой overhead. Для несогласных сразу скажу, что поддержка СУБД в dokuwiki реализована в плагине и подключается без серьезных сложностей и проблем. Кроме того, существуют средства переноса статей из dokuwiki в другие wiki ([[https://www.mediawiki.org/wiki/MediaWiki|MediaWiki]], например).
Изначально предполагалось, что ресурс будет пользоваться популярностью, люди будут активно делиться знаниями, но по-факту, подавляющее число статей здесь написано парой человек (спасибо всем, кто принял участие :)). А в чатах периодически можно увидеть выражение недовольства чем-либо, включая то, что "всё должно быть децентрализовано"...
===== ОК. Что я, как админ ресурса, могу предложить на этот счет =====
==== «Костыльная» синхронизация каталогов с данными ====
Поскольку статьи пока хранятся в текстовых файлах можно использовать что-то типа [[https://syncthing.net/|Syncthing]] или [[wpru>rsync]]. C переходом на СУБД (если он когда-либо случится), можно использовать некоторые API для передачи изменений из одной базы в другую.
[[wpru>IPFS|IPFS]] не подходит, т.к., не позволяет изменять файлы не там, где они были опубликованы, и распространять эти изменения.
В случае с упомянутыми выше средствами синхронизации файлов, технически всё просто (по крайней мере, так видится): желающий разворачивает у себя движок (там может быть своё оформление, тема, несвязанные с синтаксисом форматирования плагины и т.п.), даём новоиспеченному админу права администратора, настраиваем синхронизацию, публикуем ссылки. Всё. Пользователи могут пользоваться обеими ресурсами. Не проверял, но теоретически должно работать...
=== Чем это грозит ===
В качестве преимущества получаем децентрализацию со всеми её "плюшками", но есть, скажем так, нюансы:
* Пока подобное не реализовывалось, возможно есть подводные камни, потребуются жертвы времени со стороны энтузиастов
* **Безопасность**: децентрализация связана с передачей учетных данных зарегистрированных пользователей (включая зашифрованные пароли) (полагаю, перед тем, как что-то сделать, было бы справедливо опросить всех зарегистрированных пользователей на предмет отношения к передаче их данных одному/двум/трем и более людям, желающим стать администраторами, при наличии несогласных, данные передавать не этично). Кроме того, в зависимости от настроек узла, самый слабый (в плане защищенности) узел будет ставить под угрозу все остальные узлы.
* Сложность настройки: на каждом узле придется добавлять новые узлы вручную
* Средства синхронизации довольно надежные, но не исключено, что будут какие-то коллизии, которые придется каким-то образом сообща разрешать
* Сам факт наличия нескольких администраторов: все мы люди разные с разным мнением по разным вопросам. Думаю, необходимо наличие согласованности мнений относительно, собственно, администрирования и модерирования. В противном случае, есть вероятность образования нескольких несвязанных ресурсов со всеми вытекающими...
==== Плагин синхронизации ====
Существует давно не обновлявшийся плагин, который позволяет синхронизировать содержимое двух и более экземпляров wiki.
У него тоже есть особенности. Он скорее подойдет для сбора статей в одно место с разных ресурсов, хотя может и отправлять и получать, но
синхронизирует только статьи, настройки и пользователи не синхронизируются. Используется конкретный пользователь для создания статей, полученных с других ресурсов и отправки статей на другие ресурсы, т.е., авторство и история изменения разными людьми не сохраняется.
Желающие могут попробовать.
Страница плагина: https://www.dokuwiki.org/plugin:sync
====== Итого ======
Предлагаю всем оценить все плюсы и минусы и поделиться своим мнением на счет этого всего, а так же, поделиться идеями по этой теме, если оные имеются.
Ну, и конечно, не возбраняется дополнять и корректировать саму статью :)
~~DISCUSSION~~