? Editing: Post:21.body Save Delete Cancel
Initial sync in progress...

Newest topics

Follow in NewsfeedFollowing
+ Start new topic
Loading...
stickied

Title

Body
^1 ^2 added ━ started by user_name
More topics

 

Follow in NewsfeedFollowing

Социальная сеть в ZeroNet — как должна быть устроена

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

1.

Вообще я сначала на другую тему думал. В клирнете есть такой сайт lyricstranslate.com, я размышлял, как сделать тут что-то подобное. Суть сайта в том, что это каталог переводов песен. Для каждой песни хранится текст, видеоклип и переводы на разные языки. Сайт наполняется пользователями, но при необходимости модерируется админами и модераторами. Один пользователь может добавить текст песни, другой — найти клип, третий — перевести на какой-то язык. Модераторы нужны, когда полномочий пользователя недостаточно, например, если кто-то давным-давно перевел песню, а вы видите в переводе ошибку. Пишете на форуме модератору, он исправляет. Или если ошибка в тексте песни, если на ютубе стал недоступен клип и так далее. Проблема в том, что нельзя править чужие посты, поэтому и нужен модератор.

Я пытался понять, как сделать систему, в которой модераторов нет. И тут ко мне пришла простая идея — что если совместить wiki-движок (каждый может вносить любые изменения на любую страницу) и голосование? Пусть у нас будет такая wiki, где "главный" вариант текста определяется не тем, кто последний его отредактировал, а консенсусом пользователей: кто больше лайков набрал, тот и главный.

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

Например, у какой-то статьи в качестве основной была версия от пользователя №1, имеющая 9 лайков. Пришел пользователь №2, исправил ошибки или дописал что-то новое. Другие пользователи заходят, видят новую версию в списке версий, иногда тыкают на них, и некоторые решают переставить свой лайк. Через какое-то время первая версия стала иметь 4 лайка, а новая — 5. Теперь всем новым посетителям (которые еще не ставили лайков) по умолчанию отображается версия №2.

Мне кажется, это единственный способ «модерации» такого сайта. Демократия, короче.

2.

Дальше мне подумалось: а как хранить данные-то? Единым зайтом, как на ZeroTalk? По случайным хабам, как в ZeroMe? По тематическим хабам, как на некоторых зайтах сделано? (Видел на музыкальном зайте, не помню точно на каком, музыка распределена на хабы по жанрам.) Или каждый хранит на своём собственном адресе, как в блогах? Но если у нас получился сайт с демократией, то ответ должен быть: пусть каждый как хочет, так и хранит!

Что это значит? Это значит, что мы можем описать только схему данных, а любые источники подключать как merger-ы. Пусть каждый выбирает удобный формат хранения. Кто-то все свои данные залепит на один большой зайт. Кто-то сделает разбиение по темам. Кто-то решит со знакомыми сделать общий хаб «для своих». Если кого-то способ хранения не устраивает (слишком большой зайт, например), а контент нравится, он может просто утащить полезные материалы на свой собственный хаб. Пока формат данных единый, не важно, где лежат данные.

Получится, что головной сайт предоставляет интерфейс для создание контента, лайков, поиска по содержимому и так далее. А данные он берет с тех шардов, которые вы к нему подключите. Все шарды имеют общее «пространство имен», т.е. на своём шарде можно создать версию статьи, которую вы увидели на другом шарде. Выбор, какие разделы, статьи и версии видеть, определяется лишь тем пользователем, который будет читать этот сайт. Лайки также можно хранить и подключать из разных источников, т.е. и «демократию» вы можете для себя создать свою собственную.

3.

Итак, у нас получилась универсальная, децентрализованная, демократическая википедия, которая состоит из неограниченного количества источников контента. В ней каждый сам себе админ и модератор. А при чем тут социальная сеть-то? Я подумал, если любой участник сможет с использованием этого интерфейса создавать любой контент, начиная от каталога автомобилей и заканчивая книгой собственного авторства, то кото-то ведь может заинтересовать не контент вообще, а контент конкретного, интересного участника. Что он там нового опубликовал, ну-ка, ну-ка, интересно почитать. И если мы добавим в движок сайта возможность подписаться на ленту материалов конкретного пользователя, то получится соцсеть. Аналог VK и LJ, в дополнение к тому, что у нас тут wiki. %)

А если добавить возможность постить опциональные файлы, то получится... аналог торрент-трекера и ютуба!

