Transaction Family Specifications
Sawtooth includes several transaction families as examples for
developing your own transaction family. These transaction families are
available in the sawtooth-core
repository unless noted below.
-
The BlockInfo Transaction Family provides a way to store information about a configurable number of historic blocks. The family name is
block_info
. The transaction processor isblock-info-tp
. -
The Identity Transaction Family is an extensible role- and policy-based system for defining permissions in a way that can be used by other Sawtooth components. The family name is
sawtooth_identity
; the associated transaction processor is identity-tp. -
The Intkey Transaction Family (also called "intkey") simply sets, increments, and decrements the value of entries stored in a state dictionary. The intkey command provides an example CLI client.
intkey is available in several languages, including Go, Java, and JavaScript (Node.js); see the
sawtooth-sdk-{language}
repositories underexamples
.The family name is
intkey
. The transaction processor isintkey-tp-{language}
. -
The Settings Transaction Family provides a methodology for storing on-chain configuration settings. The settings command provides an example CLI client.
The family name is
sawtooth_settings
. The transaction processor is settings-tp.Note
In a production environment, you should always run a transaction processor that supports the Settings transaction family.
-
The Smallbank Transaction Family provides a cross-platform workload for comparing the performance of blockchain systems. The family name is
smallbank
. The transaction processor issmallbank-tp-{language}
. -
The XO Transaction Family allows two users to play a simple game of tic-tac-toe (see Playing with the XO Transaction Family. The xo command provides an example CLI client.
XO is available in several languages. The various implementations can be found in the
sawtooth-sdk-{language}
repositories underexamples
.The family name is
xo
. The transaction processor isxo-tp-{language}
.
The following transaction families run on top of the Sawtooth platform:
- Sawtooth Sabre Transaction Family: Implements on-chain smart contracts that are executed in a WebAssembly (WASM) virtual machine. This transaction family is in the sawtooth-sabre repository.
- Sawtooth Seth Transaction Family: Supports running Ethereum Virtual Machine (EVM) smart contracts on Sawtooth. This transaction family is in the sawtooth-seth repository.