Краткое введение в Ethereum Swarm

Краткое введение в Ethereum Swarm

14 февраля 2022 г.

С блокчейном Ethereum в качестве процессора мирового компьютера Swarm лучше всего рассматривать как его «жесткий диск». - Виктор Трон, руководитель группы SWARM


Идея Swarm пришла от Гэвина Вуда, одного из основателей Ethereum. Когда Виктор Трон и Даниэль Надь присоединились к Ethereum Foundation в 2015 году, они взяли на себя управление проектом в рамках команды Geth Фонда. Это было более 5 лет назад. Теперь, в 2022 году, Swarm более или менее функционален и начал свой долгий путь как автономный проект. Swarm имеет собственный фонд и завершил свое первоначальное предложение токенов с инвестициями более 15 миллионов долларов.


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


Ethereum Swarm — это, по сути, гигантский [DHT] (https://en.wikipedia.org/wiki/Distributed_hash_table). DHT используются во многих решениях для хранения (таких как BitTorrent или IPFS) в качестве базы данных, где одноранговые узлы могут найти, где хранятся данные. Swarm использует DHT по-другому, потому что сами данные хранятся в DHT. Swarm называет это решение DISC, что означает распределенное неизменяемое хранилище для фрагментов. Когда вы что-то сохраняете в Swarm, он разбивает его на куски по 4 КБ. Эти фрагменты адресуются по хэшу фрагмента и хранятся на узлах, ближайших к адресу фрагмента. Каждый фрагмент хранится избыточно на 4 ближайших узлах.


Сетевая структура Swarm стабильна и оптимизирована для DHT. Благодаря этой оптимизированной сетевой структуре поиск контента в Swarm действительно эффективен. Swarm называет это подключением Kademlia. Если вам нужно более подробное объяснение структуры сети, вы можете прочитать об этом в [Книге Swarm] (https://docs.ethswarm.org/the-book-of-swarm.pdf).


Swarm основан на libp2p (основная сеть), но узлы адресуются по адресу Ethereum (оверлейная сеть). Метод подписи такой же, как и в Ethereum, и подписи можно легко проверить с помощью смарт-контрактов. Это делает Swarm идеальным решением для хранения Ethereum.


Анонимность — один из ключевых моментов Swarm. Каждый узел знает только ограниченное число своих соседей из-за связности Kademlia. Если фрагмент не найден ни у одного из соседей, они спрашивают своих соседей и т. д. и пересылают содержимое обратно. Невозможно узнать, кто является запросчиком, а кто источником данного фрагмента. Swarm называет этот метод переадресацией Kademlia.


Пропускная способность — дефицитный ресурс в Swarm, из-за этого, когда вы извлекаете чанк, вы должны заплатить небольшую сумму BZZ (собственный токен SWarm) за извлечение. Это что-то вроде стоимости газа в сети Ethereum. Если у вашего соседа есть кусок, он может сохранить BZZ. Если нет, то он должен заплатить за это одному из своих соседей. Это решение побуждает узлы кэшировать часто запрашиваемое содержимое и хранить его рядом с клиентами. Это делает Swarm действительно эффективной CDN. (Swarm был бы идеальным решением для децентрализованной потоковой передачи мультимедиа.)


У Swarm есть очень интересное решение для учета. Это что-то вроде [Lightning Network] (https://en.wikipedia.org/wiki/Lightning_Network), где микротранзакции происходят вне сети. В случае Swarm узлы отслеживают баланс пропускной способности. Если узел отдает и возвращает одинаковое количество фрагментов другому узлу, баланс будет близок к 0. Если этот баланс превышает лимит, узел должен заплатить чеком.


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


Есть два способа хранения данных в Swarm. Первый — это глобальное закрепление. В этом случае вы храните свои данные на своем диске, а DHT содержит только ссылку на них. Это очень похоже на метод, используемый [IPFS] (https://hackernoon.com/a-beginners-guide-to-ipfs-20673fedd3f) для хранения данных. Это бесплатно, потому что вы храните свои собственные данные, а не анонимные, и вам приходится иметь дело с избыточностью и т. д. Другой способ хранения — использование почтовой марки. Почтовая марка — это что-то вроде чека, который может использоваться узлами хранения для вывода BZZ, если они смогут доказать, что хранят ваш контент. В этом случае контент хранится в правильном месте в DHT, источник данных невозможно отследить, а избыточное хранилище предоставляется сетью Swarm.


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


Фид представлен SOC, где идентификатор хешируется из темы и порядкового номера. Канал — это «виртуально изменяемая» структура данных в неизменном хранилище. Когда владелец хочет изменить содержание своей ленты, он увеличивает порядковый номер и публикует новый SOC. Клиент Swarm может эвристически найти самый высокий порядковый номер и получить самый последний контент. Это изменяемое содержимое можно использовать по-разному. Например, вы можете присвоить его своему адресу ENS и обновлять контент без какого-либо взаимодействия с блокчейном.


Другой тип чанков — это троянские чанки. Как я писал в начале, чанки хранятся в DHT на узлах, которые находятся рядом с ключом чанка по адресу узла (адресу Ethereum). Эту функцию Swarm можно использовать для отправки прямых сообщений узлам. В этом случае сообщение упаковывается в чанк (это троянский чанк) и отправляется в сеть. Сеть пытается сохранить фрагмент в правильном месте, и узлы пересылают его целевому узлу. Сообщение закодировано, поэтому только целевой узел сможет его прочитать. Если целевой узел находится в автономном режиме, соседи сохранят его как обычный фрагмент, если он имеет почтовую марку. У Swarm есть высокоуровневый API для управления этими фрагментами троянов, они назвали его PSS. PSS — это что-то вроде службы анонимной почты, которая является полнофункциональной заменой мертвой службы обмена сообщениями Whisper Ethereum.


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


В конце статьи хотелось бы сказать большое «Спасибо!» для Виктора (Трона), который терпеливо отвечал на мои вопросы и помог мне понять основы Swarm.



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE