Open In App

Hyperledger Sawtooth in Blockchain

Improve
Improve
Like Article
Like
Save
Share
Report

Hyperledger Sawtooth is a corporate blockchain platform that creates distributed ledger networks and applications. The design philosophy focuses on maintaining distributed ledgers and securing smart contracts, especially for enterprise applications. Sawtooth uses blockchain technology as a service (BaaS).
Sawtooth is very modular as well. This modularity allows companies and consortiums to decide on policy in their respective fields of competence. Applications can choose the transactional, permissioning, and consensus algorithms that best meet their unique business requirements because of Sawtooth’s fundamental design. The majority of blockchain-based systems in use today host and execute both their core and their apps on the same platform, which may have an impact on both security and performance.

What is Hyperledger Sawtooth?

Hyperledger sawtooth is an open-source enterprise blockchain-as-a-service platform that can run customized smart contracts without needing to know the underlying design of the core system. 

  • It supports a variety of consensus algorithms including PBFT and PoET.
  • Its user-friendly design gives a flawless performance for enterprise usage. 
  • It supports separate permissioning i.e. there is no centralized service that can reveal confidential information.

How does Hyperledger Sawtooth Works?

Hyperledger Sawtooth is a modular platform for building, deploying, and running distributed ledgers (also called blockchains). It includes a novel consensus algorithm called “Proof of Elapsed Time” (PoET), which uses trusted execution environments (TEEs) to ensure that consensus is reached in a fair and efficient manner. Sawtooth also has a modular design that allows for pluggable consensus algorithms and supports both permissioned and permissionless networks.

  • Sawtooth’s core component is a distributed ledger that records a log of all transactions and smart contract execution. The ledger is replicated across all nodes in the network, and transactions are processed in parallel to increase performance.
  • Sawtooth also includes a smart contract engine called “Sawtooth Lake” which allows for easy deployment and execution of smart contracts. The platform also provides a RESTful API for interacting with the ledger and submitting transactions.
  • Sawtooth is designed to be highly scalable and can support networks with thousands of nodes and millions of transactions per second. 
  • Overall, Hyperledger Sawtooth is a flexible, powerful platform for building and deploying distributed ledgers that can be used for a wide range of applications, such as supply chain management, digital asset tracking, and voting systems.
  • Hyperledger Sawtooth makes it simpler to develop apps while retaining system security by separating the core ledger system from the environment pertinent to each application. 
  • Application developers can describe the business rules appropriate for their application without being familiar with the core system’s underlying architecture. This design enables developers to build applications that can be hosted, managed and used outside of the core blockchain network in their favorite programming language.

Hyperledger Sawtooth Consensus Algorithms

Hyperledger Sawtooth includes a modular design that allows for pluggable consensus algorithms. Some of the consensus algorithms that are supported by Sawtooth include:

  1. PoET (Proof of Elapsed Time): This is the default consensus algorithm in Sawtooth. It uses trusted execution environments (TEEs) to ensure that consensus is reached in a fair and efficient manner. PoET uses a random leader election process and a wait time to ensure that all participants have an equal chance of being selected as the leader.
  2. PBFT (Practical Byzantine Fault Tolerance): This is a classic consensus algorithm that is widely used in distributed systems. It uses a replica voting process to ensure that the network reaches a consensus. PBFT is suitable for permissioned networks with a known set of participants.
  3. Raft: Designed for distributed systems with a high pace of change, Raft is a consensus algorithm. It makes use of a leader-based methodology and enables quick network partition recovery.
  4. Devmode: This straightforward consensus technique is meant for testing and development. Without requiring consensus, it enables the parallel processing of transactions.

More advanced consensus algorithms like PoA (Proof of Authority), PoS (Proof of Stake), etc can also be used with Sawtooth by installing the corresponding consensus engine.
Overall, Sawtooth’s modular design allows for the use of different consensus algorithms based on the specific requirements of the application, such as performance, security, and trust model.

Features of the Hyperledger Sawtooth

1. Separation Between the Application Level and the Core System

Sawtooth separates the application level from the core system level, making it easier to design and deploy programs. Application developers can design contract logic in any language of their choice with the help of Sawtooth. Sawtooth offers an abstraction for smart contracts. Applications include native business logic or virtual machines for smart contracts. Actually, a single blockchain may support both types of applications. These architectural options are made possible by Sawtooth on the transaction-processing layer, enabling the coexistence of several application types in the same blockchain network instance.

2. Sawtooth Permissioning Features in Private Networks

Sawtooth was created to address the problems associated with permissioned (private) networks. Sawtooth node clusters can be readily deployed with independent permissioning. No centralized service exists that might accidentally reveal transactional patterns or other private data. Roles and identities are among the parameters that define permissions stored on the blockchain so everyone using the network can access them.

3. Parallel Transaction Execution

Most blockchains demand serial transaction processing to ensure consistent ordering at each network node. A cutting-edge parallel scheduler in Sawtooth divides transactions into parallel flows. Sawtooth isolates the execution of transactions from one another while preserving contextual changes based on the locations in the state that a transaction accesses. Though it is feasible, transactions are carried out in parallel to avoid double-spending even when the same state is modified more than once. Over serial execution, parallel scheduling offers a significant potential speed boost.

4. Ethereum Contract Compatibility with Seth

The Sawtooth platform is now interoperable with Ethereum thanks to the Sawtooth-Ethereum integration project, Seth. The Seth transaction family enables the deployment of EVM (Ethereum Virtual Machine) smart contracts on Sawtooth.

5. Dynamic Consensus

Consensus in a blockchain refers to reaching an understanding among network participants. To reach a consensus with arbitrary flaws, algorithms typically vote among a predetermined group of participants. Both Nakamoto-style consensus and variations of the conventional Byzantine Fault Tolerance (BFT) algorithms employ numerous rounds of explicit voting to reach consensus. The former elects a leader by some sort of lottery system. Sawtooth separates consensus from transaction semantics and abstracts the fundamental ideas behind the consensus. As consensus engines that communicate with the validator via the consensus API, the Sawtooth consensus interface permits plugging in various consensus implementations.

6. Sample Transaction Families

A transaction family, which functions as a transaction processor on a Sawtooth node, implements the data model and transaction language in a Sawtooth application. Sawtooth includes numerous fundamental transaction families as models, while the majority of application developers create bespoke transaction families to suit the particular needs of their ledgers:

  • For testing deployed ledgers, developers use an integer key.
  • On-chain configuration settings can be stored using the reference implementation provided by Settings.
  • Identity-Manages on-chain permissioning for transactor and validator keys to simplify handling identities for collections of public key lists.
  • Event System: Events can be created and broadcast using Hyperledger Sawtooth. This enables applications to: 
    • Get notified when blockchain-related events happen, like when a new block is committed or a fork occurs.
    • Subscribe to events specific to an application and specified by a transaction family.
    • Inform clients how a transaction was carried out without storing the details in the state.
    • Over a ZMQ Socket, subscriptions are submitted and maintained.

Elements of Hyperledger Sawtooth Architecture

Hyperledger Sawtooth Architecture

 

Let’s discuss the core elements of the Hyperledger Sawtooth architecture:

1. Event System

By looking at any Hyperledger Sawtooth example, you can observe that the event system primarily ensures that events are created without any problems and transmitted to nodes. As a result, if you use the event system, you may create an application that subscribes to events and automatically fetches new information. These things usually make the Sawtooth platform run more smoothly. Assisting the nodes in gathering the information they require from the events contributes to the maintenance of full consensus.

2. Sawtooth-Ethereum Integration Project (Seth)

It’s one of Sawtooth’s main characteristics. You need to be familiar with this functionality if you want to understand Hyperledger Sawtooth. It appears in every Hyperledger Sawtooth example that incorporates Ethereum features. But what exactly does it do? What applications do they have for Ethereum properties? So, this minor component aids in bridging the gap between the two platforms. As a result, this element can be used to achieve compatibility between these two platforms. Do you have any idea how many chances Seth could present? It’s a fantastic addition to the Hyperledger Sawtooth design, so use it if your commercial project requires it.

3. Pluggable Consensus Algorithms

Including pluggable consensus algorithms in the Hyperledger Sawtooth architecture is another fascinating feature. The pluggable consensus mechanism is a fantastic new advancement for the Blockchain sector. It allows you to select the consensus mechanism that your platform requires. Naturally, only some consensus is appropriate for some use situations. To construct a product based on business Blockchain, you must have flexibility. As a result, Sawtooth’s pluggable consensus brings dynamics to the fore.

4. Transaction Family Models 

Transaction families provide a variety of operations, including providing your smart contract with functionalities. You can’t use the Hyperledger Sawtooth system without using transaction families, as you can see by looking at an example.

  • Block Info Transaction Family: The Block Info transaction family enables you to store block-related information.
  • Small Bank Transaction Family: In practice, this family is best for evaluating and testing the viability of your company.
  • Setting Transaction Family: You can store on-chain setups with the help of the Settings family, which also gives you a reference model for doing so.
  • Validator Registry Transaction Family: Use this to expand the system’s validators by adding new members. You cannot add any validators without using this. It’s, therefore, absolutely necessary.
  • Integer Key Transaction Family: One of the best transaction families that enable resource-free testing of all deployed ledgers.
  • XO Transaction Family: This is a more entertaining interpretation of the entire network. A tic-tac-toe game was also included in Sawtooth because the network’s creators wanted to give it a little extra flair. Thus, you can play with any node using this.
  • Identification Transaction Family: It is mostly for data preservation. Specifically, the data that validators are permitted to access. More importantly, it keeps track of details about the nodes, including their public keys and other things.