Вот такая штука получилась, на бумаг-то всё гладко. Что думаете про эту идею? Многими пользователями ZN высказывалась идея, что ZeroMe — это костыль, и социальной сетью должна быть сама сеть ZN — множество самых разных зайтов, объединённых через какой-то движок или технологию. Но конкретики я не слышал, было непонятно, что делать-то.

^5 ^6 geekless posted on Mar 31, 2018
Please sign innew comment
Sign in as...
Submit comment
You are running out of your allowed space, please contact the site's admin at unknown to raise your limit.
user_nameadded ^1 ^2
Reply
Body
reflevmason Sep 12, 2018 ^1 ^2
Reply

Отличная идея.

balancer73on May 01, 2018 ^1 ^2
Reply

deepstrelok: С этой стороны Freenet лучше. Там все-таки контент не изменяемый.

Пока никто не реализовал юзабельную динамическую систему на статическом контенте :)

deepstrelokon May 01, 2018 ^1 ^2
Reply

geekless:
Это особенность вообще всей ZN. Владелец ключа может в любой момент удалить свои данные, >заменить их на призыв свергнуть правительство или выложить сотню гигабайт мусора вместо >картинок с котиками. В этом смысле ZN не отличается от клирнета. Она защищает только от >случайной пропажи данных из сети («хостинг упал»), а не от действий владельца сайта («да >пошли вы все в задницу!»).

С этой стороны Freenet лучше. Там все-таки контент не изменяемый.

geeklesson Apr 02, 2018 ^1 ^2
Reply

dude: Сортировка по лайкам в полностью публичной сети - будут накрутки и спам.Нужно среднее. Доверенные связи ака друзья. И их голоса/лайки считаются приоритетными по сравнению с какими либо анонами.

Согласен, сортировку по лайкам надо сочитать с web of trust и скорингом. Без скоринга сеть вообще не сможет масштабироваться, любой Пупкин может сделать DOS всей сети.

dude: Тяжелые аттачи типа картинок и видео хранить в системе не привязаной к какому либо отдельному сайту для лучшей доступности.

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

dudeon Apr 02, 2018 ^1 ^2
Reply

Федерация = централизация. Хозяин хаба имеет чрезмерные права. Противоречит идее свободы. Не нужно.
Сортировка по лайкам в полностью публичной сети - будут накрутки и спам.
Нужно среднее. Доверенные связи ака друзья. И их голоса/лайки считаются приоритетными по сравнению с какими либо анонами. Короче, велкам в ретрошару ;)
В зеро это же можно реализовать натягом системы друзей поверх имеющейся p2p сети, не касаясь сетевого уровня вообще. Просто учитывать только их оценки, т.к. они вполне себе персонифицированы.
Что касается защиты от неадекватных релизеров в zn, можно допилить сохранение версий вместо автозамены что есть щас.
Насчет агрегатора контента - нужно расширять функциональность zerome или zerohello с разделением на группы подписок, дополнять репостами или аттачем внешних сообщений и тд
Тяжелые аттачи типа картинок и видео хранить в системе не привязаной к какому либо отдельному сайту для лучшей доступности.

pozyaon Apr 01, 2018 ^1 ^2
Reply

geekless: По сути я как раз пытаюсь описать федерацию в том виде, в каком её можно сделать поверх ZN.

Надо было тогда писать нормально :) По посту складывалось впечатление, что ты предлагаешь полный p2p, что, с одной стороны, хорошо (сочетается с ZeroNet), с другой стороны - плохо (очень часто файлы будут недоступны).

geekless: Смотри, что получается. Я считаю, наоборот, моя модель «множество версий на одном URL» позволяет немного защититься от такой проблемы. Если URL принадлежит конкретно пользователю, то он пропал, и всё, с концами. Все входящие ссылки стали некорректными. Где искать копии и есть ли они вообще, не известно.

И вот начнется жопа с доступностью контента. Я не спорю, что текущий вариант всего этого дела - очень даже хорош. Но это для нас (или для тех, кто готов себя "сломать"), а для обычных хомячков это будет настолько непонятно, что никто этим пользоваться не будет. Как заливать файлы? Как постить? Да, возможно, это вопрос документации, маркетинга и т.д., но я первично вижу проблему именно в этом. "Сложно, б**, СЛОЖНО!".

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

geekless: Это проблема взаимодействия людей, я не знаю, как её технически решить.

Не придумывая такие костыли :) Это как раз проблема UX.

anothernekoon Apr 01, 2018 ^1 ^2
Reply

С PoW тоже неоднозначно, с одной стороны есть бюджетные мобильные устройства, с другой - всякие топовые i9 у которых производительность отличается на порядок-другой.

