Пользователь
0,0
рейтинг
31 января 2011 в 14:47

Администрирование → Web – P2P — Web

Доброе время суток, дорогой %username%.

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

Под катом общие размышления, обзор текущего состояния проекта, перспективы и, конечно, немного трафика.

Если интересно — welcome под кат.

Идея распределённого интернета давно уже бродит в головах разного рода технических и оклотехнических специалистов. Кто-то предлагает делать полностью распределённые торренты с блекджеком автообновлениями и без трекеров, кто-то сразу берётся за распределённые ОС (не очень хорошо представляю себе такую штуку, но звучит внушительно), кто-то берётся заменять DNS. Уже есть несколько проектов, которые подходят к реализации с разных сторон, но статья не о них.

Общие размышления


Каждый раз, когда речь заходит об использовании P2P технологий по отношению к отличным от торрента вещам, упоминаются следующие преимущества использования распределённых сетей — анонимность, отказоустойчивость и производительность.
Следовательно, разрабатываемая система должна:
  • предоставлять возможность полной анонимизации участника;
  • в идеале, не иметь единой точки отказа;
  • работать с той же скоростью или быстрее традиционных клиент-серверных систем;
Также, полезна возможность совместного использования не только каналов, но и других ресурсов, входящих в сеть (диск, оперативная память, процессор) — это уже относится к распределённым вычислениям.

Имея программную платформу, которая позволяет выполнять часть кода в однораноговой сети, мы можем создавать любые распределённые сервисы (сетевые приложения) для, например, обмена файлами, генерации веб-страниц и передачи сообщений. Такая распределённая программа-сервис, по сути, представляет из себя набор функций, выполнение каждой из которых может быть делегировано соседнему узлу, а также инициализационную функцию (точка входа, специализированная функция, которая следит за выполнением задачи).
Запуск приложений поверх сети даёт:
  • возможность использования ресурсов участников сети — повышение скорости обработки большого количества запросов;
  • отсутствие единой точки отказа в случае, когда инициализационная функция доступна на любом узле;
  • полную анонимность при использовании обязательного шифрования соединений между узлами;
  • полную обратную совместимость с существующими протоколами и стандартами, т.к. на выходе функции-инициализатора может быть обычный HTTP или другой протокол;

Социальная часть


Почему проект распределённого веба имеет будущее именно в таком виде?

Платформа, обладающая возможностями к масштабированию, в первую очередь, интересна веб-мастерам и системным администраторам — первыми пользователями станут именно они. Их привлечёт также высокая скорость вычислений и то, что пользователям не придётся ставить себе всякие «улучшаторы». Значит, проблем с контентом не возникнет. А значит, будут и пользователи. Таким образом мы исключаем основную проблему подобных распределённых сетей — непопулярность.

Отсутствие кода на стороне клиента обозначает, что клиент может пользоваться сервисами сети, но не входить в неё. Для предоставления ресурсов в распоряжение сети достаточно поставить отдельное приложение, но это дело добровольное — мы же не собираемся всех запихивать «железной рукой в светлое будущее». Стимулы войти в сеть найдутся. Хорошим примером являются торренты. Рейтинги и статусы, возможность использования расширенных функций и другие способы мотивации. Всё больше людей будут входить в сеть, обеспечивая её рост. При достаточном размере сети станет возможным создание действительно 100% автономных неубиваемых сервисов. А это уже будущее, господа.

Для тех, кто прочитав заголовок «социальная часть», подумал совсем о другом, отдельно сообщаю — таки да, там можно делать распределённую социальную сеть, читайте ниже.

Техника: с чем имеем дело и как это работает


При поступлении запроса (запрос включает в себя имя сети, имя вызываемой программы и начальные данные) на один из узлов сети, узел, принявший запрос смотрит, есть ли у него нужный код и имеет ли он право его выполнять. Если кода нет, узел запрашивает этот код у своих соседей и получает пакет с модулем, содержащим необходимую (инициализационную) функцию. Инициализационная функция, в свою очередь, производит вызов всех необходимых подпрограмм, используя внутреннее API. При этом подпрограммы, вызванные через API, в реальности могут быть запущены на других узлах, так же, как была запущена сама инициализационная функция. Определение наиболее подходящего узла и синхронизация необходимых данных при этом ложится на API. Конечные результаты возвращаются в родительскую функцию. При этом нет возможности определить адрес изначально запросившего устройства — узлы знают только адреса расположения родительских функций, а все соединения между пирами шифруются (кроме особо доверенных случаев — для повышения производительности).

