Transaction & Batch Building

Explanation of the transaction & batch building processes

Transactions & Batches In Sawtooth

In Hyperledger Sawtooth, the state of the blockchain can only be modified through transactions. As a user interacts with the application, transactions are constructed. The contents of a transaction are signed with the user’s private key in an irreversible, one-way hashing function (secp256k1 ECDSA).

The resulting signature can be decoded with the user’s public key. This decoding process is used to verify that a transaction was not modified after being signed by the user.

Transactions are then wrapped into a batch. Batches are the atomic unit of change in Sawtooth - either all of the transactions in a batch are committed together, or the entire batch is rejected. A batch is sent from the UI to the API, which is then forwarded to a Sawtooth validator node that verifies the signature and payload of each transaction before updating the blockchain state.

The diagram below provides an overview of the sturcture of transactions and batches in Sawtooth.

Transaction and Batch relationship

Building and Submitting Transactions

Transaction Family

The ConsenSource Transaction Family is designed to model the existing business processes that occur when a factory receives a new certification. View the full specification at the link below.

Transaction Processor & Family Documentation

Additional Sawtooth Docs

Last modified April 14, 2020: Comment out incomplete sections (e105242)