geeklesson Apr 01, 2018 ^1 ^2
Reply

anotherneko: Думаю что они скорее опубликуют точно такие же исправления от своего имени чем будут перечитывать сотни вариантов одного и того же документа.

Угу.

Назначить PoW на публикацию, чтобы было проще посмотреть несколько существующих версий, чем публиковать свою? Но тогда вообще никто ничего писать не будет.

anothernekoon Apr 01, 2018 ^1 ^2
Reply

geekless: Да, её увидят только те, кто подумает «тут вот надо исправить, дай-ка посмотрю версии, может быть, кто-то уже исправил и опубликовал».

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

geeklesson Apr 01, 2018 ^1 ^2
Reply

anotherneko: Тут есть проблема: когда Ваня Иванов отправит несколько мелких исправлений то его версия будет с 0 лайками и никто ее не увидет а значит и не поставит лайк.

Да, её увидят только те, кто подумает «тут вот надо исправить, дай-ка посмотрю версии, может быть, кто-то уже исправил и опубликовал». Это проблема взаимодействия людей, я не знаю, как её технически решить.

anothernekoon Apr 01, 2018 ^1 ^2
Reply

Пришел Ваня Иванов, увидел ошибки, неточности, и исправил их. Версия последнего набрала больше лайков, стала основной.

Тут есть проблема: когда Ваня Иванов отправит несколько мелких исправлений то его версия будет с 0 лайками и никто ее не увидет а значит и не поставит лайк.

geeklesson Apr 01, 2018 ^1 ^2
Reply

Есть еще идея, что одно и то же пространство контента можно в GUI представлять разными способами с использованием разной модели данных.

Между любыми двумя идентификаторами контента может находиться именованная (типизированная? или как лучше назвать?) связь. Любой пользователь может создавать контент и линковать его к любым другим идентификаторами. Что получится в итоге, зависит от того, какую схему мы накладываем, т.е. какие связи учитываем в отображении данных.

Например, модель упрощенного хабрахабра:

hub -> post

post -> comment

Или модель музыкального сайта, который я упоминал в самом начале:

singer -> song

song -> video

song -> translation-en

song -> translation-ru

song -> translation-by

song -> translation-rs

# и так далее

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

geeklesson Apr 01, 2018 ^2 ^3
Reply

pozya: Мои мысли: http://127.0.0.1:43110/1P96RBrXPb5DD8HeBgDmVwogtX9tJz3iMM/?Post:11 [...]

А что ты подразумеваешь под федерацией? Федеративная сеть — это джаббер или классический email, но я не понимаю, как эту модель применить в обсуждаемом случае. По сути я как раз пытаюсь описать федерацию в том виде, в каком её можно сделать поверх ZN.

ничто при федерации не запрещает, например, запретить принимать контент от Васи Пупкина, коли он такой козел, гад и вообще лайки накручивает.

В рассмотренной модели тоже ничего не запрещает. Смотри, в ZN встроена возможность сделать mute пользователя, даже добавлять ничего не надо. Есть возможность и сайт заблеклистить целиком, чтобы туда не попасть даже случайно. Я просто не описывал то, что уже работает.

Вася Пупкин, гад такой, после того, как починили накрутку в Wiki, положил свой хаб и свои мержеры, а он был топовым поставщиком контента

Это особенность вообще всей ZN. Владелец ключа может в любой момент удалить свои данные, заменить их на призыв свергнуть правительство или выложить сотню гигабайт мусора вместо картинок с котиками. В этом смысле ZN не отличается от клирнета. Она защищает только от случайной пропажи данных из сети («хостинг упал»), а не от действий владельца сайта («да пошли вы все в задницу!»).

Только эти "как хочется" должны быть ограничены протестированным списком, ибо смотри, что писал чуть выше.

Каким? Любой способ хранения данных в ZN имеет эту особенность. Я могу сейчас пойти и удалить любые свои посты на любом форуме в ZN, никто не может мне помешать в этом. Право изменять данные должно же у кого-то быть, так? Либо оно у меня, то есть автора, либо оно у админа сайта, который мне разрешает писать и постит данные от моего имени. Когда я пишу на форуме в клирнете, я просто шлю туда POST-запросы, а на самом деле за меня публикует посты код сайта, и он может от моего имени опубликовать любой бред. Я вынужден доверять владельцу сайта (и как автор поста, и как читатель других постов).

В случае с ZN промежуточное звено исчезает: ты просто читаешь посты других пользователей напрямую. Но и с их правом заменить фото котика на фото члена при этом соглашаешься.