Информация в сети представляются в виде источников данных. Если вам нужен какой-то файл, строка или число — вы можете запросить его в удобном вам виде у соответствующей функции.
Поверх такой платформы можно уже запускать инфраструктуру — аналог DNS в виде сетевого приложения, которое принимает на вход адрес, а отдаёт список IP (и/или особый адрес сети). Да и сами сайты становятся просто распределёнными приложениями генерации и компоновки HTML кода и могут быть выполнены независимо от какого-либо сервера.

Разработка


Основная часть проекта написана на могучем и великом языке Perl, но это не значит, что для профессионалов от других языков (и не профессионалов — мы рады каждому адекватному человеку) не найдётся места и дела.
Наш проект сейчас только начинает свою открытую жизнь — задачи есть и их много.

Что уже готово:
  • Функциональное ядро, занимающееся распараллеливанием подпрограмм;
  • ACL на уровне функций;
  • пулинг соединений;
  • синхронизация кода узлов;
  • синхронизация операционных данных;

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

Общие задачи, ожидающие решения:
  • распределённое хранилище данных;
  • система поиска нужных ресурсов в сети по их идентификатору;
  • аналог DNS и плагины для его поддержки браузерами;
  • встроенные обработчики протоколов;
  • многое другое;

Также можно почитать темы из обсуждения проекта в гуглогруппе (она достаточно общая — включает и не касающиеся проекта темы).

Если уже очень хочется покрутить в руках


Как я уже писал чуть выше, сайт, на котором будет вестись разработка и, соответственно, публиковаться код и документация готовится к запуску (UPD: сайт запущен). К запуску также готовится и сам код с документацией. Чтобы получился более-менее качественный старт, публиковаться всё это будет где-то через полторы-две недели (это как на IPO выходить, только сложнее). После публикации (и в случае инетреса хабрасообщества) готовится серия статей на тему использования платформы для программистов и администраторов.

Перспективы


Социальность

Создание и использование системы социального общения, где всё: мой профиль, интерфейс персональной странички и все личные данные хранятся на моём компьютере (с полным правом удаления, если вдруг вздумается) видится мне гораздо интереснее ситуации, когда вся личная информация доступна «чужому дяде», который на этом ещё и зарабатывает. Поэтому распределённой социальной сети, надеюсь, быть — её вполне реально создать на планируемой инфраструктуре. Запишем в перспективы — для последующей реализации.

Почта, телеграф, телефон

Туда же (в перспективы) стоит записать систему прямого общения — текстового, документного, голосового, видео и голографического (когда придумают). Можно попробовать построить защиту от спама на уровне архитектуры, но это так… Перспективы.

Монетизация

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


Независимость


Интернет потерял независимость году этак в 2005. Распределённый интернет, часть которого мы собираемся здесь создать, конечно, не сделает вас независимыми от провайдеров (яркий пример зависимости), но, в перспективе, позволит избежать ига всяких RIAA и MPIA (я не сторонник повального пиратства, но подобным организациям я точно не друг — у меня на эту тему есть свои мысли объёмом примерно на такую же статью), в какой-то мере защитит от нападок на DNS (не смог найти ссылку на статью про массовое отключение доменов; если в коментариях кто-то найдёт — заменю), и поможет возникновению новых независимых источников информации, что сделает мир чуточку лучше что даст нам новые возможности её получения.
P.S. Спасибо всем, кто помог мне в публикации статьи — без вас её бы здесь не было.

