Децентрализованный интернет. Часть 1.
-
Децентрализованная платформа не может полноценно существовать в обычном централизованном интернете, из-за ограниченной архитектуры и ручного управления.
Мы делаем все, что в наших силах, чтобы WEB был быстрым, высокодоступным и полезным, но, кажется, становится только хуже. Кто-то может назвать это нормальным, сославшись на растущее количество пользователей сети, нагрузки, объемы и тяжесть контента, но корень проблемы заключается в ущербности самого HTTP как средства для отдачи огромных объемов трафика. Он просто для этого не предназначен. Система, построенная по принципу «один провайдер — миллионы потребителей», во все времена будет страдать от всех перечисленных проблем со все большим усложнением инфраструктуры провайдеров, постоянно возрастающими расходами на ее содержание и опасениями, что в любой момент придет Надзиратель и выключит доступ к сервису одним нажатием кнопки.
Первые создатели Peer-2-Peer сетей осознавали это, разрабатывая торрент протокол, когда контент отдается ни 1 сервером, а другими участниками сети. Эта технология быстро завоевала популярность.
Также стоит упомянуть о давно забытой разработке первого программиста Apple - Била Аткинсона - HyperCard. В этой системе удачно совмещены средства предстваления данных и система динамической интерпретации скриптов, что позволяет ее использовать как внешнюю оболочку-интерфейс к p2p сетям и нейронным моделям. Архитектура системы HyperCard во многом послужила прототипом для веб-страниц, однако его возможности до сих пор во многих отношениях превосходят средства динамического программирования DHTML.
К сожалению в 90-х годах система HyperCard была заморожена и в настоящее время практически прекратила свое существование. Причина в том, что руководство Apple не смогли понять и оценить ее стратегическое значение. В своем интервью в 2003 году, Джон Скали, бывший в 80х президентом компании Apple, рассказал об этом так:
Если я обращусь назад, на то, что бы я хотел сделать по другому тогда, когдя я был в Apple, я думаю что самая большая упущенная возможность - это система HyperCard. Она была создана в 1987 году первым программистом Apple - Билом Аткинсоном. Мы никак не могли понять, что же она из себя представляет на самом деле. Мы думали, что это была система создания прототипов. Мы думали, что это была база данных. Был пример, когда она использовалась как интерфейс с протоколом TCP/IP для работы с суперкомпьютером Cray.
У нас не хватило проницательности ,чтобы понять, что все, что было внутри HyperCard, было на самом деле то, что позднее будет успешно разработано Тимом Бернес-Ли, с протоколоами HTTP и HTML.Времена «один сервер — один веб-сайт» давно прошли. Но, как и раньше, мы продолжаем использовать все те же web-технологии, что и старик Тим Бернерс-Ли.
- Мы изобрели HTTP 2+, но все ещё не придумали способа отвязать сервис от единой точки входа;
- у нас есть огромное количество технологий оптимизации выдачи контента, но мы до сих пор страдаем от DDoS-атак;
- мы платим копейки за мегабайт трафика, но отдаем огромные суммы за то, чтобы наш сервис оставался онлайн;
- любой популярный сервис может быть заблокирован, даже если он имеет большую культурную ценность для всего сообщества.
Как применить принцип P2P сетей для построения динамичных приложений и web-сайтов?
Задачу построения одноранговых сетей предлагается разрешить стеком протоколов IPFS + BitTorrent (проверенная временем технoлогия, которая прекрасно работает) + BlockChain + SideChains SmartHoldem.
IPFS (InterPlanetary File System) — это набор протоколов и технологий, позволяющий создать нечто в виде глобальной распределенной файловой системы, построенной по принципу P2P-сети. В такой сети все ноды равны и могут выступать как потребителями, так и провайдерами контента. Поиск информации ведется с помощью распределенной хеш-таблицы (DHT), а адресация контента, с помощью контрольных хеш-сумм файлов.
Для получения файла клиенту нужно знать только хеш, все остальное сеть сделает сама: найдет узел, у которого есть копия файла, запросит у него файл и отдаст его нам. При этом сеть не имеет пределов горизонтального роста.Примечание: в настоящее время в экосистему SmartHoldem интегрирован специальный тип транзакций взаимодействия с IPFS-сетями под id: 5.
Локальный интерфейс IPFS
IPFS имеет некоторые недостатки, но решает следующие проблемы:
-
Доступность: Веб-сайт, размещенный с помощью IPFS, не имеет точек отказа (спорно в альфе). При достаточно большом количестве узлов, реплицирующих веб-сайт или его части (или даже части файлов) у себя, выход одного, нескольких или даже большинства из них никак не повлияет на доступность веб-сайта. Более того, нагрузка на узлы, распространяющие контент веб-сайта, будет равномерно распределена между ними, что защитит от резких наплывов посетителей и DDoS-атак.
-
Параллельная загрузка. Клиент может загрузить части веб-сайта и отдельных файлов с разных узлов одновременно, равномерно распределяя нагрузку на них и увеличивая общую скорость загрузки.
-
Решение проблемы мертвых ссылок. Все файлы в IPFS адресуются с помощью хеш-сумм, так что, если один или несколько узлов перестанут хранить у себя файл, он все равно будет найден.
-
Версионность подобная GIT. IPFS — версионная файловая система. При модификации файла старая версия остается неизменной и может быть адресована и найдена. Это позволяет из коробки получить wayback machine, которая будет работать до тех пор, пока хоть один узел будет хранить старую копию файла.
-
Обход цензуры. В IPFS нет единой точки входа и единого сервера, отвечающего за обслуживание веб-сайта или сервиса. Чтобы «выключить» сайт в IPFS, придется выключать все узлы, ответственные за хранение его частей. При достаточных размерах сети это нереализуемая задача.
-
Экономия на трафике. Благодаря равномерному распределению нагрузки на узлы можно существенно сократить расходы на трафик.
В рамках экосистемы SmartHoldem предполагается использование IPFS в качестве транспортного протокола, а BitTorrent в качестве хранения файлов. Т.к. в настоящее время IPFS имеет недостатки:
- потребление всей памяти и ресурсов при трансляции больших файлов 1-2 Тб с одного устройства;
- необходимость нахождения источника файлов постоянно в онлайн;
- отказ в обслуживании узла при прямом взаимодействии с торрент протоколом при N подключениях;
- файлы делятся на блоки которые мало пригодны для повторного использования (решается экспериментальной функцией --nocopy. Опция --nocopy очень помогает когда вы хотите поделиться с миром например дампом WikiLeaks );
- при обновлении сайта его хэш изменяется и это плохо, хотя и необходимо
- отсутствует поддержка баз данных
Для того, чтобы избавиться от необходимости постоянного подключения устройства трансляции в сеть файлов, используем torrent + ipfs
к примеру каталог
https://gateway.ipfs.io/ipfs/QmQq4AoQiXBc3Gi5VnvbPUV8yPNhrkSPeYcmccu7MxWft7/
создаем magnet seed и далее наши файлы раздаются из IPFS по Torrent протоколу.
Соответственно все эти опции нуждаются в автоматизации.
При использовании системы имен IPNS, возможно переключить обычное доменное имя на децентрализованное хранилище.
Предполагаемые стартовые функции децентрализованной сети SmartHoldem
- SmartIDS - специальное приложение генератор/регистратор имен с парами открытый-закрытый ключ, необходимыми для взаимодействия с сетью (подпись, публикация сообщений, сайтов, приложений в сети). Открытый ключ - это адрес SmartHoldem.
Для каждого приложения/сайта генерируется своя пара открытых и закрытых ключей, необходимых для подписи контента при обновлениях.
-
Локальный прокси - необходим для постоянной доступности к контенту сети, в том числе при отключении интернета.
-
Сайты хранятся посетителями, это фактически бесплатный хостинг. !Посетители не хранят все сайты подряд, лишь те, которые им интересны и которые они посещают.
-
Адрес сайта/приложения сети это публичный адрес SmartHoldem
-
Сервис имен - система регистрации доменных и других уникальных имен. К примеру длинный публичный ключ возможно заменить на децентрализованное доменное имя, улучшая человекочитаемость.
-
Поисковая система - это большая проблема децентрализованных сетей, мы работаем над решением.
-
Streaming медиа на BitTorrent протоколе и элементах IPFS (Вещание аудио и видео контента)
-
Отсутствие центрального регулятора цензуры, сообщество сами управляют цензурированием контента
-
Быстрая загрузка страниц не зависящая от скорости соединения, за счет выдачи с многих пиров
-
Динамические приложения и многопользовательские веб-сайты, обновляемые в реальном времени
-
Совместимость с любыми браузерами
-
За счет отсутствия точек отказа, отсутствие DDOS атак
-
Защита криптографией на основе экосистемы SmartHoldem
-
Работа на мобильных устройствах, в связи с их растущим распространением
-
Новые протоколы сжатия информации
-
Безтрекерный торрент протокол на основе DHT Kademlia
-
Быстрые децентрализованные блоги и форумы
-
Децентрализованная социальная сеть
-
Обеспечение дополнительной безопасности и анонимности с помощью tor-сетей
-
Децентрализованный мессенжер на основе стелс-технологии, описанной мной в более ранних публикациях. С поддержкой приватных сообщений и возможно pgp ключей + peerjs
-
Оплачиваемое распределенной защищенное хранилище больших объемов конфиденциальных данных (proof-of-capacity).
-
Каталог и Хранилище приложений разработчиков (некий децентрализованный гугл маркет)
-
Безпарольная авторизация bip39, bip44 (приватный ключ хранится у вас и этого достаточно). Больше никаких email для подтверждения на сайтах..
-
Почтовый сервис (думаю еще многие пользуются почтами, но в этом случае ваши письма никто кроме вас не прочитает)
-
Шифрование соединений
-
Совместимость на стартовом этапе с обычным интернетом через proxy gates
-
API взаимодействия с базами данных в динамических приложениях
Подобный подход предоставляет решения реализации умных контрактов за пределами BlockChain
Экономика распределенной сети SmartHoldem
В текущее время экономика, есть развитие и движение, с экономикой сеть обречена на широкое распространение. К абсолютно всем бесплатным сервисам общество не готово психологически. Надеюсь, в определенном будущем мы научимся оценивать труд наших собратьев в других не экономических единицах.
Продолжение следует...