Skip to content

Definitions

Loong edited this page Sep 25, 2019 · 37 revisions

This page defines the core data structures and roles that exist in Hyperdrive.

Transaction

A transaction is a data structure that can be executed over some initial state to transform it into a new output state. A transaction must be executed in full, or not at all. In this way, we say that transactions are atomic.

execute :: Transaction -> State -> State

Multiple transactions can be executed in parallel, on the same initial state, if and only if the output state is equal to the output state that would result from executing each transaction in sequentially.

execute :: [Transaction] -> State -> State
execute txs initialState = foldr (\tx state -> execute tx state) initialState txs

Plan

A plan represents the precomputed data that is needed to execute a list of transactions. The precomputed data required depends on the number of transactions, the initial state, and the secure multi-party computation algorithm.

State

Block

Signatory

Message

Clone this wiki locally