Пользователь
0,0
рейтинг
27 декабря 2012 в 17:30

Администрирование → P2P социальная сеть Pandora из песочницы

Pandora – это распределенная (p2p) информационная система, включающая в себя функции социальной сети (аналогично facebook или vkontakte), средства голосового и видео общения (skype), энциклопедии (wikipedia), обмена файлами (torrent), деловой системы (1C), электронного магазина (ebay), реестра законов и стандартов (Консультант+), совместной работы над проектами (git), а также систему голосования и рейтингов (democratia2.ru).

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




Зачем нам сети?


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

В интернете много сервисов. Несмотря на кажущееся разнообразие, основные сервисы достаточно централизованы. Google имеет сервера в определенном месте, миллионы запросов проходят через этот центр и анализируются. Facebook, Vkontakte также имеют свои центры, миллионы сообщений людей проходят через центральный сервер социальной сети и отслеживаются. Skype на сегодня также имеет выделенные сервера, через которые проходит весь трафик. Сети электронной коммерции, разработки проектов, форумы – всё находится на чьих-либо центральных серверах. Вся информация проходит через единые центры и хранится там. Это общеизвестно. В чём проблема?

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

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

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

В трёх словах: центры подвержены утечкам, цензуре и краху.

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

Не слишком ли это, лишь для того чтобы:
1) узнавать новое;
2) общаться с близкими;
3) заключать сделки;
4) совместно разрабатывать проекты;
5) контролировать процессы.
Не слишком ли много порождено сущностей для наших простых задач?
Не слишком ли дорогую цену мы платим?

Структуры сетей


Централизованная социальная сеть



Это традиционные социальные сети. Сервер принадлежит одному владельцу или группе людей. Пользователи полностью доверяют информацию владельцу, хостеру и спецслужбам. Данные хранятся удаленно и централизованно на сервере.
Такие сети подверженны отказу в обслуживании, взлому, массовому сливу данных, актам вандализма и анонимной безответственности.
Если личность напакостила на одном сайте, и её выгнали, она свободно продолжает пакостить на других. Централизованные сети как никогда порождают безответственное общение. Владельцы же для привлечения публики готовы держать двери открытыми.

Частично децентрализованная сеть Diaspora



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

Распределенная (p2p) информационная система Pandorа



Сеть полностью децентрализованная. Невозможно вывести сеть из строя или взять её под контроль. Публичные данные (например, энциклопедические статьи) свободно курсируют между узлами, приватные данные распределяются по узлам, согласно схемам доверия.
Так как обмен данными происходит среди близких, друзей, коллег, партнеров по бизнесу, единомышленников, то вероятность утечек данных третьим лицам почти отсутствует. Фотографии ваших детей попадут только на компьютеры близких. Анекдоты вы будете травить только со своими друзьями. Ваш заказ увидит только продавец. Деловые бумаги разойдутся только партнерам. Над проектами работают только единомышленники.
Общение ответственное и конструктивное. Ответственное, потому что люди заботятся о своей репутации. Конструктивное, потому что никто не хочет поддерживать бесполезные данные, размещая их на своём компьютере.

Рассмотрим поближе устройство Пандора.

Данные четырех уровней


1. Мир – самые очевидные сущности
Данные, понятные подросткам до 12 лет в любой точке планеты.
Объекты: Человек. Сообщество. Страна. Город. Улица. Адрес. Язык. Слово. Вещь. Статья. Файл. Мнение.

Главное окно Pandora



2. Дело – продуктивная и хозяйственная деятельность
Данные, понятные подросткам любой национальности до 18 лет.
Объекты: Товар. Услуга. Работник. Клиент. Склад. Заказ. Сделка. Платеж.



3. Регион – записи регионального значения
Данные, понятные социально-адаптированным гражданам конкретного региона.
Объекты:
Ресурс (месторождение).
Закон — акт, разработанный и утвержденный сообществом.
Проект (социальный). Например, проект нового детского сада.
Постановление (принятое сообществом на основании голосования).
Взнос — платеж в поддержку проекта; если платеж на общие социальные цели, то это налог, если на не утвержденный постановлением проект, то это краудфандинг.
Расход — платеж реализующий проект. Например, оплата за кирпич.
Нарушение — признанный факт социального нарушения.
Наказание — меры, принятые сообществам для компенсации нарушения.
Региональными данными могут быть данные города, района, области или страны.

4. Пандора – данные и сервисы, служащие для работы сети Пандора.
Объекты: Параметр. Ключ. Подпись. Узел. Патч. Событие. Хранилище.



Сервисы


Авторизация – это активация ключа пользователя паролем. После авторизации доступны функции подписи и шифрования.

Слушание – запуск программы на прием входящих соединений.

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

Поиск – одинарный опрос узлов в поисках конкретного типа записи. Например поиск мирового объекта «Человек» по имени и фамилии. При поиске, в отличие от охоты, задается большая глубина опроса сетевого дерева по доверенным веткам.

Идентификация записей (объектов)


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

Например, панхэш человека выглядит следующей последовательностью:
[type/lang:FirstName/LastName/BirthDate/BirthCity/FatherFN/MotherFN]
Панхэш может записываться в человеко читаемом виде:
[person/ru: Линус/Торвальдс/28.12.1969/Хельсинки/Нильс/Анна]
Панхэш человека кодируется по следующей формуле:
FLDCAM, 6/10/3/3/2/2 = 16+6+4 = 22+4 = 26 байт + 2 байта (тип и язык)
или примерный вид в 16-ричной кодировке:
[0108: e6fb7d1b01dc ebb27cf540a56f05fd98 d343e3 5de465 f547 72fd]

Здесь:
01 – тип записи «персона»
08 – русский язык
e6fb7d1b01dc, ebb27cf540a56f05fd98, f547 и 72fd – усеченный md5 от «Линус» и «Торвальдс», «Нильс» и «Анна»
d343e3 – закодированная в 3 байта дата
5de465 – усеченный панхэш записи город «Хельсинки» на русском языке.

Некоторые поля могут быть пропущены (пустые, т.е. не заполненные), в этом случае составные хеши заполняются нулями. Например, если заданы только имя, фамилия и дата рождения (FLD=19 байт), то панхэш будет выглядеть примерно так:
[0108 e6fb7d1b01dc ebb27cf540a56f05fd98 d343e3 000000 0000 0000]
концевые нули можно не указывать:
[0108 e6fb7d1b01dc ebb27cf540a56f05fd98 d343e3]
Сокращенный панхэш в человеко читаемом виде может выглядеть так:
[персона: Линус/Торвальдс]

Даже если в сети одна и та же запись была введена дважды (трижды и т.д.), её панхэш будет абсолютно одинаковым, и такая запись будет идентифицироваться как одна и та же.

Неполные записи (панхэши которых имеют нулевые пропуски) могут соотносится с более полными (у которых панхэши имеют меньше пропусков). Такое соотношение называется подобие, и настраивается дополнительно.

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

Дочерние записи, порожденные от других типов (например, «сотрудник» от «персона») имеют удлиненный панхэш относительно базового типа, удлиненный на добавленные поля. Кроме того, порожденные записи не содержат в себе данные родительский полей. Родительские данные хранятся в записи базового типа, а в потомке хранится только ссылка на панхэш родителя, плюс хэши дополнительных полей. Например, если вы заводите сотрудника «Иван Иванов, менеджер», то создаются две записи: персона Иван Иванов и сотрудник с панхэшем Ивана Иванова и дополнительное поле – должность. Панхэш сотрудника будет представлять собой панхэш персоны, плюс хэш поля «должность». Панхэш сотрудника может выглядеть так:
[сотрудник: Иван/Иванов/////менеджер]

Записи представлены в Пандоре в виде объектов. К дочерним объектам применимы все методы родителя. Например, если ищется человек «Иван Иванов», то он будет найден, даже если вводился только на деловом уровне в виде сотрудника. С другой стороны, при начале трудовой деятельности не придется вводить данные человека, если они существуют на мировом уровне.

Такая иерархия позволяет: 1) вводить данные только один раз, 2) экономить дисковое пространство, 3) иметь сквозную единую идентификацию объектов, 4) применять методы родительских классов.

Пандора вычисляет бинарные (байтовые) панхэши, и в своей работе оперирует ими при идентификации и поиске объектов.

Возникновение записей


Существует всего два способа, какими запись попадает в вашу Пандору:
1) вы сами ввели запись;
2) запись пришла к вам по сети.

Каждая запись помечается панхэшем создателя.

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

Поддержка записей


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

Поддержка чем-то напоминает «лайк» в социальной сети. Но когда вы ставите «лайк», вы ничем по сути не помогаете записи. В Пандоре поддержка имеет физическую суть.

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

После загрузки чужие записи хранятся некоторое заданное время (например, для типа «персона» по умолчанию задано 3 дня), после чего записи, если им не была оказана поддержка или доверие автоматически удаляются с вашего узла.

Также вы можете настроить автоподдержку, т.е. автоматическое включение флага «поддерживаю» для записей по определенному условию. Например, вы можете указать, что всегда поддерживаете статьи Ивана Иванова, или анкеты своих друзей.

Доверенные записи


Доверие — это цифровое подписывание записи.
Например, если вы подписали анкету друга, вы гарантируете, что этот человек настоящий. Когда вы подписываете статью, вы подтверждаете истинность сведений, которые в ней содержатся. Когда вы оказываете «доверие» договору с вписанным своим именем, вы фактически принимаете этот договор.

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

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

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