Материалы:
http://groups.google.com/group/DarkMatterP2P/ — место, где в данный момент ведётся всё обсуждение по вопросам, связанным с темой в т.ч.не касающиеся проекта.
http://habrahabr.ru/blogs/p2p/112491/ — достаточно обширная статья с хорошей подборкой ссылок.
http://habrahabr.ru/blogs/infosecurity/112682/ — ещё одна статья на тему, с попыткой организовать людей и сделать что-то вменяемое.
Александр @SleepingLion
карма
25,0
рейтинг 0,0
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (64)

  • +1
    Очень даже интересные и перспективные размышления.
  • 0
    Интересно, можно ли будет использовать Ваше решение для распределения нагрузки?
    Тогда все хостинги помрут, даже «облачные»…
    • 0
      Именно для этого всё и делается: до того, как сеть разрастётся, всё можно будет эффективно использовать на своих серверах.
      • +1
        Да, это интересно, но без переработанного DNS, к сожалению, решение не законченное.
        Разве что реализовать как-то, что А(АААА)-запись — будет ссылаться на «трекер»…
        • 0
          Реализация модифицированного DNS сервера (не аналога DNS) в плане в верхних строчках.
    • +1
      Сомневаюсь, что так прям возьмут и помрут: ) Всегда будут корпорации и госорганы, которым не жалко денег на самый крутой хостинг, (а то и наоборот, чем дороже, тем, лучше — распил ведь!) А вот доверять свой сайт P2P-сети они не согласятся.

      Это перспективный вариант прежде всего для маленьких проектов, стартапов, неприбыльных организаций. Кроме того — полная децентрализация — не самоцель. Можно держать основной сервер на обычном хостинге, а P2P-облако поможет справиться с пиковыми нагрузками и вообще масштабированием. А еще подстрахует основной сервер на время даунтайма.
      • 0
        Я думаю, что и корпорации и госорганы, в конце концов, перейдут на подобные сети. Будущее же хостинга — в предоставлении гарантий наличия ресурсов. Также, останется задача надёжного размещения данных. В случае резкого сокращения размеров сети (мы же ведь параноики, да и про Египет помним) нельзя решить проблемы исчезновения блоков данных, а стократное дублирование никому не нужно.
        • +1
          Как в BitTorrent DNA? Хозяин ресурса гарантирует присутствие файла в сети и быстрое начало загрузки даже при почти полном отсутствии пиров, а когда набегает толпа — отдача идет в основном через P2P.
        • 0
          Если машины в этой сети находяться в online очень нерегулярно (захлопнул ноутбук на ночь), то как обеспечивать постоянную доступность как-то сравнимую amazon или google?
          • 0
            Во первых, при достаточном размере сети, какая-то часть узлов всё равно будет доступна. Во вторых — никто не отменяет возможность создания своих собственных надёжных узлов на хостинг-площадках, которые в штатном режиме будут выполнять задачи по выгрузке новых данных, а в случае полного отсутствия пиров примут на себя часть нагрузки. Если возник вопрос «какая разница, в обоих случаях хостинг», то сразу отвечу — разница в нагрузке и надёжности (вероятность отсутствия пиров и одновременного отключения хостинга гораздо меньше вероятности простого отпадания хостинга).
  • +3
    Пока какие-то общие слова, либо я просто не понял.

    Как решена проблема идентификации сервисов? Т.е. вот когда юзер запрашивает сервис servicename как он может быть уверен, что ему откликнулся именно он, а сервис, что он ответил именно этому пользователю?

    P.S.: Perl рулит!
    • 0
      В данный момент система идентифицирует задачи по имени сервиса, передаваемом при запросе. Или вопрос о том, как пользователь определит подлинность сервиса? Каждый сервис получит ключ, которым он сможет доказать своё происхождение (правильность выражения ключ/(имя сервиса+расположение)). Также можно будет импортировать список доверенных ключей. Но всё, что связано с ключами, ещё в разработке.
      P.S. Согласен.
  • 0
    Кстати нагрузку лучше распределять так же как и в облачных хостингах, если смотрят 10 человек, то задействовать нужно столько поинтов, сколько действительно нужно для обслуживания этих 10-ти человек.
    • 0
      Про балансировку нагрузки будет отдельная статья, после запуска.
  • 0
    Хорошо бы для неубиваемости сюда и netsukuku прикрутить каким-то боком, как один из вариантов. Нет обычной сети через провайдера — а нам всё равно =).
    Но что-то они с позапрошлого года затихли…
    • 0
      Netsukuku не решает проблемы магистральных каналов. То есть против египетского варианта бессильна. Но, конечно, штука очень интересная.
      • 0
        Разумеется не решает. Пока. Пока не придумали highLTE или ещё какой новой супер-пупер технологии. Но на безрыбье очень даже очень. И как раз в Египте это бы помогло, если бы было заранее, до того как.
        • 0
          Мне кажется, что такая проблема не решаема в принципе технологическими методами. Вот, например, связь между континентами: тут или спутник, или кабель по дну. И то и другое стоит много-много миллионов и не может быть децентрализовано никак (при нынешних объемах трафика, конечно. Если речь идет просто о возможности изредка передавать коротенькие сообщения, то тут другое дело. Есть, например, шлюзы между интернетом и сетью любительских радиостанций). Рассчитывать на технологию, которая позволит это — все равно, что надеяться на помощь инопланетян. Тут гораздо реальнее политические методы. Чтобы правительство твердо знало — отключить интернет, это все равно, что приставить к голове пистолет и нажать на курок. Ибо линчуют. Гражданское общество, и все такое.
          • 0
            Решается, можите рассчитывать.

            Вы предложили не плохое техническое решение, приставить пистолет подключённый к Интернету к голове правительства. Только они Вас опередили, к Вашей голове уже приставлен такой пистолет.

            Удачи и привет от пришельцев,
            ignat99
            • 0
              Может быть добрые пришельцы поделятся ссылочкой на вариант решения? Я искренне считал, что такое технически невозможно в обозримом будущем. Вы прям меня заинтриговали!

              А насчет пистолета — он действует независимо от интернета. На протяжении всей истории человечества постоянно свергали правительства, доведшие людей до крайности.
              • 0
                ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B7%D0%BE%D0%BD

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

                Если нужны формулы, можно и их прислать.

                Привет от инопланетян,
                ignat99
                • 0
                  С одной стороны, возразить на рациональном уровне нечего, так как я не физик. С другой — на уровне интуиции (всё-таки я и не гуманитарий, приблизительно знаю, что такое мюон) впечатление, что в ближайшие несколько десятилетий ничего не изменится, только усилилось.

                  Формулы мне присылать бесполезно :( А вот если популярное изложение, как это все можно использовать для децентрализованной передачи на несколько тысяч километров с приемлемой скоростью — буду рад почитать. Серьёзно!
                  • 0
                    ru.wikipedia.org/wiki/%D0%9C%D1%8E%D0%BE%D0%BD

                    Положительный мюон, остановленный в обычной материи, может связать электрон и сформировать мюоний (Mu) — атом, в котором мюон действует как ядро. Приведенная масса мюония и, следовательно, его Боровский радиус близки к соответствующим величинам для водорода, и, следовательно, этот короткоживущий атом в первом приближении ведет себя в химических реакциях как сверхлёгкий изотоп водорода.

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

                    Если на пальцах IMHO:
                    Надо уметь разделять электронные облака атомов.
                    Возможно для этого помогут структуры с очень тонкими протонно-нейтронными слоями.
                    Если бомбардировать нейтрино или другими спосабами влиять на структуру атомов.

                    Когда высокоэнергетичная частица входит в атмосферу она, взаимодействуя с атомами воздуха на первых 100 г/см², рождает целый шквал частиц, в основном пионов и мюонов, которые в свою очередь рождают другие частицы, и так далее. Образуется конус из частиц который называют ливнем. Такие частицы двигаются со скоростью превышающей скорость света в воздухе, благодаря чему возникает черенковское свечение (открытое впервые Хевисайдом, как впрочем и операционное исчисление для переходных состояний типа ступенька), регистрируемое телескопами. Такая методика позволяет следить за областями неба площадью в сотни квадратных километров.

                    И вот ещё
                    Ученые Принстона получили лазерный луч из воздуха

                    hizone.info/index.html?d=20110131

                    Вот примерно так же только не лазерным лучём а другим более энергетичным и нелинейным. Уравнения
                    ru.wikipedia.org/wiki/%D0%93%D0%B5%D0%BB%D1%8C%D0%BC%D0%B3%D0%BE%D0%BB%D1%8C%D1%86,_%D0%93%D0%B5%D1%80%D0%BC%D0%B0%D0%BD_%D0%9B%D1%8E%D0%B4%D0%B2%D0%B8%D0%B3_%D0%A4%D0%B5%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D0%BD%D0%B4

                    Гельмгольца для гидродинамики в первом приближении могут подойти.

                    Удачи,
                    ignat
                    • 0
                      Кажется, интуиция меня не подвела :)
          • 0
            Рассчитывать на применение каких-то мер к правительству нельзя, ибо это игра по правилам, которые они сами сочиняют на ходу. Особенно на территории бывшего СССР. Впрочем остальные страны не спеша двигаются в ту же сторону. Только объединение гражданского общества может быть работоспособным. А организация подобной неубиваемой сети была бы неплохим стимулом/поводом для объединения.

            Представьте себе, что есть бесплатная неубиваемая физическая сеть, и для того, чтобы подключиться к ней, нужно всего лишь поставить клиента себе на компьютер/смартфон/нетбук/телефон/роутер/холодильник/телевизор/пылесос?

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

            Повод для RIAA срочно протолкнуть закон, запрещающий подобную сеть, а для Михалкова — ввести ещё 1% налога себе.
            • 0
              Я имел в виду как раз не легальные меры по их же правилам, а более ощутимые — например, толпа народа на главной площади страны, или массовая забастовка.

              Такая сеть, это, конечно, классно, но, как вы сам совершенно справедливо заметили, её могут просто запретить. И тогда никакие технологии не спасут, а спасет лишь гражданское общество.
              • 0
                Не совсем так.

                Гражданское общество в мире может случайно удивиться невозможности соединиться с такой же сетью (через, например, Tor) с таким же гражданским обществом в Сибири.

                Хотя, я думаю, эти сети интереснее совсем не приватностью.
            • 0
              Если в сети будут крутиться люди, деньги и интересы, то не очень-то запретишь такую сеть.
              Государственникам вообще неинтересно, когда у людей появляются средства независимого получения информации — вспомним истреблённых, в своё время, свободных радиолюбителей. Сам интернет черезвычайно опасен для правительств — многие чиновники вздохнули бы спокойно, если бы его не стало. Но интернет держится на интересах — на нём, как минимум, зарабатывают. Начнёшь закрывать интернет — получишь всех зависимых и заинтересованных в противники (посмотрим, что будет в Египте). Остаётся прикручивание гаек.
    • 0
      Вовсе не затихли а наоборот Приезжайте в Испанию в Барсилону 16 марта

      ==========================================================
      Wireless Battle Mesh v4
      (16-20 March 2011, Sant Bartomeu del Grau, Spagna Catalogna)
      ==========================================================

      La prossima 'Wireless Battle of the Mesh' avrà luogo da
      mercoledì 16 a domenica 20 Marzo a Sant Bartomeu del Grau
      (80km da Barcellona), Spagna (Catalogna). L'evento ha lo scopo
      di riunire persone da tutt'Europa per mettere alla prova le
      prestazioni di differenti protocolli di routing per reti ad-hoc,
      come Babel, B.A.T.M.A.N., BMX, e OLSR.

      Se sei un appassionato dell'argomento, se sei un attivista
      delle reti comunitarie o ti interessano le reti mesh, devi
      assolutamente venire!

      Maggiori informazioni sull'evento possono essere trovate
      sul sito: battlemesh.org/BattleMeshV4

      Luogo
      ========

      L'evento si terrà al Can Roca turistic resort a Sant Bartomeu del Grau,
      in Catalogna, nell'area dei pre-Pyrenees
      Lluçanès, a circa 80 km da Barcellona.

      Registrazione
      ============

      Sara' possibile registrarsi in diversi hackerspace
      (Fusolab, HSBXL, /tmp/lab, metalab, CCC, ...) e sul sito
      ufficiale dell'evento:

      Удачи,
      ignat99
      • 0
        Спасибо, не знал даже. На весну у меня другие планы, но следить буду внимательно.
  • 0
    >где всё: мой профиль, интерфейс персональной странички и все личные данные хранятся на моём компьютере (с полным правом удаления, если вдруг вздумается)
    А что если вдруг я потеряю всю эту информацию? Как мне её восстановить? Гугол предлагает хранить всё у них, чтобы ни чего не потерялось а вы наоборот, интересно, но всё равно будем ждать реализации на практике.
    • 0
      «локальный» профиль тоже можно отдать в сеть — в виде файла, с ограниченным или закрытым доступом.
    • +1
      хранить профиль можно в нескольких местах — компьютер, телефон. Один сломался другой является резервной копией.
  • 0
    Что с динамическими ресурсами? Например, захочет сайт tvoidruzya.ru распределённо хостится, и в интерфейсе будет такой элемент, как «сейчас на сайте х пользователей» (или даже проще — «всего зарегистрировано х пользователей».

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

    Всего-то осталось сделать только некий аналог P2P DNS.

    Хотя, с моей точки зрения, чем больше проектов — тем интереснее.
    Поделитесь ссылкой на ваши исходники, сайт и т.п. Правда, интересно.
    • 0
      Вопрос динамических ресурсов довольно обсуждался, например здесь. В поиске по странице наберите «динамическ» и гляньте.

      Я бы не сказал, что Диаспора «уже есть». Проект, безусловно хороший, и продвинулись они довольно далеко, но пока релиза не было. Посмотрите еще на owncloud.org Тоже весьма интересно.
  • 0
    Шикарная тема. Даешь распределенные браузеры-веб-сервера в народные массы :)
  • 0
    Откуда клиент узнает о доступных узлах?
    • 0
      Например, так: сначала он может получить с сервера страничку как обычно, а на этой страничке JavaScript уже будет в курсе об узлах и подтянет контент с них AJAX-запросами. Нормальный вариант?
    • 0
      От узлов, с которыми соединение уже есть. По цепочке.
    • 0
      Каждый участник при первом подключении к сети получает от узла-инициализатора минимальный набор адресов и анонсирует себя у них (для того, чтобы самому поскорее стать активным и получать задания). По мере отпадания пиров он подтягивает у соседей недостающие адреса, но не все, а до достижения лимита — узел не будет собирать адреса всех доступных пиров. В процессе опроса пиров также получается информация о целях сети — наборе ПО, источниках актуальных и архивных данных. Это только одна из технологий. Для повышения надёжности сети будут подключаться и другие способы поиска пиров. А вообще это тема для отдельной статьи.
  • 0
    В одном крупном среднеевропейском университете работаю над диссертацией как раз по теме полностью децентрализованного P2P в разрезе IR-систем. С интересом по диагонали просмотрел заметку, к концу оказалось больше вопросов, чем ответов.

    В ближайшие пару дней посмотрю коды (у вас ведь open-source) — интересна реализация проекта. Как мне казалось, все современные P2P (примитивные BitTorrent и Skype не в счет) реализуются на базе multi-agent system (MAS), у вас об этом ни слова нет.

    Как и ниже в комментах немало вопросов о недоступности узлов — вы это вроде как планируете супернодами реализовывать, но тут сразу вопрос о вообще реальной «децентрализованности» встает. Или-таки у вас semi-decentralized?

    К сожалению, надо бежать, вечером просмотрю заметку повнимательнее и загляну в исходники. Но, в любом случае, спасибо за работу ;) Нет ли публикации какой-то (в журнале, например) с описанием технологии?..
    • 0
      Про коды смотрите раздел «Разработка» статьи.
      Да, P2P-идеология основывается на MAS и развивает её, хотя реализация пока отстаёт от идей.
      Публикаций в печатной литературе не было.
  • 0
    Существует ли возможность работы БЕЗ анонимности? Многие веб-сервисы активно персонализируют контент, социальные сети вообще целиком на этом построены.

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

    Анонимность полезно иметь под рукой, но постоянно ходить с пакетом на голове не сильно удобно.
    • 0
      Анонимность предполагает отсутствие возможности вас идентифицировать, но не предполагает отсутствие персонализации. Ведь частичная деанонимизация при персонализации — всего лишь способ вывести вам нужную информацию в соответствующем виде. В нашем случае вы просто анонимно используете источники данных. Для примера — вывод информации о погоде. Когда вы открываете сайт, на котором есть информация о погоде, ваш IP обрабатывается серверным ПО (момент отсутствия анонимности), сверяется по базам, логируется. После этого вы получаете результат. А теперь всё будет по другому — вы анонимно запрашиваете у первого попавшегося узла код генерации странички, содержащий функции анализа вашего местоположения. Код выполняется локально — ваш IP, ваше местоположение и другая информация никуда не идут — они остаются на вашем компьютере. Отправляется только анонимный запрос к другому узлу — какая погода сейчас в нужном городе. А показать всем кто вы такой и где вчера были не трудно.
      • 0
        Уф! Я пока с трудом врубаюсь в эту архитектуру. Я привык думать о веб-приложениях в терминах REST, а тут больше на RPC похоже. Если приспосабливать систему конкретно к веб-сайтам, как свести все эти вызовы функций к CRUD операциям над ресурсами REST?
        • 0
          С помощью RPC всегда можно эмулировать REST. Просто сделайте ограниченное число обработчиков внутренних функций и в них анализируйте переданный HTTP запрос.
          • 0
            Ага! А как будут храниться данные, над которыми я буду делать CRUD-операции?
            • 0
              CRUD удобнее всего делать, имея базу данных. В данный момент база реализована в виде синхронизируемого кеша данных и внешнего SQL коннектора, для хранения постоянных данных. Это очень неправильно с точки зрения пользователя — ему приходится держать полноценный SQL сервер для входа в сеть, но позволяет работать с кодом уже сейчас. В планах пункт под номером 1 — создание автономного хранилища, включённого в базовый пакет.
              • 0
                Ну, это локально, на узле. А вообще? Вот есть распределенный сайт. Он базируется на каком-то наборе данных. Их надо как-то распределенно хранить и находить по запросу клиента. Как это все будет происходить? Как будет гарантироваться целостность такой распределенной базы?
                • 0
                  Описание архитектуры хранения — это ещё одна статья (ставлю в список). В комментарии я даже не буду пытаться это делать.
  • 0
    А если в такую сеть кто-то запустит сайт, код которого делает что-то нехорошее?
    • 0
      Нехорошее для сети или нехорошее для узла?
      • 0
        Для сети.
        • 0
          Атаки на исчерпание ресурсов исключены — узлы откажутся выполнять внешние вызовы съедающее ресурсы (квоты на локальные ресурсы + квоты на сетевые ресурсы по принципу TTL).
          Методы исключения зловредных узлов ещё в разработке.
  • 0
    Старик Платон определенно был прав насчет абсолютных идей. То же самое крутится в голове последние год-полтора.

    Скажите, а как в такой сети разместить банальнейшую RDBMS?
  • 0
    Идея хорошая, но для хакеров крайне привлекательна тоже. Крайне трудно верифицировать данные приходящие от безответственных узлов, хоть 100% которых могут быть оказаться ботнетом. Все ли согласяться ходить на сайт kremlin.ru информация которого проходит через компьютер Навального? Или наоборот :)
    • 0
      Если Навальный предоставит подписанный автором kremlin.ru код и данные, то почему нет? А хакеры были и будут — и сейчас можно полностью анонимизироваться. Другое дело, что количество нехакеров (скрипткидди) может возрасти, но это проблема, скорее, социальная.
    • 0
      Проблема неплохо решается сетями доверия. Типа, если мои друзья говорят, что это спам, то сразу в корзину. Была на хабре недавно статья про работающую подобную сеть для браузеров.
  • –1
    утопия
    • 0
      Что вы считаете принципиально нереализуемым?
      • 0
        Операционная система Plan 9 — безусловна лучше любой *nix ОС, существующей на данный момент. Однако практически никто ею не пользуется. Почему? Потому что существующие системы _достаточно_хороши_.

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

        К тому же мне не совсем ясно, в чем отличие сабжа от TOR. Судя по описанию — все то же самое. Но это так, для кучи.
        • +3
          Проблема подмечена совершенно верно. И автор топика отлично её понимает. Его идея — предоставить распределённые сервисы, которые заинтересуют людей. Получится, или нет — это такой вопрос, пока не попробуешь, не узнаешь.

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

          С моей точки зрения (и судя по коментам, многие её разделяют) подобные проекты востребованы. А это значит, что рано или поздно оно будет реализовано.
  • 0
    Так а что с проектом?
    • 0
      Готовность кода проекта можно посмотреть здесь.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.