А не попытаться ли...
Apr. 4th, 2017 03:52 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
... Оживить проект cheshirenet?
Три года назад как-то ни у кого не возникло желания поучаствовать в проекте. Потрепались, обсудили почти согласовали протокол, и успокоились на этом.
Вдруг сейчас, поскольку потребность в системе коммуникации, устойчивой ко всяким стихинйным бедствиям, включая злонамеренные действия людей, растет, у кого-то появится желание поучастововать.
Базовых идей в cheshirenet было три
1. Оффлайновый веб - то есть каждое устройство несет в себе копию интеренсного владелцу контента, внутренне провязанную гиперссылками, и по возможности синхронизирует ее с другими копиями - можно через интернет, можно через ad-hoc wi-fi между двумя мобильными устройствами и вообще как угодно.
2. Полный контроль каждого пользователя за принадлежащим ему узлом. Что хочет хранит и передает дальше, что хочет - не передает. Весь контент подписан, чтобы исключить его искажение на промежуточных узлах.
3. Ключ подписи представляет только самого себя. Т.е. сгенерировав новый ключ подписи, пользователь создает новую сетевую "личность", псевдоним. Никнеймы пользователи себе не придумывают, они алгоритмически выводятся из открытого ключа. (но сгенерированное имя вам не понравилось, вы можете сгенерировать себе другой ключ подписи).
Про сетевую личность известен только массив контента, подписанный этим ключом. (можно и рекомендуется иметь "двойника" - альтернативный пароль, при вводе которого в ваш узел чеширнета возникает другая сетевая идентичность, ни в чем кроме постинга фоточек котиков не замеченная).
Три года назад как-то ни у кого не возникло желания поучаствовать в проекте. Потрепались, обсудили почти согласовали протокол, и успокоились на этом.
Вдруг сейчас, поскольку потребность в системе коммуникации, устойчивой ко всяким стихинйным бедствиям, включая злонамеренные действия людей, растет, у кого-то появится желание поучастововать.
Базовых идей в cheshirenet было три
1. Оффлайновый веб - то есть каждое устройство несет в себе копию интеренсного владелцу контента, внутренне провязанную гиперссылками, и по возможности синхронизирует ее с другими копиями - можно через интернет, можно через ad-hoc wi-fi между двумя мобильными устройствами и вообще как угодно.
2. Полный контроль каждого пользователя за принадлежащим ему узлом. Что хочет хранит и передает дальше, что хочет - не передает. Весь контент подписан, чтобы исключить его искажение на промежуточных узлах.
3. Ключ подписи представляет только самого себя. Т.е. сгенерировав новый ключ подписи, пользователь создает новую сетевую "личность", псевдоним. Никнеймы пользователи себе не придумывают, они алгоритмически выводятся из открытого ключа. (но сгенерированное имя вам не понравилось, вы можете сгенерировать себе другой ключ подписи).
Про сетевую личность известен только массив контента, подписанный этим ключом. (можно и рекомендуется иметь "двойника" - альтернативный пароль, при вводе которого в ваш узел чеширнета возникает другая сетевая идентичность, ни в чем кроме постинга фоточек котиков не замеченная).
no subject
Date: 2017-04-04 06:35 pm (UTC)Самое хитрое - это как объединить краудсурсинг рубрикации и принцип что каждый владелец узла сам себе хозяин и имеет право не соглашаться с мнением любого.
Версионированный репозитарий здесь НЕ НУЖЕН. Ни в коем случае. Системы версионирования рассчитаны на хранение истории изменений. Здесь большая часть документов неизменяема в принципе. Их можно только лайками и тэгами обвешивать. Более того, они имеют ограниченный (на разных узлах разный) срок жизни.
Вопрос храниения версий изменяемых документов (а такие тоже есть)- вопрос отдельный. Так как надо ухитриться сохранить валидность подписей всех авторов ревизий, а хранить все ревизии целиком не хочется.
При этом мы твердо знаем. что до большинства узлов доедет хорошо если одна версия документа. То есть передаваться версии должны по умолчнаию целиком. А дельту можно передавать только если узел явно сказал, что такая вот версия у него есть.
no subject
Date: 2017-04-04 07:23 pm (UTC)Просто использовать git как базу данных с блобами (перелинковать их в один tree объект, чтобы git gc корректно работал), а внутри работать уже со "своими" ссылками.
Впрочем гитовое версионирование можно применять к объектам которые могут меняться.
Я бы подумал, как можно сделать минимальный прототип на базе гита, и чего нибудь существующего для почты/ньюсов (блобы с mime хотя бы). Чтобы максимально просто и дубово.
no subject
Date: 2017-04-05 04:59 am (UTC)Еще раз - если нет задачи получить версионирование, брать за основу систему, у которой версионирование - основная и единственная задача - глупо.
Сделать content-addressable immutable хранилище можно с нуля, это будет гораздо проще, чем пытаться переточить git, и результат будет лучше, поскольку не будет содержать ненужного и не всегда прямого кода.
no subject
Date: 2017-04-05 10:10 am (UTC)Просто я за рисование прототипа самыми минимальными усилиями ;)
no subject
Date: 2017-04-05 10:13 am (UTC)Я уже пробовал держать свой блог на движке с гит-бэкэндом. За три месяца (и это при том, что там комментировали куда меньше, чем здесь и тем более в ЖЖ) постинг комментария стал занимать секунд десять, и пршилось от этой идеи отказаться.