Ответ 1
Вот важные различия, которые следует учитывать при выборе между Hyperledger Fabric и Hyperledger Sawtooth:
-
Разрешенные /Permissionless
-
Hyperledger Sawtooth поддерживает как разрешенные, так и неразрешенные сети блокчейнов. Sawtooth имеет гибкий подход с использованием ролей и разрешений.
-
Hyperledger Fabric поддерживает только разрешенные сети блокчейнов. У Fabric есть предписывающий/четко определенный подход с помощью подключаемых поставщиков услуг членства (MSP), который обеспечивает более жесткую структуру управления.
-
-
Консенсусные алгоритмы
-
Sawtooth использует Proof of Elapsed Time (PoET) на основе Intel Software Guard Extensions (SGX) для выбора лидеров для резки блоков на основе случайного времени ожидания, более энергоэффективного подхода, чем традиционный Proof of Work, который позволяет масштабировать до очень больших сетей.
-
Fabric поддерживает подключаемые согласованные алгоритмы для упорядочения транзакций в блоки, с поддержкой Kafka начиная с версии v1.0 и реализацией Raft и BFT.
-
-
Умный контрактный язык
-
Hyperledger Sawtooth поддерживает контракты на основе Go, JavaScript, Java, Python, Rust и Ethereum Solidity.
-
Hyperledger Fabric поддерживает контракты на основе Go, JavaScript, Java и Ethereum Solidity.
-
-
Конфиденциальность
-
В Hyperledger Sawtooth узлы имеют доступ ко всем данным транзакций.
-
В Hyperledger Fabric существует несколько уровней конфиденциальности. Вы можете определить "каналы" для полной изоляции данных между группой участников, где каждый канал, по сути, является собственной приватной цепочкой блоков. Или вы можете использовать "частные коллекции данных", когда участники должны осуществлять транзакции по одной и той же цепочке блоков, но хранить данные в тайне для подмножества участников (и, возможно, для регуляторов/аудиторов). Частные данные являются общими одноранговыми, хэши хранятся в блокчейне в качестве доказательства того, что все одноранговые узлы могут проверять транзакции. Кроме того, вы можете использовать Identity Mixer для сохранения анонимности отправителей транзакций.
-
-
Поток транзакций
-
Hyperledger Sawtooth поддерживает традиционный блокчейн-поток Order-Execute-Commit.
-
Hyperledger Fabric поддерживает уникальную модель одобрения, в которой транзакции первоначально выполняются на наборе одноранговых узлов и следует модели Execute-Order-Commit. Набор требуемых индоссантов может быть определен на уровне контракта или на уровне данных. Этот подход улучшает масштабируемость, предотвращает недетерминированность в коде контракта и позволяет выполнять транзакции конфиденциально между набором транзакций, как упомянуто выше.
-
-
Разнообразный
-
Hyperledger Sawtooth поддерживает пакеты транзакций как единицу работы, т.е. либо все транзакции в пакете фиксируются, либо ни одна из них не фиксируется.
-
Hyperledger Sawtooth включает в себя (общий) сервер REST API
-
Hyperledger Fabric поддерживает запросы из цепочки кодов смарт-контрактов с использованием запросов диапазона ключей или запросов JSON (при использовании CouchDB в качестве базы данных состояний)
-