Недостаток IPFS
Когда дело доходит до децентрализованного хранения данных, Межпланетную файловую систему, известную как IPFS, невозможно обойти.
В качестве одного из наиболее заметных проектов децентрализованного хранения данных IPFS использует структуру данных Merkle DAG (Directed Acycle Graph), модификацию, основанную на дереве Меркла. С помощью этой структуры данных IPFS реализует адресацию контента и загрузку фрагментов файлов.
Говоря точнее, IPFS присваивает каждому файлу уникальное значение хеш-функции, аналогично отпечатку файла. Каждый корневой файл указывает на несколько файлов узлов, и как только содержимое файла узла изменяется, значение хеш-функции соответственно изменяется, в результате чего также изменяется хэш корневого файла.
Таким образом, IPFS сохраняет и находит файлы с уникальной адресацией на основе содержимого, а не адреса. Это означает, что если вы ищете файл, вам не нужно знать, где он находится, а только то, что он содержит. IPFS генерирует уникальный хэш для каждого файла, и когда пользователю нужно получить этот файл, ему нужно только спросить IPFS, у кого есть этот хеш, чтобы завершить поиск. Поскольку хеши предотвращают дублирование хранилища, файлы с одинаковым содержимым не дублируются IPFS. Такой подход оптимизирует хранилище и повышает производительность сети.

Механизм адресации контента — главное преимущество IPFS, но у каждой медали есть две стороны, но есть и недостаток. В IPFS после сохранения файла его нельзя изменить в системе, поскольку изменение содержимого файла изменяет хэш файла, и пользователь не может найти измененный файл по исходному значению хеш-функции. Это широко критикуемая проблема: IPFS не очень хорошо хранит файлы, которые необходимо время от времени обновлять и изменять.
Хотя IPFS хорошо подходит для хранения статических файлов, ей не хватает вычислительных возможностей и возможностей управления состоянием для более продвинутых функций, подобных базам данных, таких как изменчивость, контроль версий, контроль доступа и программируемая логика, которые необходимы разработчикам для создания полнофункциональных децентрализованных систем. Приложения. Поэтому существует острая необходимость в эффективном и децентрализованном решении для хранения динамических данных — Ceramic решает эту проблему с помощью NoSQL-подобной базы данных, позволяющей разработчикам хранить структурированный и изменяемый контент.
Создан для изменяемого контента
Конструкция хранилища Ceramic основана на IPFS и расширяет ее за счет децентрализованного динамического уровня хранения.
В Ceramic каждая порция информации представлена в виде журнала коммитов, доступного только для добавления, называемого «Поток», который показан в виде комбинации серых квадратов на рисунке ниже. Концепция Stream аналогична деревьям Git: исходное состояние (Genesis Commit) и каждое последующее изменение (Commit) хранятся в IPLD (межпланетные связанные данные, уровень IPFS, предназначенный для структур данных), и эти записи объединяются для формирования Транслировать. Поскольку потоки записывают «изменения», а не «снимки» результирующего состояния, необходимо только обработать все события в потоке, чтобы получить последнее состояние журнала.

