В продолжение тем, типа Распределёные форумы/блоги. Продолжаем разговор. Нужен совет. и подобных :)
Понимание того, как должна выглядеть и работать наша социальная система всё чётче кристаллизуется. Чую, скоро приступлю к практическим экспериментам :) Хотя в отсутствии коммьюнити, при наличии только собственных нод и одного источника данных, работать будет не так интересно.
...
Ознакомился я тут с относительно популярными в наше время готовыми решениями. Diaspora, Identica, GNU Social.
Основная проблема, не дающая им (ИМХО) нормально стартовать — отсутствие гейтов к имеющимся данным классических систем что сразу снижает интерес и малая польза от распределённости. Пользователь всё равно остаётся привязан к собственной ноде. Пусть даже в некоторых реализациях и возможен ручной перенос данных на другие ноды. Нет прямого обмена контентом между нодами. Только по подписке пользователей.
Думаю, более востребованная система, в отличие нынешних, должна предоставлять:
— Гейт-доступ к имеющимся материалам классических форумов и блогов. Тут понятно и без комментариев. Есть информация — есть пользователи.
— Автоматический обмен контентом не по подписке пользователя, а в рамках категории. Сейчас пользователь, ищущий что-то интересное, должен предварительно обыскивать остальные ноды сам. И только найдя нужное, может подписаться на потоки. Нужно, чтобы всё актуальное можно было найти на одной текущей ноде.
— Обмен пользовательскими данными. Пользователь должен уметь размножать свой идентификатор на более чем одну ноду. Чтобы при потере одной из нод из сети, он мог продолжить работу через другие ноды не перерегистрируясь и не перенося данные.
...
— Кстати, замечание — основной контент обязан быть публичным. Чтобы гости имели возможность читать статьи и обсуждения без предварительной регистрации.
Ну и проблема подобных систем — очень узкая трактовка материалов. Нужны не только блоги/микроблоги, но и публикация статей (в т.ч. Wiki), форумы/обсуждения, фотогалереи и т.п. Писал на этот счёт мысли в http://www.balancer.ru/g/p3864467
...
Вот по архитектуре системы пользователей пока чёткого понимания вопроса нет. Думаю, вначале можно будет стартовать и с нынешним вариантом, прибитых к ноде гвоздями юзеров.
Зато довольно чёткие начальные представления по обмену данными.
Для хранения больших объёмов данных, картинок и аттачей, пока наиболее интересным вариантом выглядит IPFS. Основные плюсы:
— Файлы идентифицируются по хешу содержимого. Можно залить на разных нодах одни и те же файлы, у них останутся одни и те же идентификаторы.
— Система работает достаточно быстро. Я бы сказал, вполне на уровне нынешнего Web'а. Речь, конечно, о первой межнодовой передаче файла, потом он кешируется и отдаётся шустро.
— Система легко расширяется, софт на Golang прост в установке.
— Готовая прозрачная система гейтования. Можно использовать выдачу данных с гейтов сразу, не имея привязки к ним.
Минусы:
— Нет(?) вменяемого контроля наличия файлов в сети. Если все ноды-хранилища с файлом исчезнут, то никто не гарантирует доступность файла со временем
— Похоже, система разрабатывается одним человеком, что не очень хорошо гарантирует её будущее.
Для хранения, собственно, архива сообщений думаю попробовать Gittorrent. Не выгорит с ним (хотя почему нет?) можно будет прозрачно использовать обычный Git, хотя это снизит гибкость привязкой к серверам репозиториев.
Перемещено JB из general