Смотри, что получается. Я считаю, наоборот, моя модель «множество версий на одном URL» позволяет немного защититься от такой проблемы. Если URL принадлежит конкретно пользователю, то он пропал, и всё, с концами. Все входящие ссылки стали некорректными. Где искать копии и есть ли они вообще, не известно.

А если URL принадлежат всем и никому, это меняет способ взаимодействия с сетью в корне. Если топовый блоггер Вася Пупкин постит смешных котиков, под его котиками будет много «исправленных» версий этих же котиков (с мемасиками, демотиваторами и прочим творчеством). Так что контент не исчезнет бесследно после удаления оригиналов. Например, пусть менее топовый Петя Иванов ходит по Васиным работам и прямо в версиях котиков делает туториалы по фотошопу, издеваясь над бедными котиками. (На чем и стал популярен.)

И в чем тогда смысл Васе удалять контент? Все подумают «ну и дурак» и станут читать Петю. А новые пользователи вообще не будут знать, что был такой Вася. Даже отомстить никому не получится своим уходом.

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

geeklesson Apr 01, 2018 ^1 ^2
Reply

balancer73: [...] Настоящие соцсети, чисто по термину даже, не только по определению, это в первую очередь социальные связи.

Почитал определения в википедии. Русская статья относит к социальным сетям в числе прочего «социальные закладки, социальные каталоги, социальные библиотеки, социальные медиахранилища, сервисы для совместной работы с документами», не поясняя суть этой выборки.

Англиская статья сообщает о трудностях с однозначным определением и предлагает такую классификацию:

  • socializing social network services used primarily for socializing with existing friends (e.g., Facebook)
  • networking social network services used primarily for non-social interpersonal communication (e.g., LinkedIn, a career- and employment-oriented site)
  • social navigation social network services used primarily for helping users to find specific information or resources (e.g., Goodreads for books)

И отсылает к определению social media, которое еще шире (туда попадает WhatsApp, например).

В любом случае, термин неоднозначный.

Я имел в виду в первую очередь «networking social network» и «social navigation social network», то есть как раз «социальные библиотеки, социальные медиахранилища, сервисы для совместной работы с документами» и т.п.

pozyaon Mar 31, 2018 ^1 ^2
Reply

Мои мысли: http://127.0.0.1:43110/1P96RBrXPb5DD8HeBgDmVwogtX9tJz3iMM/?Post:11

Там еще дополнительно накидал, конечно, к теме даже иногда чуть-чуть не относящееся.

balancer73on Mar 31, 2018 ^1 ^2
Reply

geekless: Можно в таком качестве рассматривать и wikipedia, и rutracker, и youtube.

Wikipedia — НЕ социальная сеть. Там нет социальных связей.

Рутрекер — обычный форум, по сути. Просто есть отдельная обработка аттачей. И всё. Никакой социальности.

YouTube имеет относительно урезанные социальные функции. От того же KopyKate в ZN в контексте социальности отличается только продвинутой системой рекомендаций.

...

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

geeklesson Mar 31, 2018 ^1 ^2
Reply

balancer73: ИМХО. Ядро соцсети в ZN уже есть — ЗероБлоги. Суть современных соцсетей в том, что каждый пишет свою ленту. Свой блог. Желающие подписываются на чужие блоги и читают ленту с новыми записями в них. Но всё это итак уже есть в ZB. Подписка — загрузка блога. Лента — ZeroHello с нотификацией о новых записях. Модерирование/игнор — удаление ненужных блогов.

В качестве замены VK — годится. Уже обсуждали, что вместо использования движка ZeroMe, лучше бы развить ZeroHello соответствующим образом. Я с этим согласен.

Но VK, твиттер, LJ — это не единственный вид социальной сети. Можно в таком качестве рассматривать и wikipedia, и rutracker, и youtube. В классическом понимании сайтов, отыскать что-то общее между википедией и ютубом затруднительно. Я предлагаю взглянуть под таким углом, с которого это общее видно.

balancer73on Mar 31, 2018 ^2 ^3
Reply

ИМХО. Ядро соцсети в ZN уже есть — ЗероБлоги. Суть современных соцсетей в том, что каждый пишет свою ленту. Свой блог. Желающие подписываются на чужие блоги и читают ленту с новыми записями в них. Но всё это итак уже есть в ZB. Подписка — загрузка блога. Лента — ZeroHello с нотификацией о новых записях. Модерирование/игнор — удаление ненужных блогов.

Не хватает только современных фишек в виде форвардов/ретвитов.

This page is a snapshot of ZeroNet. Start your own ZeroNet for complete experience. Learn More