О супернодах и федеральной архитектуре сетей

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

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

Федеральная архитектура была очень актуальна в прошлом, когда у большинства участников сети не было личных компьютеров, а если и был, то вероятнее всего подключался к сети он с помощью Dial Up. Когда-то давно я заморачивался с установкой ICQ, браузеров и прочего на кнопочный мобильный телефон с дорогим и медленным GPRS трафиком как раз ради постоянного подключения к сети. Постоянного коннекта с людьми, с которыми интересно общаться. Буквально в школе сидел и посматривал на уроках, что же там интересного написали в IRC (кстати тоже федеральная сеть, которая почти не жрет трафик) чате #nnm, попутно щелкая на т9 ответы. Через годы, это стало общепринятым стандартом и нормой. Люди младше 30 поддерживают постоянную связь через мессенджеры и соцсети с нужными и интересными для них людьми независимо от расстояний и занятости. Потребляют контент, на который сами подписались, а не который им наливают в телеке. У многих в кармане устройства,  которые значительно мощнее PC десятилетней давности. Постоянная широкополосная мобильная связь — это норма. Ещё немного оставалось для дальнейшего развития в РФ мобильного безлимита, но карательные законы умудрились затормозить прогресс. На первую ступень все больше выходит идея TRUSTLESS, когда не доверяешь и не зависишь от какого-то конкретного сервера или компании. Вопросы удобного пользования централизованными SAAS сервисами конфликтуют с потребностью в приватности или даже анонимности. Для многих типичных задач уже не нужны отдельные серверы.

Лично я идеальным вижу распределенные многоуровневые сети. Причём одна и та же нода должна уметь работать в режиме тонкого клиента и в режиме полноценной ноды в зависимости от контекста ситуации: подключен компьютер к розетке и имеет достаточный процент заряда и нормальное подключение к интернету — можно выполнять полезную для сети работу, а иначе работать в экономичном режиме, пользуясь услугами тех, кто сейчас работает полной нодой. Это же не противоречит идее развёртки дома на стационарном ПК или одноплатнике или на ВПС хостинге полноценной ноды, которая все время будет выполнять работу и приносить пользу. Это решает как вопросы доверия, так и вопросы масштабирования сети, когда мобильный телефон на медленном 2g бесполезен для сети в качестве полной ноды. Пусть лучше экономит  ресурсы и заряд. При проектировании  систем стоит сразу же думать о шардинге и репликации, чтобы порог входа на уровень полной ноды не рос. В тех же криптовалютах блокчеин огромен и синхронизируется чуть ли не неделями. Это  может  привести к олигополии, когда по сути сеть  состоит из большинства тонких клиентов, которые зависят от ограниченного числа датацентров. Сложно полностью перейти с Dropbox на Syncthing, когда даже андроид версия должна полностью выкачивать все файлы синхронизируемой на свою ограниченную память.

Если отвлечься от технических вопросов и архитектуры, то главное, о чем нужно помнить: юзабилити и удобство эксплуатации. Большинство людей не думают о важности приватности и горизонтальности своих взаимоотношений с системами и другими людьми, но для многих распределенных систем именно количество полезных участников может иметь важную роль. Когда твой любимый приватный и свободный мессенджер никто из знакомых не использует, в нем нет смысла. Все сидят на псевдосвободных популярных эрзацах, которые в разы удобнее и не так жрут ресурсы. Удобство эксплуатации выходит на первый план даже для централизованных систем. Отчасти этим и объясняется растущая популярность того же языка программирования Go, на котором отлично сделана кросскомпиляция со статической линковкой. Так же  может быть  полезна финансовая стимуляция участников на выполнение полезной работы. В криптовалютах отлично работает PoS, когда нода,  которая провела транзакции  получает награду за блок, без требования яростно жечь свет дорогостоящим оборудованием.

В общем, критерии успеха свободной распределенной сети примерно такие:

  • Удобство и юзабюилити
  • Низкий порог вхождения для полноценного участия
  • Энергоэффективность и возможность использования даже на смартфонах.
  • Маркетинг и раскрутка
  • Наличие выгод от выполнения полезных работ

1 комментарий

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

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *