“Sawtooth Sabre is our new transaction family for on-chain WebAssembly smart contracts”
Hyperledger Sawtooth 1.1 was announced earlier this month. The latest release focuses on two major new features, namely an improved consensus interface and support for WebAssembly smart contracts. We talked to James Mitchell, Sawtooth maintainer and president of Bitwise IO about the most important changes in Sawtooth 1.1, its use cases and what’s next for this framework.
JAXenter: What has changed since Sawtooth 1.0 was released? What’s been added or improved?
James Mitchell: There are a lot of exciting features and improvements in Sawtooth 1.1. We have designed a new consensus interface which supports lottery-style and voting-style consensus algorithms. In addition to adding consensus interface support to the existing Proof of Elapsed Time (PoET) consensus, we have also implemented Raft and PBFT consensus engines.
Sawtooth now supports three different types of true, distributed consensus which don’t rely on a centralized ordering service. We believe Sawtooth represents a fantastic place for the development of new consensus engines, as most of the heavy lifting of networking, messaging, transaction/block validation, and state management is handled by the core platform. We hope to see Sawtooth’s Consensus Engine interface adopted as a broader standard.
Sawtooth Sabre is our new transaction family for on-chain WebAssembly (WASM) smart contracts. It includes an SDK for writing smart contracts in Rust and compiling them to WASM byte-code for deployment on-chain.
We’ve also continued work on the incremental re-write of core validator components in Rust, added a feature for Merkle trie state pruning, and substantially improved the documentation of the system and its components.
JAXenter: What’s the most important change in Sawtooth 1.1?
James Mitchell: It’s a toss-up between the consensus interface and Sabre, but I’m going to give the nod to Sabre. Deploying and executing byte-code on-chain via transactions is a powerful model. Marrying that with the performance and language support benefits of WebAssembly (which will only improve as the WebAssembly ecosystem continues its rapid growth) completes the picture. Our SDKs for Rust Transaction Processors and Sabre contracts are compatible, so it’s just a recompilation to the WASM target to bring existing Rust Sawtooth Transaction Processors logic on-chain with Sabre.
In addition to improved interface, Sawtooth 1.1 also brings improved support for WebAssembly smart contracts.
JAXenter: Who should use Sawtooth and in which context?
Hyperledger Sawtooth is capable of representing and executing any business transaction in a multi-party context.
James Mitchell: Sawtooth is designed as a general-purpose platform for the definition and execution of transactions across a distributed network, governed by consensus. Sawtooth is a truly decentralized platform focused on solving problems of multi-party adversarial trust. Sawtooth’s consensus options, on-chain governance, and smart contract support for both Ethereum EVM contract byte-code (using Sawtooth Seth) and WebAssembly contract byte-code (using Sawtooth Sabre) make it a great choice for permissioned consortium networks and emerging use cases.
We have seen a lot of interest in supply chain use cases, but Sawtooth isn’t limited or focused on any single use case. It’s capable of representing and executing any business transaction in a multi-party context.
JAXenter: What’s next for Sawtooth?
James Mitchell: We are excited to wrap up the re-write of the core of Sawtooth in Rust and to continue adding features across the platform. If you are interested in getting involved, please join #sawtooth in the Hyperledger RocketChat and introduce yourself!