Блокчейн 2.0. Введение в Hyperledger Sawtooth [Часть 12]
После подробного обсуждения проекта Hyperledger Fabric в этом блоге, пришло время перейти к следующему интересующему нас проекту в лагере Hyperledger. Hyperledger Sawtooth — это вклад Intel в миссию консорциума Blockchain по разработке готовых к использованию модульных распределенных реестров и приложений корпоративного уровня. Sawtooth — это еще одна попытка создать простой в развертывании реестр блокчейнов для предприятий, учитывающих ограничения ресурсов и требования безопасности. Хотя такие платформы, как Ethereum, теоретически будут предлагать аналогичную функциональность, если попасть в умелые руки, Sawtooth легко предоставляет широкие возможности настройки и создается с нуля для конкретных случаев использования на уровне предприятия.
На странице проекта Hyperledger есть вводное видео, подробно описывающее архитектуру и платформу Sawtooth. Мы прикрепляем его здесь, чтобы читатели могли получить краткую информацию о продукте.
Переходя к тонкостям проекта Sawtooth, отметим, что существует пять основных и существенных отличий между Sawtooth и его альтернативами. В дальнейшем в посте будут рассмотрены эти различия, а в конце будет упомянут пример реального использования Hyperledger Sawtooth в управлении цепочками поставок.
Отличие 1: Алгоритм консенсуса — PoET
Это, пожалуй, одно из самых заметных и значительных изменений, которые Пилозуб выдвигает на первый план. Хотя изучение всех различных алгоритмов консенсуса, которые существуют для платформ блокчейна в наши дни, выходит за рамки этой статьи, следует отметить, что Sawtooth использует алгоритм консенсуса на основе Proof Of Elapsed Time (POET). . Такая система проверки транзакций и блоков в блокчейне считается ресурсоэффективной в отличие от других систем, требующих больших вычислений, которые используют алгоритмы Доказательство работы или Доказательство доли.
POET предназначен для использования функций безопасности и защиты от несанкционированного доступа современных процессоров с эталонными реализациями, использующими архитектуру доверенной среды выполнения Intel (TEE) на своих современных процессорах. Тот факт, что выполнение программы проверки использует TEE вместе с системой «лотереи», которая реализована для выбора валидатора или узла. > выполнение запроса делает процесс создания блоков на архитектуре Sawtooth одновременно безопасным и ресурсоэффективным.
Алгоритм POET по сути выбирает валидатора случайным образом на основе случайного процесса. Вероятность выбора конкретного узла зависит от множества указателей, один из которых зависит от количества вычислительных ресурсов, которые указанный узел уже внес в реестр. Затем выбранный валидатор приступает к маркировке указанного блока данных и передает его разрешенным узлам в сети, чтобы оставалась надежная запись неизменности блокчейна. Этот метод выбора узла «валидатор» был разработан компанией Intel и на данный момент не демонстрирует никаких отклонений и/или ошибок при выполнении своей функции.
Отличие 2: Полностью разделенный уровень абстракции между уровнем приложения и базовой системой.
Как уже упоминалось, платформа Sawtooth выводит модульность на новый уровень. Здесь, в эталонной реализации, которая используется в основе проекта Hyperledger, базовая система, которая позволяет пользователям создавать распределенный реестр, и среда выполнения приложений (виртуальная среда, в которой приложения, разработанные для запуска в блокчейне, также известном как смарт-контракты или chaincode), разделены полным уровнем абстракции. По сути, это означает, что разработчики могут отдельно кодировать приложения на любом языке программирования по своему выбору, вместо того, чтобы соответствовать языкам, специфичным для платформы, и следовать им. Платформа Sawtooth обеспечивает поддержку следующих языков контрактов «из коробки»: Java, Python, C++, Go. , JavaScript и Rust. Это различие между уровнями базовой системы и приложения достигается путем определения специального семейства транзакций для каждого приложения, разрабатываемого на платформе.
Семейство транзакций содержит следующее:
- Обработчик транзакций: по сути, логика вашего приложения или бизнес-логика.
- Модель данных: система, которая определяет и управляет хранением и обработкой данных на уровне системы.
- Обработчик на стороне клиента для обработки стороны вашего приложения конечного пользователя.
Несколько семейств низкоуровневых транзакций, подобных этому, могут быть определены в разрешенном блокчейне и использоваться модульным образом во всей сети. Например, если консорциум банков решит внедрить его, они могли бы объединиться и определить общие функции или правила для своих приложений, а затем подключить и использовать семейства транзакций, которые им нужны, в своих соответствующих системах, без необходимости разрабатывать все самостоятельно.
Отличие 3: СЕТ
Нет сомнений в том, что в будущем блокчейна Ethereum станет одним из ключевых игроков. Сотрудники фонда Hyperledger это хорошо знают. Проект Hyperledger Burrow фактически предназначен для решения проблемы существования организаций, работающих на нескольких платформах, предоставляя разработчикам возможность использовать спецификации блокчейна Ethereum для создания пользовательских распределенных приложений с использованием EVM. > (виртуальная машина Ethereum).
По сути, Burrow позволяет настраивать и развертывать DApps на базе Ethereum (написанные в solidity) в закрытых блокчейнах (разработанных для использования в фонде Hyperledger). Проекты Burrow и Sawtooth объединились и создали SETH. Проект интеграции Sawtooth-Ethereum (SETH) предназначен для добавления функциональности и совместимости смарт-контрактов Ethereum (solidity) к сетям распределенных реестров на основе Sawtooth. Гораздо менее известная задача SETH заключается в том, что приложения (DApps) и смарт-контракты, написанные для EVM, теперь можно легко переносить на Sawtooth.
Отличие 4: принцип ACID и возможность пакетной обработки.
Новаторской особенностью Sawtooth является его способность группировать транзакции, а затем упаковывать их в блок. Блоки и транзакции по-прежнему будут подчиняться принципу ACID (автоматичность, консистентность, Iизоляция и Долговечность). Значение этих двух фактов подчеркивается на следующем примере.
Допустим, у вас есть 6 транзакций, которые нужно упаковать в два блока (4+2). Блок A имеет 4 транзакции, каждая из которых должна пройти успешно, чтобы следующий блок из 2 транзакций получил метку времени и был проверен. Если они успешны, обрабатывается следующий блок из двух транзакций, и даже если они успешны, весь пакет из 6 транзакций считается успешным, а общая бизнес-логика считается успешной. Например, предположим, вы продаете автомобиль. Чтобы сделка считалась действительной, необходимо завершить различные транзакции на концах покупателя (блок A) и продавца (блок B). Право собственности передается только в том случае, если обе стороны успешно осуществили свои отдельные сделки.
Такая функция улучшит подотчетность отдельных лиц за счет разделения ответственности и улучшит распознаваемость ошибок и ошибок по тому же принципу. Принцип ACID реализуется путем написания специального процессора транзакций и определения семейства транзакций, которое будет хранить данные в указанной блочной структуре.
Отличие 5: Параллельное выполнение транзакций
Платформы блокчейна обычно следуют последовательному маршруту первым пришел - первым обслужен для выполнения транзакций и использует для этого систему очередей. Sawtooth обеспечивает поддержку как последовательного, так и параллельного выполнения транзакций. Параллельная обработка транзакций обеспечивает значительный прирост производительности для еще более быстрых транзакций за счет сокращения общих задержек транзакций. На платформе одновременно будут обрабатываться более быстрые транзакции, а также более медленные и крупные транзакции, а не транзакции всех типов, которые придется ждать.
Методология, используемая для реализации парадигмы параллельных транзакций, эффективно решает проблемы и ошибки двойных расходов, возникающие из-за множества изменений, вносимых в одно и то же состояние, путем определения специального планировщика для сети, который может идентифицировать процессы и их предшественников.
Реальный пример использования: управление цепочками поставок с использованием Sawtooth в сочетании с Интернетом вещей.
На официальном сайте Sawtooth в качестве примера использования платформы Sawtooth приводится отслеживание морепродуктов. Базовый шаблон применим практически для всех случаев использования, связанных с цепочкой поставок.
Рис. 1. С официального сайта Hyperledger Sawtooth.
Традиционные решения по управлению цепочками поставок в этой сфере работают в основном посредством ручного ведения учета, что оставляет место для массового мошенничества, ошибок и серьезных проблем с контролем качества. Интернет вещей упоминается как решение для решения таких проблем в цепочках поставок в повседневном использовании. Недорогие RFID-метки с поддержкой GPS можно прикреплять к свежему улову или продуктам в зависимости от обстоятельств и автоматически сканировать для обновления в отдельных центрах обработки. Покупатели или посредники могут легко проверять и/или отслеживать информацию, используя клиента на своем мобильном устройстве, чтобы узнать, по какому маршруту прошел их ужин, прежде чем он попадет на их тарелки.
Хотя отслеживание морепродуктов кажется первой мировой проблемой в таких странах, как Индия, изменения, которые система с поддержкой Интернета вещей может привнести в системы государственной доставки в развивающихся странах, могут стать долгожданным изменением. Приложение доступно для демо-версии по этой ссылке, и пользователям предлагается поэкспериментировать с ним и адаптировать его в соответствии со своими потребностями.
Ссылка:
- Официальная документация Hyperledger Sawtooth