====== К вопросу о децентрализации 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~~