✍ Sawtooth is designed so that you can grow the size of the network, you can actually change the consensus mechanism on the fly you can submit as a transaction and then have a policy within your network to accept that new consensus, and then, your network can move from say a PBFT-style consensus to something like PoET, or some sort of random leader election consensus…
✍ For Sawtooth, there is a number of distinctive features, but the two that stand out are a consensus mechanism called Proof of Elapsed Time,which takes advantage of some special features on Intel's chips,
✍ an approach to smart contracts called transaction families,where you essentially predefine a set of acceptable templates for smart contracts that, then, the rest of the network can use.And that is a safer approach to doing smart contracts than a fully programmable, general purpose programming language.
✍ you can now run Ethereum smart contracts on top of Sawtooth, which is pretty cool.
✍Hyperledger Sawtooth is extremely scalable and able to withstand high throughput of data,
✍Completed Blocks are delivered to the Chain controller for validation and fork resolution.
transactions
✍ Every single transaction in Hyperledger Sawtooth is submitted within a batch. Batches can contain as little as a single transaction.
✍ Hyperledger Sawtooth transaction batches are clusters of transactions that are either all committed to state together, or none of the transactions are committed at all.
transaction families
✍ A transaction family consists of a group of operations or transaction types that are allowed on the shared ledgers.
✍Transaction families are often called 'safer' smart contracts, because they specify a predefined set of acceptable smart contract templates, as opposed to programming smart contracts from scratch.
Hyperledger Sawtooth’s transaction families can be written in many languages, including Javascript, Java, C++, Python, and Go
transaction processor
✍Each node within the Hyperledger Sawtooth network runs a transaction processor
The transaction processor processes incoming transactions submitted by authorized clients.
Validators
✍ In Hyperledger Sawtooth, validators apply blocks that cause a change in the state
validators validate transaction blocks, and ensure that transactions result in state changes that are consistent across all participants in the network.
✍ By default, the Proof of Elapsed Time consensus algorithm is used, and the transaction validator with the shortest wait time publishes the transaction block
Journal
✍the journal maintains and extends the blockchain for the validator. It is responsible for validating candidate blocks, evaluating valid blocks to determine if they are the correct chain head, and generating new blocks to extend the chain. Transaction batches arrive at the journal, where they are evaluated, validated, and added to the blockchain. Additionally, the journal resolves forks, which occur due to disagreements over who commits a block.
Sawtooth nodes
✍ Each organization that enters the Hyperledger Sawtooth network runs at least one node, and receives transactions submitted by fellow nodes.
Proof of Elapsed Time (PoET)
✍PoET impartially determines who will commit a transaction to state using a lottery function that elects a leader from many different distributed nodes.
✍PoET allows for increased scalability and participation, as every node in the network has an equal opportunity to create the next block on the chain.
✍It works in this way: to start, each validator within the network requests a wait time from an enclave, or a trusted function. This is where the 'Elapsed Time' comes into play. The validator with the shortest wait time for a specific block is appointed the leader, and creates the block to be committed to the ledger.
✍The PoET algorithm may lead to forking, in which two 'winners' propose a block. Each fork has to be resolved by validators, and this results in a delay in reaching consistency across the network.
Hyperledger Sawtooth is incredible. I'm working with Fabric atm, really impressed with all of this.