Например, схема записи Ceramic выглядит следующим образом: изначально у Алисы и Боба есть по 10 долларов; во второй день Алиса переводит Бобу 5 долларов; на третий день Боб переводит Алисе 3 доллара. Это также очень похоже на реестр блокчейна, где в реестре не указывается баланс каждого пользователя, и для получения окончательного баланса пользователя необходимо рассчитать все промежуточные процессы.
Для сравнения, традиционная схема записи IPFS такова: в файле a Алиса и Боб имеют по 10 долларов каждый; в файле b у Алисы 5 долларов, а у Боба 15 долларов; а в файле c у Алисы 8 долларов, а у Боба 12 долларов. Здесь каждая запись представляет собой снимок результирующего состояния, и новый снимок необходимо создать, как только произойдет изменение.
Благодаря такой конструкции Ceramic гарантирует, что каждый журнал имеет уникальный идентификатор потока с глобальным единым именем и отсутствие изменений имени из-за изменений содержимого. Для каждой записи требуется авторизация пользователя, и весь процесс аналогичен бухгалтерскому учету в блокчейне, за исключением того, что записываются не данные транзакций, а другое изменяемое содержимое, например информация об учетной записи пользователя.
Компонуемость данных
Ceramic обеспечивает компоновку данных между приложениями, прежде всего, за счет использования новой абстракции, называемой моделями данных.
Модели данных обычно представляют собой единую логическую функцию приложения, например профиль пользователя, социальный граф или блог. Например, вы можете себе представить, что каждая децентрализованная реализация Twitter будет работать на нескольких общих моделях данных: одна для твитов каждого пользователя, одна для его социального графа, одна для его личных сообщений и т. д. Приняв одни и те же базовые модели данных, приложения смогут для естественного взаимодействия с одними и теми же данными.
В некотором смысле, вы можете сравнить использование Ceramic стандартов моделей данных с использованием стандартов токенов для реестров активов. Например, в Ethereum введение стандартов взаимозаменяемых токенов ERC20 и невзаимозаменяемых токенов ERC721 привело к появлению целых экосистем токенов и финансовых приложений, которые изначально взаимодействуют друг с другом. Керамика привносит ту же концепцию в данные.
Ceramic использует подход сообщества к созданию этих моделей данных, что позволяет любому разработчику легко определять, делиться и повторно использовать свои модели с другими разработчиками в экосистеме. По мере того, как сообщество создает все больше моделей данных, вы увидите постоянное увеличение количества и разнообразия приложений, созданных с использованием компонуемых данных.
Возможность компоновки, реализованная таким образом, также улучшает работу разработчиков. Создание приложения на Ceramic похоже на просмотр рынка моделей данных, подключение их к вашему приложению и автоматическое получение доступа ко всем данным в сети, хранящимся в этих моделях. Используя Ceramic, разработчикам не придется беспокоиться о загрузке своего приложения с использованием собственных разрозненных пользователей и данных. Скорость накопления инноваций среди разработчиков резко возрастет.
Масштабируемость
Ceramic обеспечивает масштабируемость за счет сегментированной среды выполнения. Все потоки на Ceramic поддерживают свое состояние независимо, а сетевые узлы выполняют потоковые транзакции параллельно. Этот подход, в отличие от большинства блокчейнов, позволяет Ceramic работать с масштабируемостью, необходимой для децентрализованных версий социальных приложений, таких как Twitter или Facebook.
В отличие от традиционных блокчейн-систем, где масштабируемость ограничена одной глобальной виртуальной средой выполнения, а состояние единого реестра распределяется между всеми узлами, каждый узел Ceramic действует как отдельная среда исполнения для выполнения вычислений и проверки транзакций в потоках — глобального бухгалтерская книга. Такое «встроенное» сегментирование выполнения позволяет сети Ceramic Network масштабироваться горизонтально, чтобы распараллелить обработку растущего числа одновременных потоковых транзакций по мере увеличения количества узлов в сети. Такая конструкция необходима для обработки масштаба мировых данных, который на несколько порядков превышает пропускную способность, необходимую для финансового блокчейна. Еще одним преимуществом этой конструкции является то, что узел Ceramic может выполнять потоковые транзакции в автономной среде, а затем синхронизировать обновления с остальной частью сети, когда она снова подключается к сети.
СДЕЛАЛ решение
Компания Ceramic также предлагает гибкое и надежное решение для идентификации под названием IDX, первое полнофункциональное решение для децентрализованной идентификации (DID).
IDX — это протокол межсетевой идентификации для открытых приложений с децентрализованной идентификацией и совместимыми пользовательскими данными, который позволяет пользователям создавать единую цифровую идентификацию, состоящую из всех их данных, а также позволяет разработчикам устранять разрозненность и свободно обмениваться пользовательскими данными между приложениями. Как показано на рисунке ниже, он предоставляет децентрализованный индекс, который позволяет связать структурированные данные с децентрализованным идентификатором (DID), а данные определяются определениями и сохраняются в записях.

Кроме того, IDX можно использовать с любым хранилищем данных, таким как Ceramic, Textile, OrbitDB, IPFS, Sia, Arweave, реестрами блокчейнов или даже с централизованными базами данных, и поддерживает аутентификацию из любого типа кошелька Web3.
IDX отлично подходит для децентрализованного связывания с пользователем профилей пользователей, портативных социальных графиков, оценок репутации, проверяемых заявлений, пользовательского контента, данных приложений, настроек, доменных имен, адресов блокчейна и учетных записей социальных сетей Web2.
Заключение
Подводя итог, можно сказать, что появление Ceramic значительно расширило возможности создания Web3 и открыло новые возможности для разработчиков Web3. Независимо от того, какой общедоступный блокчейн (Ethereum, BSC, Polygon, Avalanche и т. д.) используют разработчики, они могут одновременно использовать Ceramic для функций, ориентированных на данные, чтобы улучшить свои приложения. Кроме того, благодаря гибкой системе учетных записей Ceramic на основе DID, Ceramic естественным образом взаимодействует с системами учетных записей и ключей текущих основных блокчейнов, что обеспечивает пользователям большое удобство.
Приятно видеть, что на платформе Ceramic уже разработано множество проектов социальных платформ DID и Web3. Среди них можно назвать несколько заслуживающих внимания проектов: CyberConnect, платформа промежуточного программного обеспечения для социальных графов; Orbis, платформа Twitter Web3; и The Convo Space, платформа для обмена мгновенными сообщениями и т. д. Мы с нетерпением ждем новых возможностей, которые инфраструктура сети передачи данных Ceramic может предоставить на уровне приложений Web3.
Отказ от ответственности: Это исследование предназначено только для информационных целей. Он не является инвестиционным советом или рекомендацией покупать или продавать какие-либо инвестиции и не должен использоваться при оценке целесообразности принятия какого-либо инвестиционного решения.
🐦 @chestersigned
📅 8 мая 2022 г.
Ссылки:
https://developers.ceramic.network/learn/welcome/
https://blog.ceramic.network/what-is-ceramic/
https://multicoin.capital/2022/02/16/the-composable-web3-data-network/
https://blog.ipfs.io/2021-07-13-ceramic-mainnet-launch/