? 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

Контекст

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

Допустим, есть некоторая децентрализованная сеть рассылки сообщений. Сообщения хранятся на узлах в течении некоторого времени. То есть это почти Bitmessage. Сами же сообщения (содержимое) сохраняются в некоторой децентрализованной файлообменной сети: торренты, ipfs, и так далее. А обмен сообщениями, это скорее обмен информации о сохраненном контенте. Узел, получив сообщение, пытаетсы загрузить файл из децентрализованной сети.

Теперь поверх всех этой системы работает чат. Если есть опыт использования Bitmessage то будет понятно. Теперь нужно обеспечить следующие возможности чата.

  • Все участники чата должны знать все, или поти все (99%) сообщений. То есть какие-то потери допустимы и не критично, но они должны быть редкостью, чтобы не мешать обсуждениям.

  • Возможность восстановить очередность, и по возможности, время отправки сообщений.

То есть это одни из главных проблем Bitmessage.

Идея довольно проста: нужно, чтобы каждый учасник чата, добавлял к своему сообщению контекст, информацию о последних сообщениях в пределах чата. Тогда, на основе этого, можно будет получить утерянные сообщения. И получить кое-какую информацию об очередности.

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

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

^1 ^2 zerro posted on Oct 21, 2016
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
zerroon Oct 24, 2016 ^1 ^2
Reply

balancer73: Но и для передачи данных тоже активно используется, в том же Twister, например.

Это плохая практика. В Steem ещё ладно, там пропусная пособность высокая. Но все равно там только текст пишется в блокчейн.

Ага. Но эта узкая задача для меня очень важна — она обеспечивает децентрализацию и сохранность данных, чего не обеспечивает обычный Web.

BTSync никогда не заменит блокчейн, вещи разные, для разных задач. Потому во всяких там Akasha, это Ethereum + IPFS. Да и сам IPFS в дальнейшем планирует больше пользоваться Ethereum, нежели своим IPFS.

balancer73on Oct 23, 2016 ^1 ^2
Reply

zerro: Это разные вещи. Блокчейн нужен для разрешения конфиктных ситуаций

Но и для передачи данных тоже активно используется, в том же Twister, например. Я привёл просто как пример возможного протокола обмена, мне без разницы, каким пользоваться :) Не подходит — и Бог с ним, сейчас и BTSync работает :)

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

Ага. Но эта узкая задача для меня очень важна — она обеспечивает децентрализацию и сохранность данных, чего не обеспечивает обычный Web. И одновременно предоставляет доступ неквалифицированным пользователям, привыкшим к традиционным решениям и позволяет сразу работать с обширным сформировавшимся коммьюнити, что не обеспечивают p2p-решения.

zerroon Oct 23, 2016 ^1 ^2
Reply

Через blockchain, btsync или e-mail — это не важно.

Это разные вещи. Блокчейн нужен для разрешения конфиктных ситуаций, как-раз для того, что я в другом треде спрашивал. Рассылать по нему данные расточительно, хотя и возможно, в случае, например небольших объемов текста. Но я все равно считаю это плохим решением. А DAG/Tangle это с одной стороны несет возможность разрешения конфликтов, но несколько более удобен в применении для таких целей.

Я пытаюсь обеспечить работу обычных Web-средств и приложений, не изобретая велосипедов.

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

balancer73on Oct 22, 2016 ^1 ^2
Reply

У меня концепция близка, но немного в стороне. Я пытаюсь обеспечить работу обычных Web-средств и приложений, не изобретая велосипедов. Есть ряд отличных реализация для общения и публикаций — готовые форумные движки, блоги, социальные сети... Пытаться всё это реализовать самому или даже с командой — очень расточительно по ресурсам. А уж тем более, пока работаешь в одиночку :)

Поэтому я постарался выделить что-то общее, что позволит обмениваться информацией между такими приложениями и создать протокол для передачи данных между ними. Это даже не сетевой протокол, а стандарт на формат данных.

Вот техническая реализация для передачи данных может быть любой. В том числе и blockchain. Т.е. логика такая. Человек пишет, например, заметку в блоге, в том же ZeroBlog. Заметка транслируется из внутреннего представления (JSON/SQLite/Markdown) в некий универсальный формат (Markdown с метаданными) и пересылается всем подписчиками. Через blockchain, btsync или e-mail — это не важно. Подписчики принимают у себя и публикуют эту запись в используемом ими формате. Скажем, в одном случае это будет запись в WordPress, в другом — в LiveStreet, в третьем — отошлётся в группу Вконаткте. Когда в каком-то из этих приложений появится комментарий, он также разошлётся остальным участникам сети, в том числе и первоначальному узлу в ZeroNet. Таким образом пользователь на своём привычном месте общения видит совершенно традиционный процесс. Но «под капотом» сидит p2p-обмен со множеством участников.

Кстати, использование IPFS для обмена контентом я тоже рассматривал. Т.е. всякие аттачи у меня и сейчас идут сразу через неё, в сеть кидаются только аннотации этих аттачей (дата/автор/контейнер/IPFS-хеш), но была мысль кидать в IPFS и сами сообщения. Тогда, в общем, например, для утягивания куда-то целого форума достаточно отправить хеш входа (тут, как раз, IPNS можно использовать). По хешу форума вытянется файл-контент форума со списком хешей топиков, по ним тянутся топики со списком хешей постингов... Это удобное решение для полного ухода форумов в DarkNet. Идея красивая получается, но практического смысла заморачиваться с этим пока не вижу :) Так что в IPFS храню только аттачи (ну и аватары юзеров)

zerroon Oct 21, 2016 ^1 ^2
Reply

Что-то похожее пытаются сделать в IOTA, но там реализация сильно обрублена в целях реализации криптовалюты. То есть там недопустима потеря сообщения, то в информационных сетях она допустима.

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