There are also two additional transaction families on the system. They are relatively recent additions:

  • Seth Transaction Family: Thanks to the Seth transaction family, you can use applications created for the Ethereum blockchain on the network. This implies that you can use smart contracts built on Solidity or other apps.
  • Sabre Transaction Family: The Sabre Transaction Family is another method for using smart contracts. This can be used to run smart contracts on WASM or virtual WebAssembly machines. It also makes it possible for smart contracts to be carried out on the chain.

Applications of Hyperledger Sawtooth

  • X O: Plays a game of tic tac toe to illustrate how to create simple transactions. The construct and take transactions in the X O transaction family provide an X O command that enables two players to play the game. You may check the  X O Transaction Family for additional details.
  • Sawtooth Supply Chain: The Sawtooth supply chain exhibits how to track the origins and other relevant contextual data of any item. Supply Chain offers a sample application that includes a web app, a bespoke REST API, and a transaction processor. This example application shows how to synchronize the blockchain state to a local database for complicated queries as well as a decentralized way for in-browser transaction signing.
  • Sawtooth Marketplace: On the blockchain, the Sawtooth marketplace instructs users on how to exchange particular quantities of specialized assets. With the help of a Sawtooth validator and a few other components, this example application will run a Sawtooth blockchain and offer a straightforward RESTful API to communicate with it.

Supported Languages for Transaction Process

  Hyperledger Sawtooth supports the use of multiple programming languages for the transaction process. Some of the supported languages include:

  1. Python: Sawtooth provides a Python library called “Sawtooth SDK” that allows developers to interact with the ledger and submit transactions.
  2. JavaScript: Sawtooth supports JavaScript through the use of the “Sawtooth JavaScript SDK” which provides a set of APIs to interact with the ledger.
  3. Go: Sawtooth also provides support for Go through the “Sawtooth Go SDK” which allows for easy integration with Go-based applications.
  4. C++: Sawtooth also provides support for C++, via the “Sawtooth C++ SDK” which provides C++ APIs for interacting with the ledger.

Other languages like Java, Rust, Shell, etc. can be used as well by using the RESTful API provided by Sawtooth. Sawtooth’s support for multiple programming languages makes it easy to integrate with existing systems and allows for a wide range of use cases.

Hyperledger Sawtooth Development Architecture

The modular architecture of Hyperledger Sawtooth enables the division of concerns among various system components. The main components of Sawtooth architecture are:

  • Distributed Ledger: This component is responsible for maintaining a log of all transactions and smart contract execution. The ledger is replicated across all nodes in the network and transactions are processed in parallel to increase performance.
  • Transaction Processor: This component is responsible for processing transactions and updating the state of the ledger. It also includes a smart contract engine called “Sawtooth Lake” which allows for easy deployment and execution of smart contracts.
  • Consensus Algorithm: This component is responsible for ensuring that the network reaches an agreement on the state of the ledger. Sawtooth supports multiple consensus algorithms, including PoET, PBFT, Raft, and Devmode.
  • REST API: This component provides a RESTful API for interacting with the ledger and submitting transactions. It allows for easy integration with existing systems and supports multiple programming languages.
  • Validator: This component is responsible for validating transactions and blocks before they are added to the ledger. It ensures that transactions are well formed and that they conform to the rules of the smart contract.
  • Transaction Scheduler: This component is responsible for scheduling the order in which transactions are processed by the network. It ensures that conflicting transactions are processed in a way that avoids conflicts and maintains consistency in the ledger.
  • Consensus Engine: Each consensus algorithm has its own engine that runs the consensus protocol and communicates with other components of the system.

Hyperledger Sawtooth at Work

Hyperledger Sawtooth can be used to build a variety of distributed ledger applications. Some examples of how Sawtooth can be used in  different industries include:

  • Supply Chain Management: Sawtooth can be used to build a tamper-proof and transparent supply chain management system. It can be used to track the movement of goods, from the point of origin to the final destination, providing visibility and accountability for all parties involved.
  • Financial Services: Sawtooth can be used to build a secure and efficient system for financial transactions and record-keeping. It can be used for activities such as trade finance, digital assets management, and compliance reporting
  • Healthcare: Sawtooth can be used to build a secure and private system for sharing medical records among healthcare providers. It can be used to ensure that patient data is only accessible to authorized parties, while still providing an efficient way to share data among doctors, hospitals, and insurance companies
  • Identity Management: Sawtooth can be used to build a decentralized and tamper-proof system for identity management. It can be used to store and validate identities and credentials and provide secure and private access to services and resources.
  • Energy Management: Sawtooth can be used to build a system for managing and tracking the production, distribution, and consumption of energy. It can be used to enable peer-to-peer energy trading, track and verify renewable energy credits, and manage the distribution of energy from microgrids.

These are just a few examples, and Sawtooth is flexible enough to be used in a wide range of other industries and applications as well. Sawtooth’s modular architecture and support for different consensus algorithms make it a powerful platform for building and deploying distributed ledgers that can be used for a wide range of use cases.



Last Updated : 23 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads