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
2019-09-17 19:39:15 -07:00
#### account
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07: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
2019-09-17 19:39:15 -07:00
#### app
2018-12-11 14:23:30 -08:00
A front-end application that interacts with a Solana cluster.
2019-09-20 13:27:09 -07:00
#### shred
2018-12-12 12:23:46 -08:00
2019-09-17 19:39:15 -07:00
A fraction of a [block ](#block ); the smallest unit sent between
[fullnodes ](#fullnode ).
2018-12-12 12:23:46 -08:00
2019-09-17 19:39:15 -07:00
#### block
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
A contiguous set of [entries ](#entry ) on the ledger covered by a
[vote ](#ledger-vote ). A [leader ](#leader ) produces at most one block per
[slot ](#slot ).
2018-12-14 10:06:53 -08:00
2019-09-17 19:39:15 -07:00
#### block height
2018-12-14 10:06:53 -08:00
2019-09-17 19:39:15 -07:00
The number of [blocks ](#block ) beneath the current block. The first block after
the [genesis block ](#genesis-block ) has height zero.
2019-01-23 16:17:19 -08:00
2019-09-17 19:39:15 -07:00
#### block id
2019-01-23 16:17:19 -08:00
2019-09-17 19:39:15 -07:00
The [entry id ](#entry-id ) of the last entry in a [block ](#block ).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### bootstrap leader
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
The first [fullnode ](#fullnode ) to take the [leader ](#leader ) role.
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### CBC block
2019-02-22 13:08:05 -08:00
2019-09-17 19:39:15 -07:00
Smallest encrypted chunk of ledger, an encrypted ledger segment would be made of
many CBC blocks. `ledger_segment_size / cbc_block_size` to be exact.
2019-02-22 13:08:05 -08:00
2019-09-17 19:39:15 -07:00
#### client
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
A [node ](#node ) that utilizes the [cluster ](#cluster ).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### cluster
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
A set of [fullnodes ](#fullnode ) maintaining a single [ledger ](#ledger ).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### confirmation
2018-12-12 12:23:46 -08:00
2019-09-17 19:39:15 -07:00
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-12-12 12:23:46 -08:00
2019-09-17 19:39:15 -07:00
#### control plane
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
A gossip network connecting all [nodes ](#node ) of a [cluster ](#cluster ).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### cooldown period
2019-08-26 10:01:33 -07:00
2019-09-17 19:39:15 -07:00
Some number of epochs after stake has been deactivated while it progressively
becomes available for withdrawal. During this period, the stake is considered to
be "deactivating". More info about:
[warmup and cooldown ](stake-delegation-and-rewards.md#stake-warmup-cooldown-withdrawal )
2019-08-26 10:01:33 -07:00
2019-09-17 19:39:15 -07:00
#### credit
2019-08-22 09:35:52 -07:00
2019-09-17 19:39:15 -07:00
See [vote credit ](#vote-credit ).
2019-08-22 09:35:52 -07:00
2019-09-17 19:39:15 -07:00
#### data plane
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
A multicast network used to efficiently validate [entries ](#entry ) and gain
consensus.
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### drone
2018-12-11 14:23:30 -08:00
2019-09-17 19:39:15 -07:00
An off-chain service that acts as a custodian for a user's private key. It
typically serves to validate and sign transactions.
2018-12-11 14:23:30 -08:00
2019-09-17 19:39:15 -07:00
#### fake storage proof
2019-02-22 13:08:05 -08:00
2019-09-17 19:39:15 -07:00
A proof which has the same format as a storage proof, but the sha state is
actually from hashing a known ledger value which the storage client can reveal
and is also easily verifiable by the network on-chain.
2019-02-22 13:08:05 -08:00
2019-09-17 19:39:15 -07:00
#### entry
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
An entry on the [ledger ](#ledger ) either a [tick ](#tick ) or a [transactions
entry](#transactions-entry).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### entry id
2019-01-23 16:17:19 -08:00
2019-09-17 19:39:15 -07:00
A globally unique identifier that is also a proof that the [entry ](#entry ) was
generated after a duration of time, all [transactions ](#transaction ) included
in the entry, and all previous entries on the [ledger ](#ledger ). See [Proof of
History](#proof-of-history).
2019-01-23 16:17:19 -08:00
2019-09-17 19:39:15 -07:00
#### epoch
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07: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
2019-09-17 19:39:15 -07:00
#### finality
2019-07-22 09:36:20 -07:00
2019-09-17 19:39:15 -07:00
When nodes representing 2/3rd of the stake have a common [root ](#root ).
2019-07-22 09:36:20 -07:00
2019-09-17 19:39:15 -07:00
#### fork
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
A [ledger ](#ledger ) derived from common entries but then diverged.
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### fullnode
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
A full participant in the [cluster ](#cluster ) either a [leader ](#leader ) or
[validator ](#validator ) node.
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### fullnode state
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
The result of interpreting all programs on the ledger at a given [tick
height](#tick-height). It includes at least the set of all [accounts ](#account )
holding nonzero [native tokens ](#native-tokens ).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### genesis block
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
The configuration file that prepares the [ledger ](#ledger ) for the first [block ](#block ).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### hash
2018-11-28 14:25:07 -08:00
A digital fingerprint of a sequence of bytes.
2019-09-17 19:39:15 -07:00
#### instruction
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
The smallest unit of a [program ](#program ) that a [client ](#client ) can include
in a [transaction ](#instruction ).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### keypair
2018-11-28 14:25:07 -08:00
2019-09-18 09:47:50 -07:00
A [public key ](#public-key ) and corresponding [private key ](#private-key ).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### lamport
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
A fractional [native token ](#native-token ) with the value of approximately
0.0000000000582 [sol ](#sol ) (2^-34).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### loader
2018-12-04 19:45:55 -08:00
2019-09-17 19:39:15 -07: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
2019-09-17 19:39:15 -07:00
#### leader
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
The role of a [fullnode ](#fullnode ) when it is appending [entries ](#entry ) to
the [ledger ](#ledger ).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### leader schedule
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
A sequence of [fullnode ](#fullnode ) [public keys ](#public-key ). The cluster
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
2019-09-17 19:39:15 -07:00
#### ledger
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
A list of [entries ](#entry ) containing [transactions ](#transaction ) signed by
[clients ](#client ).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### ledger segment
2019-02-22 13:08:05 -08:00
2019-09-17 19:39:15 -07:00
Portion of the ledger which is downloaded by the replicator where storage proof
data is derived.
2019-02-22 13:08:05 -08:00
2019-09-17 19:39:15 -07:00
#### ledger vote
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
A [hash ](#hash ) of the [fullnode's state ](#fullnode-state ) at a given [tick
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
vote for a conflicting [block ](#block ) (i.e. [fork ](#fork )) for a specific
amount of time, the [lockout ](#lockout ) period.
2018-12-12 12:23:46 -08:00
2019-09-17 19:39:15 -07:00
#### light client
2018-12-12 12:23:46 -08:00
2019-09-17 19:39:15 -07:00
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
2019-09-17 19:39:15 -07:00
#### lockout
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
The duration of time for which a [fullnode ](#fullnode ) is unable to
[vote ](#ledger-vote ) on another [fork ](#fork ).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### native token
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
The [token ](#token ) used to track work done by [nodes ](#node ) in a cluster.
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### node
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
A computer participating in a [cluster ](#cluster ).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### node count
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
The number of [fullnodes ](#fullnode ) participating in a [cluster ](#cluster ).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### PoH
2018-12-14 10:06:53 -08:00
2019-09-17 19:39:15 -07:00
See [Proof of History ](#proof-of-history ).
2018-12-14 10:06:53 -08:00
2019-09-17 19:39:15 -07:00
#### point
2019-08-22 09:35:52 -07:00
2019-09-17 19:39:15 -07:00
A weighted [credit ](#credit ) in a rewards regime. In the validator [rewards regime ](staking-rewards.md ), the number of points owed to a stake during redemption is the product of the [vote credits ](#vote-credit ) earned and the number of lamports staked.
2019-08-22 09:35:52 -07:00
2019-09-18 09:47:50 -07:00
#### private key
The private key of a [keypair ](#keypair ).
2019-09-17 19:39:15 -07:00
#### program
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
The code that interprets [instructions ](#instruction ).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### program id
2018-12-04 09:24:08 -08:00
2019-09-17 19:39:15 -07:00
The public key of the [account ](#account ) containing a [program ](#program ).
2018-12-04 09:24:08 -08:00
2019-09-17 19:39:15 -07:00
#### Proof of History
2018-12-14 10:06:53 -08:00
2019-09-17 19:39:15 -07:00
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-12-14 10:06:53 -08:00
2019-09-17 19:39:15 -07:00
#### public key
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
The public key of a [keypair ](#keypair ).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### replicator
2019-02-22 13:08:05 -08:00
2019-09-17 19:39:15 -07:00
Storage mining client, stores some part of the ledger enumerated in blocks and
submits storage proofs to the chain. Not a full-node.
2019-02-22 13:08:05 -08:00
2019-09-17 19:39:15 -07:00
#### root
2019-07-22 09:36:20 -07:00
2019-09-17 19:39:15 -07:00
A [block ](#block ) or [slot ](#slot ) that has reached maximum [lockout ](#lockout )
on a validator. The root is the highest block that is an ancestor of all active
forks on a validator. All ancestor blocks of a root are also transitively a
root. Blocks that are not an ancestor and not a descendant of the root are
excluded from consideration for consensus and can be discarded.
2019-07-22 09:36:20 -07:00
2019-09-17 19:39:15 -07:00
#### runtime
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
The component of a [fullnode ](#fullnode ) responsible for [program ](#program )
execution.
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### slot
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
The period of time for which a [leader ](#leader ) ingests transactions and
produces a [block ](#block ).
2018-11-28 14:25:07 -08:00
2019-09-18 09:47:50 -07:00
#### smart contract
A set of constraints that once satisfied, signal to a program that some
predefined account updates are permitted.
2019-09-17 19:39:15 -07:00
#### sol
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
The [native token ](#native-token ) tracked by a [cluster ](#cluster ) recognized
by the company Solana.
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### stake
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
Tokens forfeit to the [cluster ](#cluster ) if malicious [fullnode ](#fullnode )
behavior can be proven.
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### storage proof
2019-02-22 13:08:05 -08:00
2019-09-17 19:39:15 -07:00
A set of sha hash state which is constructed by sampling the encrypted version
of the stored ledger segment at certain offsets.
2019-02-22 13:08:05 -08:00
2019-09-17 19:39:15 -07:00
#### storage proof challenge
2019-02-22 13:08:05 -08:00
2019-09-17 19:39:15 -07:00
A transaction from a replicator that verifiably proves that a validator
confirmed a fake proof.
2019-02-22 13:08:05 -08:00
2019-09-17 19:39:15 -07:00
#### storage proof claim
2019-02-22 13:08:05 -08:00
2019-09-17 19:39:15 -07:00
A transaction from a validator which is after the timeout period given from the
storage proof confirmation and which no successful challenges have been
observed which rewards the parties of the storage proofs and confirmations.
2019-02-22 13:08:05 -08:00
2019-09-17 19:39:15 -07:00
#### storage proof confirmation
2019-02-22 13:08:05 -08:00
2019-09-17 19:39:15 -07:00
A transaction by a validator which indicates the set of real and fake proofs
submitted by a storage miner. The transaction would contain a list of proof
hash values and a bit which says if this hash is valid or fake.
#### storage validation capacity
2019-02-22 13:08:05 -08:00
The number of keys and samples that a validator can verify each storage epoch.
2019-09-17 19:39:15 -07:00
#### sysvar
2019-08-22 09:35:52 -07:00
2019-09-17 19:39:15 -07:00
A synthetic [account ](#account ) provided by the runtime to allow programs to
access network state such as current tick height, rewards [points ](#point ) values, etc.
2019-08-22 09:35:52 -07:00
2019-09-17 19:39:15 -07:00
#### thin client
2018-12-12 12:23:46 -08:00
2019-09-17 19:39:15 -07:00
A type of [client ](#client ) that trusts it is communicating with a valid
[cluster ](#cluster ).
2018-12-12 12:23:46 -08:00
2019-09-17 19:39:15 -07:00
#### tick
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
A ledger [entry ](#entry ) that estimates wallclock duration.
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### tick height
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
The Nth [tick ](#tick ) in the [ledger ](#ledger ).
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### token
2018-11-28 14:25:07 -08:00
A scarce, fungible member of a set of tokens.
2019-09-17 19:39:15 -07:00
#### tps
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
[Transactions ](#transaction ) per second.
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### transaction
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
One or more [instructions ](#instruction ) signed by the [client ](#client ) and
executed atomically.
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### transactions entry
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
A set of [transactions ](#transaction ) that may be executed in parallel.
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07:00
#### validator
2018-11-28 14:25:07 -08:00
2019-09-17 19:39:15 -07: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
2019-09-17 19:39:15 -07:00
#### VDF
2018-12-14 10:06:53 -08:00
2019-09-17 19:39:15 -07:00
See [verifiable delay function ](#verifiable-delay-function ).
2018-12-14 10:06:53 -08:00
2019-09-17 19:39:15 -07:00
#### verifiable delay function
2018-12-14 10:06:53 -08:00
2019-09-17 19:39:15 -07:00
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-14 10:06:53 -08:00
2019-09-17 19:39:15 -07:00
#### vote
2018-12-05 14:35:41 -08:00
2019-09-17 19:39:15 -07:00
See [ledger vote ](#ledger-vote ).
2019-08-22 09:35:52 -07:00
2019-09-17 19:39:15 -07:00
#### vote credit
2019-08-22 09:35:52 -07:00
2019-09-17 19:39:15 -07:00
A reward tally for validators. A vote credit is awarded to a validator in its
vote account when the validator reaches a [root ](#root ).
2019-08-26 10:01:33 -07:00
2019-09-17 19:39:15 -07:00
#### warmup period
2019-08-26 10:01:33 -07:00
2019-09-17 19:39:15 -07:00
Some number of epochs after stake has been delegated while it progressively
becomes effective. During this period, the stake is considered to be
"activating". More info about:
[warmup and cooldown ](stake-delegation-and-rewards.md#stake-warmup-cooldown-withdrawal )