PREVIOUS FAQ NEXT

Contents

Glossary

Address (aka State Address)
For Sawtooth, each radix address (or Node ID) into a Merkle Trie is 70 hex characters (35 bytes). The first 6 characters, the prefix, encode the name space (of the TF) and the remaining bytes are implementation-dependent. The prefix is either the first 6 characters of the SHA-512 hash of the namespace, or a hex word for base name spaces. See the list of TF prefixes in the Appendix
AVR
Attestation Verification Report. Response body signature, signed with the IAS Report Key
back pressure
Flow-control technique to help prevent denial of service attacks. Sawtooth uses this to reject unusually-frequent submissions from a client
Batch
A set of transactions that must be made together (atomic commit) to maintain state consistency. Batches are unique to Sawtooth
Block
A set of records of permanent transactions; these blocks are linked into a blockchain. A block is similar to a page in a ledger book, where the ledger book is a blockchain
Block 0 or Block Zero
See Genesis Block
Blockchain
A single-link list of blocks. The blockchain is immutable, distributed, and cryptographically-secured. Located at /var/lib/sawtooth/block-00.lmdb
Block ID
128 hex character ID (64 bytes) identifying a block in a blockchain
BFT
Byzantine Fault Tolerance. Consensus is possible with malicious actors (Byzantine Generals Problem). BFT is stronger than CFT and uses voting
C
Sign-up delay; number of blocks a validator has to wait before participating in elections (when using PoET)
C Test
A node must wait C blocks after admission before its blocks will be accepted. This is to prevent trying to game identities and some obscure corner scenarios
CCL
Coordination and Commit Log (used by PDO)
CFT
Crash Fault Tolerance. Consensus possible even with failed components
Client
Any program that creates a transaction; interfaces with the validator using REST. Does not have to be a web-based app
Consensus algorithm
Method to decide what block to add next to a blockchain
Context
The snapshot of the global state. Specifically, the subset of the state required for the transaction, based on the input and output addresses specified in the transaction.
Classical Consensus
Uses an agreement or voting mechanism to select a leader (vs. Nakamoto-style consensus) E.g., PBFT and Raft
Crypto
Cryptography--encryption, authentication, and hashing. It does not mean blockchain or digital currency
Dapps
Ethereum Decentralized Applications. These are written in Solidity and are supported by Sawtooth Seth
DAML
Digital Asset Modeling Language. Codifies financial agreements.
Distributed Ledger
See Blockchain
DLT
Distributed Ledger Technology; Blockchain is a DLT
Docker
A light-weight OS-level VM technology which isolates processes into separate "containers"
Duplicity
A faulty node sending deceitful or inconsistent messages to other nodes
CSV
Comma separated values. E.g.: a,b,c,d
Curve25519
An ECDH (Elliptic Curve Diffie-Hellman) key agreement protocol used by Sawtooth. Used by validators in ZMQ connections to exchange keys
Data model
Can be any format (CSV, protobufs, etc.)
Deterministic
Means consistent, or the same. For Sawtooth, serialization must be deterministic, meaning the encoding is always in the same order and always the same for the same data. This excludes timestamps and counters in your data. Many JSON libraries do not encode data deterministically
EPID
Enhanced Privacy ID. An anonymous credential system; used by PoET
Enclave
SGX-protected area of data and code to provide confidentiality and integrity even against privileged malware
Endpoint
The URL sent to the REST API. For example http://localhost:8008/state . Also refers to the validator connection URI. For example, tcp://localhost:4004 . For more information, see https://sawtooth.hyperledger.org/docs/core/releases/latest/rest_api/endpoint_specs.html
EVM
Ethereum Virtual Machine. Executes machine-independent code for Ethereum. Supported by Seth on Sawtooth
Fork
When network nodes have two competing nodes at the head of a blockchain
Genesis Block
First block in the blockchain (block 0). Has initial on-chain settings, such as the consensus algorithm and configuration information
Global State Agreement
Verification of the global state (ledger) contents among peers. It is included in the Sawtooth consensus process
Gossip
A decentralized message broadcast mechanism that uses forwarding to random peers (Sawtooth Validator nodes)
GS
Global State or Ledger. For Sawtooth this is stored internally as a Merkle Tree
Hyperledger
"Hyperledger is an open source collaborative effort created to advance cross-industry blockchain technologies. It is a global collaboration, hosted by The Linux Foundation." See: https://www.hyperledger.org/
IAS
Intel Attestation Server. Used to authenticate PoET SGX keys; runs in public Internet at https://as.sgx.trustedservices.intel.com/
In State
See on-chain
IntKey
Integer key TP. Sample Sawtooth TP that implements set/increment/decrement/show operations
Journal
A group of Sawtooth Validator components that work together to handle batches and proposed blocks. This includes validating proposed blocks and publishing batches into blocks. See https://sawtooth.hyperledger.org/docs/core/nightly/master/architecture/journal.html
k
Claim limit, number of blocks a validator can publish before it must sign-up again (when using PoET). The default is k=50
K Test
The node can publish at most K blocks before its peers require it to recertify itself
Ledger
Key-value store whose values are agreed on by all nodes (validators) in the network
Liveness
A consensus algorithm property where the nodes eventually must agree on a value
LMDB
Lightning Memory-mapped Database are sparse random-access files in /var/lib/sawtooth . The Merkle Tree and Blockchain use LMDB
Marshalling
serialization of data
Merkle Tree (or Trie)
a radix search tree data structure with addressable nodes. Used to store state. Located at /var/lib/sawtooth/merkle-00.lmdb
n
Nodes in a blockchain network
Nakamoto-style Consensus
Uses some sort of lottery-based mechanism, such as Proof of Work (vs. Classical Consensus) to win the right to commit a block.
E.g., PoW or PoET.
Node ID
Address
Node
See Validator
Nonce
A one-time number; usually random, but must not predictably repeat (such as after reboot/restart)
Off-chain
Information stored externally to the blockchain
On-chain
Information stored internally in the blockchain
One-say, all-adopt
Strategy where only a single multicast round of messages reaches agreement
Oracle
An agent that finds and verifies real world occurrences and submits this information to a blockchain for use by smart contracts. Oracles are 3rd-party services.
Payload
Data processed by the TP and only the TP. Can be any format (CSV, protobufs, etc.) Data model is defined by TF. Payload is encoded using MIME's Base64 (A-Za-z0-9+/) + = for 0 mod 4 padding
PBFT
Practical Byzantine Fault Tolerance. A "classical" consensus algorithm that uses a state machine. Uses leader and block election. PBFT is a three-phase, network-intensive algorithm (n^2 messages), so is not scalable to large networks
PDO
Private Data Object. Blockchain objects that are kept private through encryption. See links to paper, code, and presentation at https://twitter.com/kellymolson/status/1019299515646406656
Permissioned Blockchain (aka Private Blockchain)
participants must ID themselves to a network (e.g., Hyperledger Sawtooth or Hyperledger Fabric)
Permissioning
For the validator, controls what nodes are allowed to connect. For the transaction processor, controls what transactions and batches are accepted, based on signing keys. See https://sawtooth.hyperledger.org/docs/core/nightly/master/architecture/permissioning_requirement.html
Permissionless Blockchain (aka Public Blockchain)
anyone can join network (e.g., Bitcoin, Ethereum)
PoET
Proof of Elapsed Time (optional Nakamoto-style consensus algorithm used for Sawtooth). PoET with SGX has BFT. PoET CFT has CFT. Not CPU-intensive as with PoW-style algorithms, although it still can fork and have stale blocks. See PoET specification at https://sawtooth.hyperledger.org/docs/core/releases/latest/architecture/poet.html
PoET CFT
PoET running without SGX, which has CFT
PoET Simulator Mode
Another name for PoET CFT
PoW
Proof of Work. Completing work (CPU-intensive Nakamoto-style consensus algorithm). Usually used in permissionless blockchains
PoS
Proof of Stake. Nakamoto-style consensus algorithm based on the most wealth or age (stake)
Private Blockchain
See Permissioned Blockchain
Proposal
proposed block from a validator to add to a blockchain
Protobuf
Serialization/data interchange library used by Sawtooth
Pruning Queue
Message broadcasting optimization that reduces broadcasting of all messages to all nodes
Public Blockchain
See Permissionless Blockchain
r
Rate, measurement of performance in transactions per second
Raft
Consensus algorithm that elects a leader for a term of arbitrary time. Leader replaced if it times-out. Raft is faster than PoET, but is not BFT (Raft is CFT). Also Raft does not fork.
Remix
A popular web-based IDE for Solidity
Replica
Another term for node or validator
REST
Representational State Transfer. Industry-standard web-based API. REST is available on a Sawtooth validator node through TCP port 8008. For more information, see the Sawtooth REST API Reference at https://sawtooth.hyperledger.org/docs/core/releases/latest/rest_api.html
ST
Sawtooth
Sabre
TF that implements on-chain smart contracts with the WebAssembly VM. For more information, see Sabre RFC at https://github.com/hyperledger/sawtooth-rfcs/blob/master/text/0007-wasm-smart-contracts.md
Sawtooth
Hyperledger Sawtooth is a modular enterprise blockchain platform for building, deploying, and running distributed ledgers
Sawtooth Lake
Sawtooth's original code name before Intel contributed Sawtooth to the Linux Foundation's Hyperledger consortium
Seed Nodes or Seed Peers
Initial hard-coded set of peers a node knows about. The list expands with the Gossip algorithm
Solidity
A contract-oriented programming language used to implement smart contracts. Compiles into Ethereum VM code and is supported by Seth
Stale block
A block proposed to be at the head of a blockchain, but lost to a competing block that became the head as decided by the consensus algorithm
Static Nodes or Static Peers
A hard-coded set of peers a node knows about, but may not change
TEE
Trusted Execution Environment. Secure area of a microprocessor that guarantees confidentiality and integrity of code and data loaded. SGX is an example of a TEE
TF
Transaction Family. Consists of the Client, State, and TP. See https://www.hyperledger.org/blog/2017/06/22/whats-a-transaction-family
TP
Transaction Processor. Processes transactions for a specific TF. Runs on Validator. Similar to a Ethereum "smart contract" or Bitcoin "chain code"
Transaction Receipt
Off-chain store about information about transaction execution. Located at /var/lib/sawtooth/txn_receipts-00.lmdb
Truffle
Popular Ethereum development environment
TXN
Transaction
Safety
A consensus algorithm property where the "honest" (non-Byzantine) nodes agree on the same value
Sawtooth
Permissioned blockchain platform for running distributed ledgers
Seth
Ethereum-compatible Sawtooth Transaction Processor. Supports running Ethereum Virtual Machine
secp256k1
An ECDSA (Elliptic Curve DSA) cryptographic algorithm used by Sawtooth with a 32-byte key. Used for Validator and TP. Bitcoin also uses this algorithm
Serialization
A scheme to encode data as a byte stream. For Sawtooth the serialization must be deterministic, meaning the encoding is always in the same order and always the same for the same data. Protobufs are often used in Sawtooth Serialization, but that is not a requirement. A simpler alternative, for example, is CSV
SGX
Intel Software Guard Extensions. Specialized hardware that provides enclaves with protected code and data. Used to implement PoET SGX
State
The current information for each Transaction Family. The global state is stored in a Merkle Tree. View local validator through http://localhost:8008/state
State Address
See Address
Sybil Attacks
Using forged identities in a blockchain network to subvert the reputation system. Was named after the book and movie
Transaction
A single entry in a the distributed ledger (blockchain). The contents are TF-dependent
Transactor
The Sawtooth client that creates a transaction, or the part that that communicates with the validator
Validator
Validates transactions and sends to the appropriate TP; proposes new blocks for block chain
Validator
Validates transactions and sends to the appropriate TP; proposes new blocks for block chain usually in a network of validator nodes
VM
Virtual Machine
Wasm
See WebAssembly
WebAssembly
A stack-based VM newly-implemented in major web browsers. It is well-suited for the purposes of smart contract execution due to its sandboxed design, growing popularity, and tool support. Sabre implements WebAssembly
XO
Example Sawtooth TP that implements the Tic-tac-toe game
Z Test
Test a block-claiming validator is not winning too frequently. It is a defense-in-depth mechanism
ZMQ (aka 0MQ, ZeroMQ)
Zero Message Queue. A message transport API available on Linux; used by Sawtooth Validator nodes
ZKP
Zero Knowledge Proof. One party proving they know a value x without conveying x
zkSNARKS
Zero Knowledge Succinct Non-interactive Arguments of Knowledge, which allow proof of correctness, given public and private input

PREVIOUS FAQ NEXT

© Copyright 2018, Intel Corporation.