2018-11-28 14:25:07 -08:00
|
|
|
# Terminology
|
|
|
|
|
2018-12-12 12:23:46 -08:00
|
|
|
The following terms are used throughout this book.
|
2018-11-28 14:25:07 -08:00
|
|
|
|
|
|
|
#### account
|
|
|
|
|
2018-12-04 15:22:49 -08:00
|
|
|
A persistent file addressed by [public key](#public-key) and with
|
|
|
|
[lamports](#lamport) tracking its lifetime.
|
2018-11-28 14:25:07 -08:00
|
|
|
|
2018-12-11 14:23:30 -08:00
|
|
|
#### app
|
|
|
|
|
|
|
|
A front-end application that interacts with a Solana cluster.
|
|
|
|
|
2018-12-12 12:23:46 -08:00
|
|
|
#### blob
|
|
|
|
|
|
|
|
A fraction of a [block](#block); the smallest unit sent between
|
|
|
|
[fullnodes](#fullnode).
|
|
|
|
|
2018-11-28 14:25:07 -08:00
|
|
|
#### block
|
|
|
|
|
2018-12-14 10:06:53 -08:00
|
|
|
A contiguous set of [entries](#entry) on the ledger covered by a
|
|
|
|
[vote](#ledger-vote). The duration of a block is some cluster-configured
|
|
|
|
number of [ticks](#tick). Also called [voting period](#voting-period).
|
|
|
|
|
|
|
|
#### block height
|
|
|
|
|
|
|
|
The number of [blocks](#block) beneath the current block plus one. The [genesis
|
|
|
|
block](#genesis-block), for example, has block height 1.
|
2018-11-28 14:25:07 -08:00
|
|
|
|
|
|
|
#### bootstrap leader
|
|
|
|
|
|
|
|
The first [fullnode](#fullnode) to take the [leader](#leader) role.
|
|
|
|
|
|
|
|
#### client
|
|
|
|
|
|
|
|
A [node](#node) that utilizes the [cluster](#cluster).
|
|
|
|
|
|
|
|
#### cluster
|
|
|
|
|
|
|
|
A set of [fullnodes](#fullnode) maintaining a single [ledger](#ledger).
|
|
|
|
|
2018-12-12 12:23:46 -08:00
|
|
|
#### confirmation
|
|
|
|
|
|
|
|
The wallclock duration between a [leader](#leader) creating a [tick
|
|
|
|
entry](#tick) and recognizing a supermajority of [ledger votes](#ledger-vote)
|
|
|
|
with a ledger interpretation that matches the leader's.
|
|
|
|
|
2018-11-28 14:25:07 -08:00
|
|
|
#### control plane
|
|
|
|
|
|
|
|
A gossip network connecting all [nodes](#node) of a [cluster](#cluster).
|
|
|
|
|
|
|
|
#### data plane
|
|
|
|
|
|
|
|
A multicast network used to efficiently validate [entries](#entry) and gain
|
|
|
|
consensus.
|
|
|
|
|
2018-12-11 14:23:30 -08:00
|
|
|
#### drone
|
|
|
|
|
|
|
|
An off-chain service that acts as a custodian for a user's private key. It
|
|
|
|
typically serves to validate and sign transactions.
|
|
|
|
|
2018-11-28 14:25:07 -08:00
|
|
|
#### entry
|
|
|
|
|
|
|
|
An entry on the [ledger](#ledger) either a [tick](#tick) or a [transactions
|
|
|
|
entry](#transactions-entry).
|
|
|
|
|
2018-12-12 12:23:46 -08:00
|
|
|
#### epoch
|
2018-11-28 14:25:07 -08:00
|
|
|
|
2018-12-12 12:23:46 -08:00
|
|
|
The time, i.e. number of [slots](#slot), for which a [leader
|
|
|
|
schedule](#leader-schedule) is valid.
|
2018-11-28 14:25:07 -08:00
|
|
|
|
|
|
|
#### fork
|
|
|
|
|
|
|
|
A [ledger](#ledger) derived from common entries but then diverged.
|
|
|
|
|
|
|
|
#### fullnode
|
|
|
|
|
|
|
|
A full participant in the [cluster](#cluster) either a [leader](#leader) or
|
|
|
|
[validator](#validator) node.
|
|
|
|
|
|
|
|
#### fullnode state
|
|
|
|
|
|
|
|
The result of interpreting all programs on the ledger a given [tick
|
|
|
|
height](#tick-height). It includes at least the set of all [accounts](#account)
|
|
|
|
holding nonzero [native tokens](#native-tokens).
|
|
|
|
|
|
|
|
#### genesis block
|
|
|
|
|
|
|
|
The first [block](#block) of the [ledger](#ledger).
|
|
|
|
|
|
|
|
#### hash
|
|
|
|
|
|
|
|
A digital fingerprint of a sequence of bytes.
|
|
|
|
|
|
|
|
#### instruction
|
|
|
|
|
|
|
|
The smallest unit of a [program](#program) that a [client](#client) can include
|
|
|
|
in a [transaction](#instruction).
|
|
|
|
|
|
|
|
#### keypair
|
|
|
|
|
|
|
|
A [public key](#public-key) and coesponding [secret key](#secret-key).
|
|
|
|
|
|
|
|
#### lamport
|
|
|
|
|
|
|
|
A fractional [native token](#native-token) with the value of approximately
|
|
|
|
0.0000000000582 [sol](#sol) (2^-34).
|
|
|
|
|
2018-12-04 19:45:55 -08:00
|
|
|
#### loader
|
|
|
|
|
2018-12-12 12:23:46 -08:00
|
|
|
A [program](#program) with the ability to interpret the binary encoding of
|
|
|
|
other on-chain programs.
|
2018-12-04 19:45:55 -08:00
|
|
|
|
2018-11-28 14:25:07 -08:00
|
|
|
#### leader
|
|
|
|
|
|
|
|
The role of a [fullnode](#fullnode) when it is appending [entries](#entry) to
|
|
|
|
the [ledger](#ledger).
|
|
|
|
|
|
|
|
#### leader schedule
|
|
|
|
|
|
|
|
A sequence of [fullnode](#fullnode) [public keys](#public-key). The cluster
|
2018-12-05 09:51:50 -08:00
|
|
|
uses the leader schedule to determine which fullnode is the [leader](#leader)
|
|
|
|
at any moment in time.
|
2018-11-28 14:25:07 -08:00
|
|
|
|
|
|
|
#### ledger
|
|
|
|
|
|
|
|
A list of [entries](#entry) containing [transactions](#transaction) signed by
|
|
|
|
[clients](#client).
|
|
|
|
|
|
|
|
#### ledger vote
|
|
|
|
|
|
|
|
A [hash](#hash) of the [fullnode's state](#fullnode-state) at a given [tick
|
2018-12-05 14:35:41 -08:00
|
|
|
height](#tick-height). It comprises a validator's affirmation that a
|
|
|
|
[block](#block) it has received has been verified, as well as a promise not to
|
2018-12-12 12:23:46 -08:00
|
|
|
vote for a conflicting [block](#block) (i.e. [fork](#fork)) for a specific
|
|
|
|
amount of time, the [lockout](#lockout) period.
|
|
|
|
|
|
|
|
#### light client
|
|
|
|
|
|
|
|
A type of [client](#client) that can verify it's pointing to a valid
|
|
|
|
[cluster](#cluster). It performs more ledger verification than a [thin
|
|
|
|
client](#thin-client) and less than a [fullnode](#fullnode).
|
2018-11-28 14:25:07 -08:00
|
|
|
|
|
|
|
#### lockout
|
|
|
|
|
2018-12-05 09:51:50 -08:00
|
|
|
The duration of time for which a [fullnode](#fullnode) is unable to
|
2018-12-05 14:35:41 -08:00
|
|
|
[vote](#ledger-vote) on another [fork](#fork).
|
2018-11-28 14:25:07 -08:00
|
|
|
|
|
|
|
#### native token
|
|
|
|
|
|
|
|
The [token](#token) used to track work done by [nodes](#node) in a cluster.
|
|
|
|
|
|
|
|
#### node
|
|
|
|
|
|
|
|
A computer particpating in a [cluster](#cluster).
|
|
|
|
|
|
|
|
#### node count
|
|
|
|
|
|
|
|
The number of [fullnodes](#fullnode) participating in a [cluster](#cluster).
|
|
|
|
|
2018-12-14 10:06:53 -08:00
|
|
|
#### PoH
|
|
|
|
|
|
|
|
See [Proof of History](#proof-of-history).
|
|
|
|
|
2018-11-28 14:25:07 -08:00
|
|
|
#### program
|
|
|
|
|
|
|
|
The code that interprets [instructions](#instruction).
|
|
|
|
|
2018-12-04 09:24:08 -08:00
|
|
|
#### program ID
|
|
|
|
|
|
|
|
The public key of the [account](#account) containing a [program](#program).
|
|
|
|
|
2018-12-14 10:06:53 -08:00
|
|
|
#### Proof of History
|
|
|
|
|
|
|
|
A stack of proofs, each which proves that some data existed before the proof
|
|
|
|
was created and that a precise duration of time passed before the previous
|
|
|
|
proof. Like a [VDF](#verifiable-delay-function), a Proof of History can be
|
|
|
|
verified in less time than it took to produce.
|
|
|
|
|
2018-11-28 14:25:07 -08:00
|
|
|
#### public key
|
|
|
|
|
|
|
|
The public key of a [keypair](#keypair).
|
|
|
|
|
2018-12-12 08:13:04 -08:00
|
|
|
#### runtime
|
2018-11-28 14:25:07 -08:00
|
|
|
|
2018-12-12 08:13:04 -08:00
|
|
|
The component of a [fullnode](#fullnode) responsible for [program](#program)
|
|
|
|
execution.
|
2018-11-28 14:25:07 -08:00
|
|
|
|
|
|
|
#### secret key
|
|
|
|
|
|
|
|
The private key of a [keypair](#keypair).
|
|
|
|
|
|
|
|
#### slot
|
|
|
|
|
2018-12-07 15:52:36 -08:00
|
|
|
The time (i.e. number of [blocks](#block)) for which a [leader](#leader)
|
|
|
|
ingests transactions and produces [entries](#entry).
|
2018-11-28 14:25:07 -08:00
|
|
|
|
|
|
|
#### sol
|
|
|
|
|
|
|
|
The [native token](#native-token) tracked by a [cluster](#cluster) recognized
|
|
|
|
by the company Solana.
|
|
|
|
|
|
|
|
#### stake
|
|
|
|
|
2018-12-05 14:35:41 -08:00
|
|
|
Tokens forfeit to the [cluster](#cluster) if malicious [fullnode](#fullnode)
|
2018-12-04 15:22:49 -08:00
|
|
|
behavior can be proven.
|
2018-11-28 14:25:07 -08:00
|
|
|
|
2018-12-12 12:23:46 -08:00
|
|
|
#### thin client
|
|
|
|
|
|
|
|
A type of [client](#client) that trusts it is communicating with a valid
|
|
|
|
[cluster](#cluster).
|
|
|
|
|
2018-11-28 14:25:07 -08:00
|
|
|
#### tick
|
|
|
|
|
|
|
|
A ledger [entry](#entry) that estimates wallclock duration.
|
|
|
|
|
|
|
|
#### tick height
|
|
|
|
|
|
|
|
The Nth [tick](#tick) in the [ledger](#ledger).
|
|
|
|
|
|
|
|
#### token
|
|
|
|
|
|
|
|
A scarce, fungible member of a set of tokens.
|
|
|
|
|
|
|
|
#### tps
|
|
|
|
|
|
|
|
[Transactions](#transaction) per second.
|
|
|
|
|
|
|
|
#### transaction
|
|
|
|
|
2018-12-04 15:22:49 -08:00
|
|
|
One or more [instructions](#instruction) signed by the [client](#client) and
|
|
|
|
executed atomically.
|
2018-11-28 14:25:07 -08:00
|
|
|
|
|
|
|
#### transactions entry
|
|
|
|
|
|
|
|
A set of [transactions](#transaction) that may be executed in parallel.
|
|
|
|
|
|
|
|
#### validator
|
|
|
|
|
2018-12-04 15:22:49 -08:00
|
|
|
The role of a [fullnode](#fullnode) when it is validating the
|
|
|
|
[leader's](#leader) latest [entries](#entry).
|
2018-11-28 14:25:07 -08:00
|
|
|
|
2018-12-14 10:06:53 -08:00
|
|
|
#### VDF
|
|
|
|
|
|
|
|
See [verifiable delay function](#verifiable-delay-function).
|
|
|
|
|
|
|
|
#### verifiable delay function
|
|
|
|
|
|
|
|
A function that takes a fixed amount of time to execute that produces a proof
|
|
|
|
that it ran, which can then be verified in less time than it took to produce.
|
|
|
|
|
2018-12-05 14:35:41 -08:00
|
|
|
#### vote
|
|
|
|
|
2018-12-12 14:32:56 -08:00
|
|
|
See [ledger vote](#ledger-vote).
|
2018-12-05 14:35:41 -08:00
|
|
|
|
|
|
|
#### voting period
|
|
|
|
|
2018-12-12 14:32:56 -08:00
|
|
|
The duration of a [block](#block).
|
2018-11-28 14:25:07 -08:00
|
|
|
|