Публичные записи


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

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

Неинтересные записи, без поддержки и доверия быстро «угасают». В Пандоре происходит настоящая борьба записей за поддержку и доверие.

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

Изменение записей


Вы можете изменить свою запись или чужую. В любом случае при изменении записи создается "патч", которые распространяется среди заинтересованных узлов. Может получиться так, что первоначальная запись создана одним человеком, а затем несколько других внесли изменения. Участники Пандоры могут поддерживать патчи, оказывать им доверие и публиковать, т.е. патчи обладают всеми свойствами записи.

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

Связи


Связь – это запись, показывающее отношение между двумя записями; содержит следующие поля:
1) панхэш первой записи
2) панхэш второй записи
3) тип связи (1 байт)

На текущий момент зарезервированы следующие типы связей, код означает «первая запись имеет следующее отношение ко второй»:
0 – равно
1 – подобие (синоним)
2 – антипод (антоним)
3 – породил
4 – входит в состав
5 – следит за
6 – игнорирует
7..254 — другое
255 — неопределенная связь

Примеры связей:
[персона: Линус/Торвальдс] 0 [персона: Линус/Торвальдс/28.12.1969]
означает, что любой Линус Торвальдс скорее всего тот самый.
[слово: классное] 1 [слово: клёвое]
слова «классное» и «клёвое» очень похожи
[слово: горячее] 2 [слово: холодное]
«горячее» антоним слову «холодное»
[персона: Линус/Торвальдс] 3 [персона: Патриция/Торвальдс]
Линус родитель Патриции
[персона: Линус/Торвальдс] 4 [сообщество: Разработчики ядра Linux]
Линус входит в состав сообщества
[сообщество: Жильцы дома №98] 5 [проект: Строительство детсада №7]
Жильцы дома следят за разработкой проекта садика в их дворе
[персона: Геннадий/Редискин] 6 [статья:P2P социальная сеть Pandora]
Геннадий равнодушен к некоторой статье, и не хочет больше получать эту запись при обмене с любыми узлами.

Связи могут использоваться в различных случаях, таких как: определение состава сообщества, выявление синонимов, причинно-следственные связи, работа «охотника» и т.д. Связям, как и другим записям, также может быть оказана поддержка и доверие.

Мнения


Каждая запись может быть прокомментирована и оценена участниками Пандоры. Для этого создается специальная запись — мнение. Мнение содержит панхэш комментируемого объекта, панхэш создателя мнения, оценку от -127..+127 (или 0, если нейтрально), текст комментария (или пусто, если только оценка) и время создания мнения.

Мнение может комментировать другое мнение. Так образуются ветки дискуссии. Если мнение состоит только из оценки, то оно прибавляет, или убавляет рейтинг записи, к которой относится, но не отображается в ветке. Если мнение содержит еще и текст, то кроме влияния на рейтинг записи, оно еще отображается в ветке дискуссии.

Слушание


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

Добавление узлов


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

Охота


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

Подписки


Подписки определяют данные какого типа необходимо запрашивать у заданных сообществ, людей или узлов. Например, вы можете указать, чтобы ваша Пандора запрашивала новые фотографии группы «Мои друзья», или новые товары у заданной компании.
Подписки также регулируются связями типа 5 («следит за»).

Рыбалка


Рыбалка – это механизм запроса охотником у слушателя соединения с третьим узлом в случае, когда охотник не может соединиться с запрашиваемым напрямую, например, в случае нахождения третьего узла за NAT.
В зависимости от того, находятся третий узел на связи, или нет, является сам охотник публичным слушателем или нет, рыбалка выглядит следующим образом.
Например, A запрашивает у слушателя B проброс на узел C.
— A запрашивает у B рыбалку узла C
— если C подключен к B, узел B сообщает узлу C что его ищет A
— если C отключен, но слушает, к нему подключается узел B
— если C отключен и не слушает, то B запрашивает A: будет ждать (10 мин макс) или периодически подключаться (каждую 1 мин)?
— если A ждет — он висячий рыбак
— если A периодически опрашивает — он прыгающий рыбак
— если C подключился к B, то B сообщает C, что на него идет рыбалка от A, далее одно из трёх:
— C подключается к узлу A напрямую
— начинается разговор между A и C через B, если еще A висит на B
— узел B даёт узлу C время на встречную висячую рыбалку узла A (10 минут), если A прыгающий
— если прыгающий A появился за это время, их соединяют, если нет — оба рыбака снимаются с рыбалки
— рыбаки снимаются с рыбалки также по таймауту (10 мин)

Дополнительно:
— на узле (B) задается максимальное число заявок на рыбалку, например 500
— кроме того задается максимальное число подключенных рыбаков, например 20
— в заявке на рыбалку может фигурировать не только узел, но и панхеш человека или ключа
— узел B может задавать ограничения на объем трафика в ед. времени или запретить медиа-обмен.

Сообщения и звонки


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



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

Схема работы узла — циркуляция данных




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

Обработка данных соединения




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

Техническая реализация


При построении Пандоры выбирались кросс платформенные, популярные, ясные и хорошо документированные компоненты.
Вот текущий список: ruby, gtk, sqlite, openssl, gstreamer.

Установка программы


Есть три способа:

1. Воспользуйтесь дистрибутивами и инструкцией по первому запуску. Это самый быстрый и простой способ.

2. Скачайте zip-архив и установите согласно вложенному README.TXT.

3. Воспользуйтесь git.

1) установите git в Ubuntu:

sudo apt-get -y install git

(в Windows установите «Git-x.x.x...exe» отсюда: msysgit.github.io)

2) создайте пустой каталог «Pandora», оставаясь в нем скачайте Pandora используя git:

mkdir /home/user/Pandora
cd /home/user/Pandora
git clone --depth=2 https://github.com/Novator/Pandora.git

3) сделайте скрипт Pandora.sh запускамым (только для Ubuntu):

chmod +x ./pandora.sh

4) установите дополнительные пакеты для Ubuntu:

sudo ./pandora.sh --init

или вручную:

sudo apt-get -y install ruby1.9.3 ruby-sqlite3 ruby-gtk2 ruby-gstreamer \
  gstreamer0.10-ffmpeg gstreamer0.10-x openssl libopenssl-ruby

Для Windows придётся сначала установить Ruby (версия не ниже 1.9), а потом устанавливать дополнительные ruby-пакеты через gem install:

gem install sqlite3 gtk2
gem install openssl gstreamer

5. Запуск программы

в Ubuntu/Linux:

./pandora.sh

В Windows запускайте bat-файл:

.\pandora.bat

Стойте же!




Описанный выше функционал еще не работает!
Несколько лет назад я сел писать свободную бухгалтерию. Неоднократно я менял название и концепцию системы. В итоге пришел к тому, что описано в этой статье. Код пишу урывками, в свободное время. Работы еще очень много, а реальная жизнь засасывает и постоянно отвлекает от программирования… с каждым днем все больше и больше. Испугавшись, что я так и не успею реализовать проект, решил опубликовать хотя бы то, что есть. Хотя бы озвучить идею.
Возможно, мне удастся довести Пандору до какого-либо рабочего состояния. Но возможно, упавшее знамя придется подхватить более молодым.

Другие подобные системы


Пандора не первая и не единственная социальная пиринговая сеть.
Существует несколько интересных проектов:
p2pframework.com/?page_id=9&lang=en
gitorious.org/social-p2p
blogs.cs.st-andrews.ac.uk/peerbook
http://www.st-andrews.ac.uk/news/archive/2010/title,53046,en.php

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

Возможное будущее


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

Я как бы задался вопросом: «Почему мы, граждане, бежим за чиновниками? Глядим в рот чиновникам, подстраиваемся под них, и ждем от них решений наших проблем? Почему бы чиновникам не бежать за нами?» Спасение утопающих – дело рук самих утопающих.

У общества должен быть инструмент, пользуясь которым, граждане смогут создавать проекты, совместно дорабатывать их и оказывать им доверие.
Решения должны приниматься авторитетными гражданами, специалистами в своих отраслях, которым общество оказало доверие.
Государственные службы из ленивого, ненасытного и карательного органа должны превратиться в немых исполнителей народной воли.



Продолжение следует.

UPD 01.01.2013. Добавлены главы «Связи», «Рыбалка», исправлены мелкие опечатки.
UPD 13.12.2014. Обновлены ссылки на дистрибутивы. Уточнена установка.
Michael Galyuk @robux
карма
9,2
рейтинг 0,0
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

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

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

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

  • +42
    Идея напоминает фидонет.
    Векторный гипертекстовый.
    • –4
    • +1
      Если сравнивать, fidonet больше похож на Diaspora (как она изображена на картинке в статье). В fidonet нет p2p как такового (т.е. он возможен, но на практике это почти не использовалось, по многим причинам).
    • +3
      Фидонет основан на технологии FTN, где есть единая «иерархическая адресация (зоны, сети, узлы и поинты), что предполагает наличие в такой сети административной иерархии (координаторов разных уровней).» В Пандоре не предполагается никакой другой иерархии, кроме той, которую создал пользователь, выстраивая свои ветки доверия.

      Другое отличие — фидонет строится на разнородных приложениях, которые нужно взаимоувязывать. Пандора, в идеале представляет собой одну p2p-программу, наподобе aMule или BitTorrent, которая после запуска сама встраивается в сеть и сразу «из коробки» предоставляет пользователю удобный GUI.

      Скепсис с отсылкой к Мицголу понятен. В истории много не реализованных проектов. Но кое-какие иногда и взлетают.
      • +3
        Одна p2p-программа — это тот же монополизм, что и «один сервер». Очевидно, что если вы хотите свободы, то должен быть открытый протокол, а уж как его кто хочет реализовывать — монолитным приложением или тулчейном, его личное дело.
        • +6
          Пандора с открытым кодом под свободной планетарной лицензией (GNU GPL v2), соответственно, вся архитектура является открытой и свободной. В том числе протокол. К слову, и протокол, и саму Пандору можно развивать средствами самой Пандоры.

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

          О кстати, совсем забыл написать в статье о протоколе. Протокол сейчас пишется байтовым, чтобы минимизировать трафик. Но его структура проектируется такой, чтобы можно было «развернуть» его в xml (привет, jabber!). В любом случае и байтовый и xml-протокол можно сделать расширяемым by design.
          • +2
            А кто сказал, что сходство с фидонетом — это плохо?
            Сама концепция очень хороша.
            Искренне желаю удачи в вашем проекте, надеюсь он взлетит.
          • +3
            Не надо путать открытый код и открытый (стандартный) протокол.

            Именно вы агитируете за одну программу, а не множество программ на общем протоколе.
          • –1
            А нельзя как-нибудь галактическую лицензию получить? А то обидно как-то…
            • 0
              Галактика пока вне пределов моего обзора, а планета в моём видении.
              А вообще, гениальный комментарий, все три месяца придумывал?
              В чём смысл твоего сарказма?
              • –1
                В конечности скорости света и больших задержках при общении с другими планетами.
        • 0
          [написал то что уже ответили выше]
    • –5
      Блин это моя нереализованная идея. Причем придуманная года эдак три назад. Никто из друзей программистов не поддержал, посчитали фигней.
      • 0
        а вот оказалась не фигня…
        мой друг, программист лет так пять назад придумал продавать программы программистов: заленился реализоввывать, а потом появился Андроид Маркет…
        а так, мог бы стаь большой сервис…
      • –2
        лишнее доказательство того, что сама по себе идея ничего не стоит
        • +2
          речь шла не о данной конкретной идее (или ещё какой-то конкретной),
          а вообще о том, что идея сама по себе ничего не стоит :)
    • 0
      Подумал точно о том же, когда прочитал статью.
  • НЛО прилетело и опубликовало эту надпись здесь
    • +39
      Это рай (с таким же уровнем аргументации)
      • +1
        Это не ад и не рай, не коммунизм и капитализм, это следующая ступень развития материи:

        атомы — молекулы — клетки — мозг — Pandora (планетарный разум)

        С какой стороны на это не посмотри это "ящик Пандоры", волшебный ларец со всеми бедами и надеждами. Дождались. Теперь плагины нужно писать :)
        • +5
          Ты курил явно не то же самое что первые два комментатора в этой ветке 0_o.
    • +12
      ад это основной файл программы, который состоит из 3000 строк (https://github.com/Novator/Pandora/blob/master/pandora.rb), написанный в процедурном стиле.
      пока автор его не перепишет, в этот проект никто не сунется. ИМХО
      • +1
        эта история напоминает мне проект PHPDaemon…
        более года или двух пришлось автору понять (тогда ему было еще 16 лет), что код пишется в первую очередь для человека, а не для машины.
        И пока он код не привел в порядок, проект был УГ, а теперь — один из наиболее популярных в использовании…
      • 0
        За многие годы написания прикладного софта у меня выработался следующий стиль разработки:
        1) сначала пишу пользоваельский интерфейс, вылизываю его чтобы вырисовалась концепция всей программы — т.е. окна, кнопки, таблицы, списки, и даже документация;
        2) потом начинаю реализовывать функционал — один пункт меню заработал, другой, третий и т.д. попутно дорабатываю интерфейс, если где-то придумал улучшение;
        3) и только в третью очередь я начинаю «причесывать» код, растаскивать его по модулям, оптимизировать скорость, потребление памяти, читаемость объектов и их методов.

        Итак:
        — интерфейс
        — функционал
        — эстетика кода.

        Но до этого все мои проекты были в основном написаны только мною.
        Никогда не приходилось участвовать (как мейнтейнеру) в разработке проектов. Патчи присылал в чужие проекты, но сам публичные проекты не мейнтейнерил.

        Поэтому возможно вы и правы, стоит уже сейчас уделить время эстетике кода. Но пока не заработают первые сетевые функции, и пока не появятся первые программисты, присылающие патчи, я этого делать не буду.
        • +3
          Замкнутый круг — такие программисты не появятся, пока код не будет нормально распилен на модули.
          Чуть больше структуры и абстракции — и я начну присылать патчи.
          • +1
            Ок, постараюсь «причесать» код в ближайшее время.
            И кстати, я также хочу дописать Руководство, добавив в него главы для программистов, чтобы новичкам было легче включиться в работу.
      • 0
        ад это основной файл программы,
        написанный в… стиле

        «Ад — это осовной файл программы».
        Чтобы учить эстетике, нужно самому её показывать.

        пока автор его не перепишет

        Пока автор комментария этого не поймет, вряд ли кто-то будет всерьёз воспринимать его критику.
        • 0
          Да тут нечего показывать. Есть «совершенный код» мак-коннела и стайл гайды по конкретным языкам.
          С момента написания статьи прошло больше полугода. Файл вырос до 11000 строк, контрибютор только автор. Успех. :)
          • 0
            Моё мнение вряд ли для тебя авторитетно, поэтому привожу цитаты.

            «Когда сталкивается теория и практика, побеждает практика. Всегда.» /Торвальдс/

            «Теория — это когда все всё знают, но ничего не работает.
            Практика — это когда всё работает, но никто не знает почему.» /Эйншейн/

            С некоторых пор я абсолютно пренебрежительно отношусь к различного рода критикам, аналитикам, «экспертам», всем тем, кто сам, ничего не создавая, берётся поучать других.
            • 0
              пренебрежительно отношусь к различного рода критикам, аналитикам, «экспертам»

              Вы ошибаетесь. Не нужно мнить себя пупом земли, лучше спуститься на землю и прислушаться к мнению других людей. И приводить цитаты Торвальдса, Эйнштейна, Форда (про повозки и чужое мнение) тоже не надо, потому что это цитаты про ИХ жизнь и ИХ опыт. Нельзя слепо руководствоваться цитатами.

              И, да:
              Чтобы учить эстетике, нужно самому её показывать.
              … пренебрежительно отношусь к … тем, кто сам, ничего не создавая, берётся поучать других.

              Сперва добейся в терминальной стадии.

              И ещё:
              — интерфейс
              — функционал
              — эстетика кода.

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

              Ну ладно, код, ладно интерфейс… Ок, раз вам не нужны лишние контрибьюторы, то шут с ним.
              А где юнит-тесты? Программа же будет падать по каждому чиху. И по мере разрастания кода вы будете умирать в расследовании регрессий и недельного сидения в отладчике. Тем более, если вы надеетесь на рефакторинг, результат которого без тестов будет просто непредсказуем.

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

              У вашего кода много проблем, которые если не решить утянут вас далеко вниз. И относитесь к критике адекватно, одна голова хорошо, а десяток — лучше.

              UPD: А насчёт теории и практики: Теория — это цемент, практика — кирпичи. Сможет ли ваш дом выстоять без цемента? А дом из чистого цемента построите? Они неотделимы.
              • –2
                Вы ошибаетесь. Не нужно мнить себя пупом земли, лучше спуститься на землю и прислушаться к мнению взрослых дяденек. А советы будете давать, когда хотя бы что-то создадите в своей жизни. Такие дела.
                • +1
                  Типа, МакКоннел — недостаточно взрослый дяденька?

                  Так что вы бы сами прислушались к тому, что другим говорите.
                  • –2
                    Что сказать-то хотел?
                    • 0
                      Что не стоит советовать другим прислушаться к чьему-то мнению, если сами вы прислушиваться не готовы. Нелогично.
                      • 0
                        Согласен: не стоит советовать другим прислушаться к чьему-то мнению, если сами вы прислушиваться не готовы. Логично.
                        • 0
                          Почему вы так отказываетесь читать техническую литературу? Руби вы тоже по цитатам Торвальдса изучали? Вам сообщают о вашей некомпетентности, зачем же вы так упираетесь?
                          Проект-то хороший, идея, заложенная в нем достаточно интересна, но реализация чудовищна во всех смыслах.
                          • –1
                            19-летний мальчик сообщает 35-летнему мужику о его некомпетентности? ) ну-ну, давай сообщай. и потом сразу за уроки.
                            • 0
                              Конечно буду. Ваш код не зависит от моего возраста. Где же работал 35-летний мужик все эти 35 лет, что его код принимали в продакшен? Вы за 35 лет (ок, за 20, если вы говорите, что писали еще до моего рождения :) ) не смогли научиться писать нормальные программы.
                              Хм… интересно будет посмотреть на Coding Style Guidelines предприятия, на котором вы работали :)

                              P.S. Лучше не обманывайте, вы не работали программистом, это видно невооруженным глазом, иначе даже через пару месяцев работы вы бы писали совсем по-другому.
                              • –1
                                Ну что ж, посмотрим какой код ты будешь писать :)
                      • 0
                        Думаю, дальнейшие разговоры бессмысленны, субъект не улавливает того, что мы ему толкуем. Или он тролль. Отказывается читать умные книги, предпочитает цитаты.
                        • –1
                          Конечно бесмысленны. Ты еще не родился, а я уже программировал. Чему у тебя можно научиться? Так что это я тебя буду жизни учить.
                        • –1
                          Мне нужны люди, которые будут писать код, делать переводы и вносить пожертвования. То есть люди, которые помогают проекту своими конструктивными действиями, а не пустой пафосной трескотнёй.

                          Все те, кто собирается учить меня жизни (тем более в столь юном возрасте) безо всякого опыта ведения крупных проектов, будут отправлены стройными рядями в известном направлении.
                          • 0
                            Ну да, в интернете-то легко говорить о чужом опыте ведения крупных проектов.
                            • –1
                              Поэтому вы и говорите. На большее-то все равно не способны.
                              • +1
                                О том, на что я способен, к счастью, прекрасно говорит мое резюме, поэтому мне не надо ссылаться на возраст или какие-то другие вещи, слабо имеющие отношение к реальному опыту (равно как и вообще переходить на личности).
                                • –1
                                  Резюме ни о чем не говорит.
                                  Говорят реализованные проекты.
                                  • –1

                                    Ну так в резюме они и указаны.

                                    • 0
                                      Ага. «Смерть кощеева в яйце, а яйцо то на конце. Анатомию ты что ли не учил в своём дворце»…

                                      Иди дядя Миша ищи резюме, скачивай и вычитывай, что у него за проекты. А потом ищи эти проекты в инете и осознай, что же тебе втюхивают.
                                      • 0

                                        Ну если вам стало интересно что-то узнать о человеке, то да, так и происходит (например, при рекрутинге).

                                        • 0
                                          Зачем я буду что-то искать?
                                          Уже ясно, что ты — громыхающая пустышка.
                                          И бремя доказательства обратного лежит на тебе.
                                          • 0
                                            И бремя доказательства обратного лежит на тебе.


                                            Внезапно, нет. Чайник Рассела, вот это вот всё.
                                            Уже ясно, что ты — громыхающая пустышка.


                                            Ваше утверждение, вот вы и доказывайте. Впрочем, если утверждение состоит в том, что лично вам ясно, то можете не доказывать, потому что (а) очевидно и (б) все равно не имеет никакого значения.
  • 0
    А меня вот заинтересовал путь, которым изменялась концепция — от свободной бухгалтерии до пиринговой метосистемы.
    Наверняка же ещё какие-то стадии были по пути?

    И да, это реальный Торвальдс на том конце провода у Вас был?
    • +10
      Издавна следил за проектами свободной бугхалтерии 1L, Ананас и т.д.
      Например, придумали в Минфине или Налоговой новую форму Счет-фактуры или Платежки — никто не хочет тратить своё время на то, чтобы ввести эту форму, или описать новую логику её расчета. Людям чужды «порывы» чиновников менять формы и логику каждые 3 месяца.

      Вторая волна рассуждений пришла ко мне со стороны интеграции бухгалтерии с ERP и CRM системами, с системами электронной коммерции (с интернет-магазинами, в частности).

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

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

      Однажды я спросил налогового инспектора: «Зачем вы все время дёргаете формы?!».
      «Да мы сами уже не рады, пойми — ЭТО спускают сверху. Мы сами уже вешаемся!». После того я общался с сотрудниками многих госслужб, ПФР, ФСС — везде одна и та же картина, аппарат плодит и плодит ненужные сущности. Среди потока этой «деятельности» мы уже забыли для чего вообще все это создается.

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

      Что касается Торвальдса, то это шутка, фейк, поздравление с ДР — пока у меня нет повода начать с ним разговор.
      • +2
        Лучше выложите протокол обмена, передачи и тд, тогда будет гораздо легче написать ее.
        • –1
          У меня опыт определяет сознание. А не наоборот.
          Пока не будет написан работающий прототип (причем неважно, мною написанный, или кем-то еще), выкладывание любого абстрактного протокола ничего не даст. Есть код — есть идея, переросшая в концепцию. Нет кода — пустой разговор.

          Это как спор Торвальдса и Таненбаума. Спор практика и теоретика. Я практик.
          «К черту болтовню — покажите код!» © Торвальдс.

          Сейчас у меня оформлена только предыдущая версия протокола (синхронная), но её нет смысла показывать. Новая асинхронная схема еще в стадии разработки. Как только реализую хотя бы одну функцию (я думаю, это будет обмен сообщениями) — сразу же опубликую спецификацию.
          • +4
            > Пока не будет написан работающий прототип (причем неважно, мною написанный, или кем-то еще), выкладывание любого абстрактного протокола ничего не даст.

            На основании чего вы собираетесь писать прототип, если даже протокола нет?
            • 0
              Протокол есть, но это черновик, «идея на бумажке».
              Пока идея не реализована, она не жизнеспособна.
              Если идея заработает — обязательно опубликую, обещаю.
              • +1
                Может, протокол тоже выложить в обсуждение? Или Вы полагаетесь исключительно на свой опыт?
                Зачем Вам тогда чья-то помощь, если Вы отказываетесь делиться разработкой архитектуры?
                • 0
                  Выложил файл, которым пользовался для написания протокола:
                  github.com/Novator/Pandora/blob/master/doc/transport.xml

                  В своё время я был разработчиком системы Клиент-банк. А потом еще разработчиком GUI-программы, заливающей товары от удаленных менеджеров продаж в интернет-магазин. Разработать новый протокол — это как выпить бутылку пива (но на отладку уходят недели!). Главное понимать, что от него требуется.

                  В конце концов для меня все протоколы чем-то похожи. Один спрашивает, другой отвечает. Разница только в том, что есть блокируемое синхронное общение (вопрошатель ждет, пока ему ответят), а есть неблокируемое — каждый кидает запросы и ловит ответы в двух разных циклах.

                  Для синхронного не нужно хранить историю запросов (точнее нужно, но 1-2 последних запроса). Для асинхронного обмена приходится запоминать очереди отправленных запросов до тех пор, пока не придут ответы на них или пока запросы не «протухнут» по времени. Также приходится нумеровать запросы, и пытаться разгребать их по порядку.
                  • 0
                    Разработать новый протокол — это как выпить бутылку пива

                    Понятно. Свой велосипед — дело святое.
      • +4
        Например, придумали в Минфине или Налоговой новую форму Счет-фактуры или Платежки — никто не хочет тратить своё время на то, чтобы ввести эту форму, или описать новую логику её расчета. Людям чужды «порывы» чиновников менять формы и логику каждые 3 месяца.

        По тому, что это полный маразм. Надо просто убить этих чиновников.

        У нас в Европе можно рисовать и фактуры и платёжки и многое другое (на некоторые формы отчётности таки есть стандарт, но он меняется раз в год от силы) как угодно, главное чтобы присутствовала и читалась вся положенная законом к указанию информация. Рисуют кто во что горазд: кто-то псевдографикой из плюсиков (среди мелких предпринимателей и бухгалтеров до сих пор в ходу старые досовские учётные программы по тому, что в плане выставления фактур кроме ставок НДС и т.п. ничего не меняется), кто-то в Ворде, кто-то верстает стильные серьёзные макеты, кто-то генерит средствами CRM, кто-то покупает в канцтоварах пачки бланков со встроенной копиркой и заполняет от руки. Существует туча сайтов онлайн-бухкниг (для учёта и печати фактур), платных и бесплатных, с разными шаблонами-рюшечками на выбор.

        Что за бардак, скажете вы? А как же стандартизация-унификация?

        А не тут-то было: на деле все такие фактуры читаются просто и понятно, никаких проблем не возникает. А вот к российской стандартизации возникает вопрос: что толку от стандарта, если он меняется каждые несколько месяцев, а то и чаще?
        • +1
          У нас это бизнес.
          Чиновники плодят формы, этим объясняют своё существование — зарплата.
          Консультант+ и Гарант обновляют и рассылают базы — прибыль.
          1С выпускает новые конфигурации и формы — прибыль.
          Бифит обновляет банковские системы — прибыль.
          И куча-куча-куча всяких «тензоров», «сбисов», «криптопро», «парусов», «бестов», «випнетов», мелких ручных ИТ-фирмочек — все не перечислить.
          Иногда кажется что эти фирмы, особенно флагманы, и задают тон изменениям. А прибыль делят с чиновниками, проталкивающими изменения.

          Вокруг дёргания форм построена такая огромная кормушка, что иногда кажется что её уже не разогнать. Бизнес просто захлёбывается в этом. Граждане захлёбываются. Рядовые чиновники уже ноют. Но нет… машина крутится и крутится, звенит монета.
  • +2
    Описанный выше функционал еще не работает!

    Весь? Или что-то работает? Если да, то что именно?
    • +1
      Сейчас я больше сосредоточен на изучении технических моментов и выработке детальной концепции.

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

      Концепция же переосмысливается по ходу написания. Что-то удается реализовать как было задумано, что-то приходится переделывать. Наример, изначально я написал синхронный обмен между «охотником» и «слушателем». При нем охотник делал запросы, а слушатель отвечал. Потом они должны были меняться ролями — слушатель делал запросы, охотник отвечал. Но для передачи мгновенных данных (быстрое сообщение, звонок, поисковый запрос) пришлось полностью переделывать обмен на асинхронный. При нем охотник и слушатель шлют запросы в меру необходимости, согласно собственным приоритетам и механизму сбора данных. В момент передачи мгновенных данных диалог обмена записями как бы приостанавливается.

      Для пользователя ответ такой: частично работает только интерфейс ввода записей. Обмен не реализован. Криптография не реализована.

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

      В конце концов, даже если дело не выгорит — сформировать концепцию, это уже половина дела.
      • +9
        Соло этот проект неподъемен, имхо.
        На вашем месте я бы сосредоточился на ядре (обмен данными между пирами, выбор транспорта и шифрования в зависимости от типа данных etc.) и протоколе обмена данными между ядром и модулями. Ну и пример модуля — инстант мессаджинг какой-нибудь, персональные странички… А все остальное — бухгалтерию, голосования, видео — отдал бы на откуп сообществу.
        Кстати, обмен данными между ядром и модулями я сделал бы на сокетах — тогда снимается привязка к руби.
  • +3
    Как всё запутанно.
    • 0
      Всё запутанно настолько, насколько это минимально возможно.
      «Сделай настолько просто, насколько это возможно, но не проще.» © А. Эйнштейн.
      • –2
        «Может быть вы правы, но мне по… й что вы сказали.» © интернет
    • +1
      Вообще то все это выглядит достаточно просто. Начиная статью я даже не ожидал, что это можно сделать так просто.
  • +4
    Почему многие полагают, что p2p — это свобода от действий государств? p2p-сети можно пробовать заблокировать (отследив в трафике нужные сигнатуры) или перехватить данные с помощью Man in the Middle на уровне провайдеров, можно зафлудить сеть (пропускная способность уменьшится, появится множество «левых» данных), можно банально узнать адреса узлов сети и наведаться с проверкой! Если что-то не получается контролировать, то это можно попробовать уничтожить.
    Я ничего не имею против новой p2p сети, но пожалуйста, не надо представлять ее как панацею от цензуры.
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Ничего. p2p в плане лекарства от цензуры весьма хороший инструмент, но он далеко не так идеален, как его расписывают в этом плане.
      • +1
        Фургон с сервером и wi-fi сетью, колесящий по городу и передающий информацию между узлами. С узлов по той же сети поступает на конечных пользователей.
        Вся сеть зашифрована, а ключи приносят тренированные кошки на ошейниках.

        Рай параноика
        • +5
          Для рая параноика недостаточно криптографии; должна быть ещё и стеганография.

          Как-то так: беспроводные ключи носят тренированные кошки, которым ключи имплантированы под кожу, и кошек никто ни в чём не подозревает.

          Участник сети вышел на двор выбить ковёр — а в ковре металлической нитью выткан твердотельный беспроводной маршрутизатор, и в этот момент начинается пакетная беспроводная передача данных внутри квадрата из четырёх домов, окружающих двор.
    • +2
      Почему многие полагают, что p2p — это свобода от действий государств?

      Проблема не только в «государстве». Проблема еще в надежности данных.

      p2p-сети можно пробовать заблокировать

      p2p-сети можно заблокировать только в том случае, если они работают внутри централизованных сетей, таких как интернет. Уже сегодня радиолюбители создают свои свободные радио mesh-сети с саморганизующейся маршрутизацией наподобе netsukoku.

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

      Физическая сеть в будущем должна выйти из-под любого контроля. И Пандора прекрасно «ляжет» на такую сеть.

      Что касается атаки «человек посередине», то он нее можно уйти распаралелливая маршрутизацию данных. Т.е. например, часть сообщения идет через одни узлы, часть — через другие. На узле приемнике данные «сшиваются». С применением «лукового» шифрования эта схема уже сегодня надежно работает в некоторых пиринговых сетях. В этом случае «человек», получив только часть данных, остается «с носом». Но для Пандоры имхо пока рано об этом говорить.
      • 0
        Уже сегодня радиолюбители создают свои свободные радио mesh-сети с саморганизующейся маршрутизацией наподобе netsukoku.
        Не netsukoku, а netsukuku (ネツクク).
        • 0
          Хм. Похоже, сайт, на который я дал ссылку, закиберсквоттили.

          Тогда вот статья, например.
  • –1
    L2P с блэкджеком.
  • –4
    Не взлетит.
  • +13
    Полное отсутствие няшненького интерфейса, не видать Вам миллионов школьников
    • –1
      Во-первых, конструктивное сообщество переживет остутствие «миллиона школьников».
      Во-вторых, покажи школьнику чатик, видео-звонок, морской бой, «скачать трансформеров нахаляву» — всё, школьник твой! :)
      • 0
        Я так и вижу тонну школьников, пользующихся джаббером взамен icq. Притом, что jabber куда как более широкий по возможностям. Функциональности и няшки далеко не показатель того, что что-то новое «выстрелит». Нужен толчок, чтобы люди массово перестроились на что-то новое в наш век лени — это нонсенс.
        • +3
          ICQ давно умерло. Для общения с друзьяшками есть ВКонтактик или же Скайпик.
          • +3
            ICQ давно умерло.

            Тогда у нас страна некрофилов
            • +4
              Тогда у нас страна некрофилов

              Увы.
          • 0
            Зуб даете? :)
            Скайп как IM — говно неудобен.
            ВК… Представьте себе, не у всех там есть учетки.
    • +1
      Если дело дойдёт до необходимости разработки няшненького интерфейса, дайте мне знать.
      С удовольствием разработаю.
    • +1
      DC++ выглядит точно также и пользуется популярностью. Ценность контента перевешивает.
  • 0
    Проблема: Пандору, в отличие от Фейсбука, нужно бэкапить. С одной стороны, это правильно. С другой стороны, многие ли согласятся бэкапить пару гигов чужих данных, возможно, не бесплатно?

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

    Но сама идея p2p социальности конечно заманчива. Я подозреваю Рутрекер, Пиратская Бухта и т.п. сейчас движутся примерно в этом же направлении.
    • +1
      Всмысле «бэкапить»? Записи, которые кому-то интересны живут на других узлах.
      Ну например, сфоткал ты своего ребенка, разместил в Пандоре, друзья и родственики нажали «поддерживаю». Теперь твой комп умирает. Ты устанавливаешь новую Пандору, входишь в сеть со своими ключами (вот ключи надо бэкапить!) и все твои данные, которые кем-то когда-то были «поддержаны», заливаются тебе на узел.

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

      Ну и угрозы безопасности остаются почти теми же

      Безопасность ты полностью определяешь сам. Если доверил данные нехорошему человеку, то как говорится, сам себе злой художник.
      • 0
        Безопасность ты полностью определяешь сам. Если доверил данные нехорошему человеку, то как говорится, сам себе злой художник.

        А вот это плохой подход.
        Гарантировано оттолкнет «простых людей». Построите очередную нежизнеспособную сеть для избранных.
        Когда заходит разговор о безопасности и приватных данных, надо думать за пользователя.
        На Западе точно проблем огребете с таким подходом к утечкам личной информации.
  • +3
    Вся эта красота с «запись хранится на вашем компьютере», «поддерживаемая запись теперь хранится и в вашей БД» хорошо работает до тех пор, пока вы предполагаете, что у пользователя есть постоянно включенный компьютер. А это в наш век мобильных устройств нифига не так.

    И в итоге если я уехал в отпуск, и хочу быстро опубликовать оттуда фотографии, то я вообще ничего не могу для этого сделать (если у меня, конечно, нет домашнего сервера, поддержку пандоры для которого, впрочем, не напишут никогда).
    • +1
      Мобильный клиент с урезанным функционалом не поможет? Ключи на мобильный скопировать нетрудно.
      • +1
        Клиент к чему? Нет никакого сервера.
        • +1
          Думаю, речь о том, что для мобильных платформ сервер все же нужен, дома в чулане, хотя бы. Иначе «сервер» на телефоне быстро посадит аккумулятор исходящим трафиком.
          • +1
            См. выше: что делать «нормальным» пользователям, у которых не то что домашнего сервера — настольного ПК дома уже нет?

            Что, кто-то готов выпускать порт Пандоры для Synology?
            • 0
              Может такому клиенту флаг выставить? Мол, энергии мало, делегирую свое доверие «такому-то» серверу друга. Получается, что десктоп друга (сервер) будет для мобильного клиента неким прокси.

              Кстати, ниже уже пошла речь о том, что плюшки сети не в анонимности, а в доверии, потому шифроваться от всех (и властей) большого смысла нет, разве что в «нелегальных регионах».
              • +1
                (а) найдите друга с постоянно работающим ПК
                (б) уговорите его при этом хранить ваши фотографии (которых много) и тратить на них свой канал
                (ц) будьте готовы мириться с каналом от вашего мобильного устройства до друга, который решил посмотреть hd-видео онлайн
                • +1
                  Найдётся предприниматель, он предоставит вам место на сервере, канал, только попросит заплатить: или деньгами, или встроенной рекламой. А иначе никак: либо халява от друга, либо плати за услугу.
                  • +1
                    В результате (учитывая нынешнее соотношение мобильных и десктопных клиентов для социальных сетей) мгновенно объявится облачный сервис для предоставления таких услуг, после чего все фишки децентрализации можно будет хоронить.
                    • 0
                      Скоро можно будет на любой кофеварке захостить всё что угодно, причём в режиме 24x7. Ну уж как минимум, многие телевизоры уже сейчас ничем не уступают персональным компьютерам.
                      • 0
                        Жесткий диск на пару-тройку терабайт тоже в каждой кофеварке будет? Чтобы подхватить фоточки, ролички и музычку от всех друзей?
                        • 0
                          Да там уже стоят процы на n мегагерц. Скажите кому — нибудь 40 лет назад что в кофеварки будут ставить микропроцессоры.
                          • 0
                            Процессор там понятно зачем. А жесткий диск — нет. Учитывая его размеры и требования, его появление там маловероятно
                            • 0
                              Вариант — распознавание лиц, запоминание предпочтений, предложение тех или иных видов кофе в зависимости от настроения владельца (вычисленное на основе некого ПО требущего хороших мощностей, в т.ч. памяти). Конечно проще сделать централизованно, «умный дом», откуда всем управлять, но кто знает куда нас заведет прогресс?
                              • 0
                                Вообще-то для всего вами описанного жесткий диск не нужен. Флешки (в смысле — флеш-памяти) на гигабайт хватит за глаза.
                                • 0
                                  Да это и не важно. «Жесткий диск» лишь словесный оборот обозначающий постоянную память.
                                  А уж сколько реально потребуется памяти, зависит от задач.
                                  • 0
                                    Это как раз важно. Потому что для задач Пандоры нужно много места. А для задач кофеварки — нет. Так что ожидать, что Пандору можно будет эффективно запускать на кофеварках не стоит.
    • 0
      я уехал в отпуск, и хочу быстро опубликовать оттуда фотографии, то я вообще ничего не могу для этого сделать (если у меня, конечно, нет домашнего сервера, поддержку пандоры для которого, впрочем, не напишут никогда).

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

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

        Во-первых, только если им фотографии понравятся.

        А во-вторых, вот смотрите. Я с моей девушкой уехал в Альпы. У наших родителей суммарно три ноутбука и ни ПК; естественно, что эти ноутбуки включаются очень изредка. У наших друзей тоже постоянно работающих компьютеров нет. Нам предлагается устанавливать сеансы связи, когда включен хотя бы один компьютер друга?

        Во-вторых, у Пандоры не клиент-серверная архитектура. У Пандоры нет ни клиентов, ни серверов. Это пиринговая сеть. Если ты хочешь «сервер», то просто держи включенным Пандору на каком-либо узле.

        Вы не поняли термин «домашний сервер». Ну ладно.

        Да, кто-то может начать платно хостить узлы Пандоры — по желанию заказчика, как говорится.

        Дадада. В рамках сегодняшних технологий это выгодно делать в облаке, после чего все преимущества этой якобы пиринговой сети сведутся на нет, потому что реальный контроль будет у владельца облака.
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      В первой части статьи даже схема Diaspora есть.
      Коротко, Диаспора — это сложная клиент-серверная архитектура. Есть сервера, реплицирующие данные пользователей друг другу, а есть клиенты — браузеры.
      Пандора — это пиринговая (одноранговая) сеть.
  • +2
    Пока не начнут массово «закрывать» за поддержание раздач с нелегальным контентом в битторенте и пока жив Вк, Фбук и Твиттер- это Пандора нафиг никому не будет нужна. Так же как и джаббер никогда не изничтожит в нашеи стране аську, пока сами меил.ру его не «рубанут».
    У меня вообще такая схема вызывает улыбку, это смахивает на лего для взрослых, которые хотят больше гемора.
    Я лично не готов тратить свои ресурсы не «лаиканье» чужих фоток, видео и прочего, с последующим хостингом их у себя. Зная, то, что любои мои лаик спровоцирует закачку мне на жесткий, я просто тупо перестану «лаикать». Учитывая, что 80% качающих, закрывают мюторрент после закачки, чтобы НЕ РАЗДАВАТЬ И НЕ ПРОСАЖИВАТЬ КАНАЛ СЕБЕ ДЛЯ СЕРФА, можно сделать вывод, что все будут и тут так же делать, ничего не поддерживать т.е.
    • +1
      Пока не начнут массово «закрывать» за поддержание раздач с нелегальным контентом в битторенте и пока жив Вк, Фбук и Твиттер- это Пандора нафиг никому не будет нужна.

      С этим согласен, жареный петух — птица мудрости.

      Зная, то, что любои мои лаик спровоцирует закачку мне на жесткий, я просто тупо перестану «лаикать».

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

      80% качающих, закрывают мюторрент после закачки, чтобы НЕ РАЗДАВАТЬ И НЕ ПРОСАЖИВАТЬ КАНАЛ СЕБЕ ДЛЯ СЕРФА, можно сделать вывод, что все будут и тут так же делать, ничего не поддерживать т.е.

      Бытует мнение что таких 95%. Но мир-то как раз держится на оставшихся 5%. Те же торренты «живут» за счет идейных добровольцев, которые не выключили комп перед сном.

      Я не питаю иллюзий. Сеть Пандора тоже будет жить за счет активного меньшинства.
      Но даже если ты блондинка, или толстопузый дядька — у тебя «в друзьях» будет знакомый гик с постоянно включенной Пандорой. У всех есть такие знакомые, поэтому сеть и должна жить. Кстати, избыточная мощность торрентов (в плане раздачи) прекрасно иллюстрирует мою мысль. Единственная уязвимая часть у торрентов — это трекер. Трекер убили — торренты встали. У Пандоры нет никаких трекеров. А погасить все активные узлы будет очень сложно.
    • +1
      >Так же как и джаббер никогда не изничтожит в нашеи стране аську,
      Да как раз Jabber очень популярен, хоть сразу это и не заметно. У многих кроме ICQ есть QIP, Facebook, VK… и в том же QIP клиенте, например, у меня единицы контактов — это только ICQ. Если завтра ICQ сдохнет, то я практически этого даже не замечу.
      • 0
        По моим скромным наблюдениям джаббер QIPа есть у каждого второго асечника и юзают его лишь для логина в клиенте, а именно аккаунт всегда в режиме оффлайн. Так, что QIPовский джаббер не панацея. Скореи уж Gtalk и сообщения Вконтактика (который вроде тоже на xmpp) спасут.
        • 0
          QIPвцы, как правило, юзают метаконтакты, а там главное, чтобы хотя бы один из субконтактов был онлайн. Так же вручную их приоритет обычно не меняют, а так же и не выбирают их. В итоге аська используется далеко не всегда, да и пока работает хотя бы один субконтакт — рядовой пользователь не заметит каких-либо проблем при общении с метаконтактом.
        • 0
          Gtalk уже не спасет — его переводят с XMPP на Hangouts (пруф: en.wikipedia.org/wiki/Google_Talk#Future)
  • +6
    Идея отличная, вы верно нащупали проблему, сам думаю сейчас в эту сторону. И, размышляя на досуге, пришел к следующим выводам. Рассмотрим два тренда:

    1) централизация пользовательских данных: закладки-онлайн, openid, облачные сервисы, все эти дропбоксы и гугл драйвы, конструкторы сайтов, соцсети… итд итп несть им числа. Миллионам пользователей удобнее использовать компьютер в качестве онлайн-терминала и пользовать SAAS-сервисы для просмотра фильмов онлайн, общения в гуглочате и выкладывания фоток инстаграмом. Серверные фермы также эффективны: минимизация издержек в результате масштабирования, виртуализация и дата-центры позволяют пользователям наслаждаться миллионами сервисов бесплатно. Минусы этого также очевидны: злой кто-то следит за пользователями, кто-то продает личную информацию рекламодателям, кто-то просто имеет слишком много власти, по нашему мнению. Да еще и этот проклятый копирайт… Поэтому есть и другой тренд.

    2) децентрализация пользовательских данных: cmsки вместо ЖЖ, свой хостинг, а потом и сервер вместо использования блогсервиса или конструктора сайтов, торренты как ответ копирайту, биткоины вместо банков, и так далее. Отказ от скайпа, который тоже слишком уж подозрителен :) Данные сервисы решают вполне себе существующую проблему тренда 1 с безопасностью, но за это приходится платить удобствами: пользователям этих сервисов приходится делать больше движений, быть более умными и аккуратными (использовать шифрование почты или голосового трафика сложнее, чем не использовать, не говоря уже о собственном сервере), тратить больше времени на аналогичные действия, а, значит, и денег. Вдобавок, они несут расходы по процессорной мощности, по поддержке всего этого добра у себя на машине. Спасение утопающих — дело рук самих утопающих, типа. Наиболее продвинутые джедаи спасают глупых пользователей, делая сложные вещи с простыми и удобными интерфейсами на базе опенсорса и бесплатно, и лишь благодаря этому мир пока не оказался в Матрице…

    Но вот ведь еще какая хитрая штука: инструмент — оружие обоюдоострое. И вот уже хакеры пользуются поддельными сертификатами для обмана доверчивых пользователей, анонимными сетями пользуются террористы для координации атак, а анонимной валютой — продавцы наркоты, на торрентах полно развращающей порнухи, а в чатах — педофилов. Кем и как будет использоваться ваша система, написанная вами с самыми лучшими намерениями? Исправить нравственность людей сложнее, чем ошибку в коде. А ведь государство, с одной стороны, действительно обязано выявлять и пресекать, а с другой — само не прочь поконтролировать своих граждан… «Зачем, дескать, оно нам, мы и сами справимся?» А вы уверены, что справитесь?

    Это что-то типа теоремы Геделя. Невозможно контролировать всех, включая самих модераторов и админов. Всегда будет вопрос «А судьи кто?». Я пришел к выводу, что нужно повышать нравственность, культуру, книги писать, просвещением заниматься. Здоровое общество должно защищать себя от всего спектра угроз, не только от чиновников-дуболомов, а и от порнухи, алкоголя и кредитного рабства. Проблема шире, чем представлялась вначале.

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

    Как-то так.
    • +2
      Изобретатель телевидения Зворыкин перед смертью сказал:
      «Я в ужасе от пошлости и сцен насилия, которые пришли в наши дома вместе с голубым экраном. Это заставляет меня думать: а стоило ли ради этого создавать телевидение? Во всяком случае, смотреть его я почти перестал».

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

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

      Во-вторых, существует система доверия.
      Если например ты разрешил всем подряд устанавливать видео-звонки с твоей 12-летней дочерью, то кто виноват что она стала себя странно вести?
      Настрой разрешение на входящие соединения только для доверенных узлов. Общайся только с доверенными лицами. Это как раз настраивается.

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

      Антисоциальные персонажи будут обсуждаться в Пандоре, причем независимо от того хотят они того или нет, и даже, зарегистрированные они или нет.
      Может так получиться, что [персона: Аристарх/Аристархович/Аристархов/31.12.1980] зашел в Пандору, а вокруг его панхеша уже давно сложилось мнение по его реальной социально жизни. Представляешь, ты зашел в Пандору — а тебя уже «ждут»!

      Сейчас эта обратная связь во многих случаях отсутствует. Да и бонусы я имею в виду не только денежные…

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

      Короче говоря, в Пандоре плохиши быстро утонут, а хорошие — неизбежно всплвут. Ну, как на Хабре примерно :)
      • +1
        А что значит «тонут»? Их лишают прав? Каких? И кто?
        • +1
          Никто никого ничего не лишает.
          Просто в сети накапливается куча негативных мнений о плохом человеке (точнее о его панхэше), и общаться с ним уже мало кто захочет. Негативным людям и доверие никто не будет оказывать (никто не будет подписывать их анкеты).

          Им придется тролить под вымышленными именами с нулевой историей. Но кто захочет общаться с «нулевыми» персонами — тоже вопрос. Если виртуала вскрыли, то «набросят» ему еще на его реальный панхэш.

          Короче, всё строго, как в реальной жизни.
          • +2
            Это все в идеальной реальной жизни.
            Зачем-то на хабре ввели ограничения для «утонувших» — не достаточно оказалось просто отрицательной кармы.
          • +3
            Что происходит, если «в сети накапливается куча негативных мнений о хорошем человеке (точнее о его панхэше)»? Самое интересное в подобных системах — защита от лжежалоб. Достойных решений, кроме как «арбитраж жалоб», мне неизвестно. Но оно снова возвращает к вопросу «А судьи кто?».
          • 0
            Вы не боитесь оказаться на роли Зимбардо в организованном им Стэнфордском тюремном эксперименте, только  в масштабах всей сети? Похоже, Вы конструируете идеальное средство коллективной сетевой травли «негативных людей», да ещё и с инструментами для переноса её в реальный мир (сбор неудалимых персональных данных о человеке и семье, например).
      • +1
        Вот еще несколько проблем на закуску:

        1) Предвижу накрутку кармы за бабосы. SMM не дремлет: «Раскрутка ВКонтакте, в Фейсбуке, в Пандоре».
        2) И соответственно, черный пиар: «Подмочим рейтинг конкурента в Пандоре за умеренные деньги».
        3) А также создание фейк-персонажей известных личностей. Как вообще связать панхэш и реального пользователя? Сканер сетчатки? Сканер отпечатков пальцев? ДНК? А правило «один реальный юзер» — «один аккаунт» как будет работать? Не будет такого? Тогда астротурфинг в Пандоре — реальное будущее.
        4) И спам-ботов: автоматизация рассылок запросов с помощью управляющих гуем прог (в самом простом случае), либо модификация клиента. Он же будет опенсорс, как я понимаю?

        Кстати, по коду тоже не все так просто: это еще один рубеж обороны. И со стороны собственно кода (распространение дистрибов требующих СМС при установке, либо дистрибов с вирусом, либо со снятой защитой от дублирования валюты, либо еще как-то нехорошо модифицированных злыми хакерами), и с юридической стороны. Гонка вооружений на фронте «копирайт-копилефт» уже привела к появлению модификаций торрент-клиентов, стучащих на пользователей, и к торрентам, содержащим 98% дистрибутива. Скачиваешь такой, и фейл. Такие ходы правообладателей мне уже порядком поднадоели. В Пандоре будет то же самое. И клиент модифицировать станут, и торренты битые выкладывать.

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

        При этом я ваше начинание поддерживаю, делайте проект на здоровье, просто указываю на проблемы, существующие в реальности. Цель ваша хороша, но коррозия проекта неизбежна. Такова жизнь.
    • +1
      Правильное замечание, оружие обоюдоострое.

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

      В итоге это приведет к образованию относительно замкнутых кластеров, кружки по интересам, в одном из которых могут скопиться «отрицательные» элементы. Если реализовать мультиличностное представление пользователей в сети, тогда пользователь может входить в несколько кластеров под разными именами. Иногда анонимность полезна.
    • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    А с кем начинает коннектиться только что установленная программа? Друзей нет, ip неизвестны.
    • +1
      Первое время придется вводить статические айпишники друзей.
      В дальнейшем, когда система разовьется, можно по умолчанию (для вновь установленной Пандоры) держать заведенными несколько наиболее публичных узлов.

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

      Это речь только о первых узлах. Когда же программа начинает работать, новые узлы загружаются согласно схемам доверия (впрочем как и остальные типы записей).
      • +2
        А если у меня нет друзей или друзей со статическим ip? Вообще ничего работать не будет? И долго?
        Вот на счет списка публичных узлов — это уже отступление от схемы. Так закрыв эти узлы (маски-шоу) можно предотвратить массовое распространение только что зарегистрировавшихся. Подменив этот список, можно заставить коннектиться к своим узлам и вычислять всех новоприбываших. И т.д.
        • 0
          Пандора у тебя не будет работать до тех пор, пока никто из держателей реальных ip не захочет оказать тебе доверия. Если ты такой, то «фи таким быть»!

          Вот на счет списка публичных узлов — это уже отступление от схемы.

          Если у человека в Пандоре больше нет никаких узлов, кроме как «публичных», то что ж поделать, надо только посочувствовать такому человеку.

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

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

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

          Кстати, в Пандоре доверие строится на уровне личности (точнее, его ключа), а не на уровне узла. В Пандоре все записи создают личности. В Пандоре личности соединяются друг с другом он-лайн. Если ключ утёк, хозяин объявляет его скомпрометированным, и все ветки доверия, построенные на этом ключе, прерываются.
          • 0
            Ну вот скачал я программу, установил, запустил и жду. Чего? Пока кто-то с реальным ip не захочет оказать мне доверие, так? Откуда его взять? По телефону договориться? Что делать пользователю сразу после установки программы?

            У только что созданного пользователя нет никаких узлов, ни приватных, ни публичных, ни друзей, ни врагов, ни статичного ip.

            Подменить список изначально доверенных узлов можно подменив, например, дистрибутив.
            Т.е. создаем сайт с похожим доменом, таким же дизайном, более тщательно сошим его и он будет выдаваться первым по запросу «пандора». Выкладываем такой же дистрибутив, но с зашитыми «изначально доверенными» ip своими — profit.
            • 0
              «сошим» = «СЕОшим»
            • 0
              Я начал писать Руководство, первые вопросы должны отпасть.

              Подменить список изначально доверенных узлов можно

              Подменить можно всё что угодно. Даже в кабинете Президента страны. Всё определяется тем уровнем внимания к своей безопасности, которое человек уделяет. Ни одна система не будет надежной у безалаберных людей. Но в Пандоре это станет проблемой именно этих людей, а не других. Их ключи просто удалят из схем доверия.
      • 0
        А как будет вести себя система при такой схеме:
        A -> B
        B -> A, C
        C -> B

        Может ли узел A соединиться с C? То есть, можно ли настроить B как релейный?
        • 0
          Да. Такой механизм обязан быть. Но он еще не проработан.
          В первом приближении я представляю себе как если бы промежуточный узел («B» в нашем примере) просто передавал поток данных от узла A к С, и обратно.
          Если A и C хотят скрыть данные от B, то они шифруются на ключах, заведомо неизвестных B (переданных через флешку, или ранее через узел D).
          • 0
            Я так понял, что два узла могут соединиться только если они оказали друг другу доверие?
            Тогда, если эти узлы друг друга «не видят», например оба за симметричным NAT, то соединение между ними наладить невозможно. А если они захотят построить соединение через небезопасные (недоверенные) узлы, то велика вероятность того, что эти узлы скомпрометированы, причём скомпрометированной может быть целая группа узлов. В таком случае очень велика вероятность MItM-атаки. Думаю, вам стоит посмотреть в сторону луковой маршрутизации и изучить принципы работы I2P и Tor.
            • 0
              Во-первых, возможно «недоверенное» общение. Всё зависит от настроек.
              Во-вторых, всё определяется целями. Если вам нужно обсудить контрольную с другом, то соит ли так параноить.
              В-третьих, если данные очень важны (например, деловые документы), и приходится общаться через недоверенные узлы, то придется передать ключи каким-либо безопасным способом. Например, передать при встрече на флешке.

              Если нет возможности передать безопасно ключи, то должны же быть хоть какие-то доверенные узлы в этом мире. Узнайте что это за узлы, и используйте их с партнером.

              По поводу «лука» и расщепленной маршрутизации, я уже высказался — это на потом. Так сказать, на десерт.
      • 0
        Зачем усложнять? Даже I2P сейчас использует несколько центральных узлов для bootstrap (netdb. По сути — просто папка с описанием пиров), аналогично было в ed2k (webcache кажется?).
      • +1
        Думал на эту же тему. Остановился на том, что нужна возможность создавать узлы-ретрансляторы, которые можно разместить где-нибудь на постоянно включенном сервере и настроить правила трансляции. Таким образом решается проблема выключения своего компа. Также таким образом можно организовывать сообщества (аналог тех же групп вконтакте). Экземпляр группы транслирует данные между членами группы. Администратор управляет правилами трансляции. Члены группы видят правила и могут, например, автоматически приостанавливать трансляцию своих данных в группу, если правила трансляции изменились. Участие в группе становится актом доверия администратору группы.

  • +2
    Там выше уже правильно заметили — начинать нужно с протокола. С архитектуры и с фундамента сети. А формочек на Gtk набросать это, извини, дело на пару дней.
    • 0
      Абстрактные концепции плодить несложно.
      Сложнее проработать детальную концепцию.
      Но самое сложное — создать работающий прототип.

      Я сейчас на второй стадии. И хочу перейти на третью. А ты меня зовешь на первую :)
      • +1
        Эээ, какие концепции?.. Про концепцию мой следующий коммент. А этот про то, что ты слишком много внимания в посте уделяешь описанию интерфейсов, а о протоколе по которому оно всё будет взаимодействовать ни слова.
      • 0
        Протокол — это нифига не абстрактная концепция (как и архитектура). Это вполне конкретные, реальные вещи.
  • +1
    И да, оно чем-то напоминает P2P-шный Google wave с запахом фидо. Но проигрывает в своей концепции записей и мнений и тому, и другому.
  • 0
    а ведь все это давно в i2p работает…
    • 0
      i2p это калька обычного интернета. Там тоже есть сервера, и без сервера веб-сайты работать не будут. Здесь же предложение полностью избавится от серверов и перейти на обмен данными между участниками сети напрямую.
  • +2
    Во многом я разделяю ваши идеи, и как-то даже сам пытался набросать нечто эдакое. До сих пор эта тема меня интересует и периодически я к ней возвращаюсь.
    Выскажу свои замечания.

    1. Вы стараетесь сразу же сделать высокоуровневое приложение — имхо неверный подход. Начинать нужно с создания приложений управляющий потоками данных, и на них уже надстраивать остальное — схема работы i2p неплохой пример.

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

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

    Теперь хотим — делаем описание человека

    {
    type:android,
    name:Vector
    }
    

    хотим публичное сообщение
    {
    type: blog,
    body:'есть надоело, спать надоело - хочу жениться!'
    }
    

    допустим хеш этого сообщения будет 21ddfe9

    тогда коментарий к нему может выглядеть как
    
    {
    parent: '21ddfe9',
    type: 'comment',
    body: '+100500'
    }
    

    теоретически можно придумать как сделать чтобы комментарии отвечали на несколько сообщений сразу же — например указать список хешей значениями ключа parent

    Что мне еще нравится в подобной системе — она позволит разделить понятие сайта и данных. Чтобы обратиться к статьи на википедии вы не будете включать браузер, получать html + css + javascript а будете получать исключительно данные, внешний вид которых определит клиентская программа.
    Имхо для форматирования большинства информации вполне достаточно любого из языков викиразметки.

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

    3. Пересылка друг друга ip адресов для установления соединения.
    Лично я думал о том чтобы помимо TCP активно использовать XMPP для связи разных нод друг с другом. С одной стороны это не чистая децентрализация — с другой это позволит быстро найти множество нод для общения, обменяться друг с другом IP адресами и продолжить уже по TCP. То есть xmpp позволит ускорить сеть, при том что разумеется она должна быть способна функционировать полностью без него.
    Происходить это может так:
    — первый запуск — программа качает список доступных для регистрации xmpp серверов, выбирает любой из них, генерирует jid и возвращает его пользователю. Теперь во-первых пользователь может сам отправить свой jid кому захочет, и теперь уже не важно динамический ли у него ip — каждый раз входя в сеть он сможет обновить информацию о своем ip и разослать его другим нодам. Кроме того — его jid.

    В общем и целом — если найдутся еще желающие как следует обсудить, прийти к чему-то и писать — я за.
  • +4
    Усеченный md5, какой простор для… фантазии)
    Непонятна мотивация изобретать велосипедный хэш еще и основанный на устаревшем алгоритме (еще и усеченном).
  • 0
    Именно этой реализации мне не хватало для моего проекта Кабинет.

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

    Проект только на стадии проектирование. Планирую создать прототип электронного правительства
    для результативного взаимодействия.

    Присоединиться к обсуждению и почитать мои заметки можно на сайте app.cabinet.io/
  • 0
    Не вникал, но кажется не хватает упоминания friendica.com/
  • +1
    Товарищ!
    Хочу выразить тебе большую благодарность за развитие действительно нужного проекта!
    Многие пока еще не понимают, но эта идея в сто раз ценнее большинства социальных проектов.
    За этим будущее, присоединяйтесь к проекту, поможем друг другу!
  • 0
    интересная и правильная идея!

    только бухгалтерию и платежи я не рискну в ней использовать…
    OpenSource кода это большой плюс.

    искрене пожелаю удачи автору…
    и инвестиций…
    и главное организовать сообщество, без сообщества — нет проекта, нет проекта — потраченное время и разочарование.
  • –1
    Бред начинать писать подобную архитектуру с уровня приложений, когда не продуман транспортный. да еще и с кучей устаревших велосипедов типа недо-md5
  • +2
    Вообще-то были проекты и пиринговых поисковиков и пиринговых блог-платфом.
    Вымерли практически все, те что остались — влачат достаточно жалкое существование.
    Просто нету бизнеса, некому зарабатывать на этом дурные деньги и некому тащить за собой людей, создавая критическую массу пользователей.
    Хорошего в этом мало, но я достаточно скептически отношусь к успешности пиринговых социалок.

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

    PS
    Занимался R&D в области распределенных защит в т.ч. и пирингового типа.
    Например такие вещи как распределенный классификатор свой-чужой, агрегирующий информацию с произвольного количества узлов и тому подобные вещи.
  • 0
    Ну да, сейчас надо доверять серверам, и если поломают сервер гугла, то вынут почту из гугла… Постойте, часто ли ломают сервера серьезных компаний?

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

    В общем, проект занятный, но не всё хорошо.
  • 0
    Как только в публичных облаках появятся персональные инстансы, нетребовательные по ресурсам, и способные быстро засыпать/просыпаться, работать с внешними очередями сообщений — тут-то самый p2p и начнется…
  • 0
    Поздравляю, чувак! Добро пожаловать в клуб воплотителей идей гипертекстового фидонета имени Мицгола!

    Я похожую пепяку делал года три назад — habrahabr.ru/post/79439/
    Ну и много чего еще делал. Что у тебя на картинках нарисовано, у меня вполне работает, хоть и не в полном объеме. Что-то взлетело, что-то не взлетело, но скиллы прокачал конкретно. Хотелось бы снова взяться, но и по основной работе дел хватает, там тоже нечто грандиозное, федерального масштаба.

    Но помочь знаниями и поделиться опытом всегда готов. Позже посмотрю повнимательнее и напишу свое мнение.
  • +1
    Делать p2p социальную сеть — идея отличная. Но пока я вижу больше вопросов чем ответов.

    1. Зачем в описание Пандоры вынесен уровень TCP/IP? Надо спрятать все эти потроха (транспортный и сетевой уровни в терминах модели OSI) в реализации непрозрачным образом. Тогда можно будет пробовать разные варианты реализации транспортного модуля, хоть все одновременно. Вообще, что такое узел в Пандоре и зачем он нужен? Мне показалось, что декларируется соответствие пользователя узлу и его IP-адресу. Если так, то это совсем странно, надеюсь, что я неправильно понял.

    2. Зачем в описании панхеша фиксировать устаревшие хеш-функции? На данном этапе проекта достаточно сказать, что будут использоваться панхеш — это некий хеш от таких-то данных. В refrence implementation версии 0.1a пусть, так уж и быть, используется конкретно md5.

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

    4. Зачем сразу лепить к социальной сети такую функциональность как бухгалтерия или система ведения бизнеса? Все эти штуки могут быть реализованы отдельно и независимо поверх Падоры (то есть, опираясь на нее). Необходимо и достаточно иметь сеть доверия и средства пользовательскими данными произвольной природы.
  • 0
    Забыл сказать: gstreamer — это ни разу не для VoIP, поэтому лучше заранее подыскивайте нормальный движок, если действительно собираетесь добавлять функционал (видео)звонков.
    Из достаточно известных и нормально сделаных бесплатных движков можно посоветовать WebRTC или PJMedia (часть проекта pjsip, вроде бы нормально оттуда выпиливается).

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