Pull to refresh

Comments 24

При этом остаётся ряд важных вопросов .. постараюсь ответить в следующих материалах ..

Обязательно добавьте расчёт типа "если в сети M нод, и каждая хранит N __байтов личной информации от K пользователей, то объём данных, хранимых на каждом узле, в среднем составит X __байтов". И аналогичный расчёт по ширине потоков данных. Будет очень любопытно сравнить предлагаемую мотивацию хранителей нод с потребными на поддержание ноды ресурсами...

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

А вот изобрести протокол всего этого - довольно интересная задача. Непростая, но решаемая (если хоть какое-то финансирование найти...)

как интернет, задуманный как свободное и децентрализованное пространство

Когда это он таким задумывался?

Изначально интернет был построен на принципах децентрализации и устойчивости. Проект ARPANET создавался как сеть, где узлы могли общаться напрямую, а система оставалась работоспособной даже при частичном разрушении. Позже протоколы вроде TCP/IP обеспечили возможность передачи данных между независимыми сетями без центрального контроллера.

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

Часто приходится задаваться вопросом: что важнее — идеология и принципы или технические решения? Средства или цель?

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

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


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

Был такой Хейнц фон Ферстер — крестный отец кибернетики, — когда-то он создал свод правил, одно из которых гласит: "Всегда поступай так, чтобы вариантов выбора стало больше". Это правило применимо ко всему: политике, экономике, технологиям, личным решениям – всегда делай то, что расширяет, а не сужает твои возможности.

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

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

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

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

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

Армия это плохой аргумент. Опять таки централизация касается только массовых армий

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

Сегодня интернет больше напоминает цифровую тюрьму

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

Нужно просто перестать от него зависеть.

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

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

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

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

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

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

Очень много вопросов возникает вне Хабра. Продублирую их сюда.

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

В Nostr каждый автор генерирует множество отдельных автономных сообщений, каждое из которых подписывается отдельно. Эти сообщения никак не связаны между собой, из-за чего клиенту приходится проверять каждое сообщение отдельно. Это приводит к избыточности, замедляет обработку и требует больше ресурсов. Кроме того, в Nostr нет встроенной дедупликации, а надёжность данных зависит от релеев, которые могут удалять информацию, и пользователи об этом не узнают. Это уже наблюдается в Bluesky, где релеи чистят неугодный контент, превращаясь в централизованные серверы. Можно возразить: "В чём проблема? Поднимай свой релей!", но обычные пользователи даже не знают о них, в результате чего получается та же федеративная и изолированная сеть.

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

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

Подробнее о формате хранилища indiFS расскажу в следующей статье — эта статья лишь вводная.

Только корень? А если веток миллионы и длина того же порядка? Что там по времени поиска корня?

– А есть какое-то демо этого indifs?

Пока это скорее концепт. Толком даже нет полноценного описания формата хранилища. Но код уже есть, работает, тесты проходят. Версия доступна на GitHub: https://github.com/indifs/indifs

Прототип клиента тоже существует, но он сыроват, поэтому я пока не выкладывал его в опенсорс.

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

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

Закодить всё это оказалось проще, чем описывать! Но раз уж начал, буду доводить до конца 😅

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

Что касается частных поисковиков и "индексных файлов" — не вижу никаких технических ограничений для реализации подобной идеи. Даже терабайтные и петабайтные индексы можно организовать полностью распределёнными. С помощью indiFS такие индексы могут обновляться мелкими порциями, не перенося каждый раз весь массив данных. Поиск по такому индексу можно осуществлять всего за несколько запросов к нодам, причём количество обращений будет расти логарифмически от объёма данных. Если логарифм имеет большое основание, а индекс оптимально организован и хорошо распределён, поиск может выполняться за 2-3 чтения.

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

Обо всём этом я буду писать в следующих статьях. Обещаю, они будут уже без воды — только техподробности и конкретика!

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

Да, речь идёт именно об альтернативных поисковиках, способных заменить централизованные решения вроде Google. Но на самом деле, в чём принципиальное отличие между поиском по сайту, социальной сетью с миллионами пользователей или глобальным поисковиком с данными миллиардов людей? Разница лишь в объеме. Один глобальный индекс можно разбить и расшардировать на миллионы кусочков – шардов – отдельных хранилищ indiFS. Эти шарды могут поддерживаться нодами, персональными устройствами или локальными серверами. Формат индекса будет публичным, а алгоритм поиска — открытым. Во время поиска алгоритм укажет конечному устройству, к каким конкретным нодам обратиться и какую часть индекса запросить.

Но это я всё о глобальных материях, о том как космические корабли бороздят Большой театр. Начать то можно и с малого: Например, представим есть мобильное приложение - пиринговый видео-хостинг, какой-нибудь Peer-to-peer-tube. Люди публикуют контент (видео, описание, комментарии), формируя свои indiFS-хранилища. Поисковый робот обрабатывает их обновления, создаёт и публикует распределённый открытый индекс. Клиентское же приложение может использовать этот индекс для поиска всех видео, например, с тегом #Котики. В данном случае запрос будет направлен к конкретному шарду по строго узкому ключу. Если сделать одновременно несколько параллельных запросов к нескольким нодам, которые поддерживают этот шард (а это может быть сосед за стенкой), то поиск может выполняться за миллисекунды.

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

Лучше меньше и своими словами чем больше и чатгпт. А привкус отчетливый.

Статью прочитал с интересом. Надеюсь будет и продолжение.

В целом я согласен, что интернет должен быть для людей и он должен быть свободен.

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

У меня в голове никак не укладывается, как можно совместить в интернете безопасность и отсутствие контроля/цензуры. Хотелось бы ознакомится с идеями на эту тему.

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

У меня в голове никак не укладывается, как можно совместить в интернете безопасность и отсутствие контроля/цензуры.

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

Никак. Это принципиально невозможно.

Боюсь, что Вы правы.

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

Мне тоже хочется верить в лучшее...

Обычные политики примут решение о создании сверхглубокого психологического теста. Деньги выделят обычные инвесторы. А разрабатывать будут обычные разработчики под контролем обычных спецслужб.

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

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

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

Sign up to leave a comment.

Articles