solana/docs/src/terminology.md

323 lines
14 KiB
Markdown
Raw Normal View History

---
title: Terminology
---
The following terms are used throughout the documentation.
## account
A persistent file addressed by [public key](terminology.md#public-key) and with [lamports](terminology.md#lamport) tracking its lifetime.
## app
A front-end application that interacts with a Solana cluster.
## bank state
The result of interpreting all programs on the ledger at a given [tick height](terminology.md#tick-height). It includes at least the set of all [accounts](terminology.md#account) holding nonzero [native tokens](terminology.md#native-tokens).
## block
A contiguous set of [entries](terminology.md#entry) on the ledger covered by a [vote](terminology.md#ledger-vote). A [leader](terminology.md#leader) produces at most one block per [slot](terminology.md#slot).
## blockhash
A preimage resistant [hash](terminology.md#hash) of the [ledger](terminology.md#ledger) at a given [block height](terminology.md#block-height). Taken from the last [entry id](terminology.md#entry-id) in the slot
2019-01-23 16:17:19 -08:00
## block height
2019-01-23 16:17:19 -08:00
The number of [blocks](terminology.md#block) beneath the current block. The first block after the [genesis block](terminology.md#genesis-block) has height one.
## bootstrap validator
The first [validator](terminology.md#validator) to produce a [block](terminology.md#block).
## CBC block
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.
## client
A [node](terminology.md#node) that utilizes the [cluster](terminology.md#cluster).
## cluster
A set of [validators](terminology.md#validator) maintaining a single [ledger](terminology.md#ledger).
## confirmation time
The wallclock duration between a [leader](terminology.md#leader) creating a [tick entry](terminology.md#tick) and creating a [confirmed block](terminology.md#confirmed-block).
## confirmed block
A [block](terminology.md#block) that has received a [supermajority](terminology.md#supermajority) of [ledger votes](terminology.md#ledger-vote) with a ledger interpretation that matches the leader's.
## control plane
A gossip network connecting all [nodes](terminology.md#node) of a [cluster](terminology.md#cluster).
## cooldown period
2020-12-14 13:04:26 -08:00
Some number of [epochs](terminology.md#epoch) after [stake](terminology.md#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](implemented-proposals/staking-rewards.md#stake-warmup-cooldown-withdrawal)
## credit
See [vote credit](terminology.md#vote-credit).
## cross-program invocation
An [instruction](terminology.md#instruction) called from within an instruction. Put differently, it is how a program calls into another program. For more information, see [calling between programs](developing/programming-model/calling-between-programs.md).
## data plane
A multicast network used to efficiently validate [entries](terminology.md#entry) and gain consensus.
## drone
An off-chain service that acts as a custodian for a user's private key. It typically serves to validate and sign transactions.
## entry
An entry on the [ledger](terminology.md#ledger) either a [tick](terminology.md#tick) or a [transactions entry](terminology.md#transactions-entry).
## entry id
2019-01-23 16:17:19 -08:00
A preimage resistant [hash](terminology.md#hash) over the final contents of an entry, which acts as the [entry's](terminology.md#entry) globally unique identifier. The hash serves as evidence of:
- The entry being generated after a duration of time
- The specified [transactions](terminology.md#transaction) are those included in the entry
- The entry's position with respect to other entries in [ledger](terminology.md#ledger)
See [Proof of History](terminology.md#proof-of-history).
2019-01-23 16:17:19 -08:00
## epoch
The time, i.e. number of [slots](terminology.md#slot), for which a [leader schedule](terminology.md#leader-schedule) is valid.
## fee account
The fee account in the transaction is the account pays for the cost of including the transaction in the ledger. This is the first account in the transaction. This account must be declared as Read-Write (writable) in the transaction since paying for the transaction reduces the account balance.
## finality
2020-12-14 13:04:26 -08:00
When nodes representing 2/3rd of the [stake](terminology.md#stake) have a common [root](terminology.md#root).
## fork
A [ledger](terminology.md#ledger) derived from common entries but then diverged.
## genesis block
The first [block](terminology.md#block) in the chain.
## genesis config
The configuration file that prepares the [ledger](terminology.md#ledger) for the [genesis block](terminology.md#genesis-block).
## hash
A digital fingerprint of a sequence of bytes.
## inflation
An increase in token supply over time used to fund rewards for validation and to fund continued development of Solana.
## inner instruction
See [cross-program invocation](terminology.md#cross-program-invocation).
## instruction
The smallest unit of a [program](terminology.md#program) that a [client](terminology.md#client) can include in a [transaction](terminology.md#transaction). Within its processing code, an instruction may contain one or more [cross-program invocations](terminology.md#cross-program-invocation).
## keypair
A [public key](terminology.md#public-key) and corresponding [private key](terminology.md#private-key).
## lamport
A fractional [native token](terminology.md#native-token) with the value of 0.000000001 [sol](terminology.md#sol).
## leader
The role of a [validator](terminology.md#validator) when it is appending [entries](terminology.md#entry) to the [ledger](terminology.md#ledger).
## leader schedule
A sequence of [validator](terminology.md#validator) [public keys](terminology.md#public-key) mapped to [slots](terminology.md#slot). The cluster uses the leader schedule to determine which validator is the [leader](terminology.md#leader) at any moment in time.
## ledger
A list of [entries](terminology.md#entry) containing [transactions](terminology.md#transaction) signed by [clients](terminology.md#client).
Conceptually, this can be traced back to the [genesis block](terminology.md#genesis-block), but actual [validators](terminology.md#validator)'s ledger may have only newer [blocks](terminology.md#block) to save storage usage as older ones not needed for validation of future blocks by design.
## ledger vote
2020-12-14 13:04:26 -08:00
A [hash](terminology.md#hash) of the [validator's state](terminology.md#bank-state) at a given [tick height](terminology.md#tick-height). It comprises a [validator's](terminology.md#validator) affirmation that a [block](terminology.md#block) it has received has been verified, as well as a promise not to vote for a conflicting [block](terminology.md#block) \(i.e. [fork](terminology.md#fork)\) for a specific amount of time, the [lockout](terminology.md#lockout) period.
## light client
A type of [client](terminology.md#client) that can verify it's pointing to a valid [cluster](terminology.md#cluster). It performs more ledger verification than a [thin client](terminology.md#thin-client) and less than a [validator](terminology.md#validator).
## loader
A [program](terminology.md#program) with the ability to interpret the binary encoding of other on-chain programs.
## lockout
The duration of time for which a [validator](terminology.md#validator) is unable to [vote](terminology.md#ledger-vote) on another [fork](terminology.md#fork).
## native token
The [token](terminology.md#token) used to track work done by [nodes](terminology.md#node) in a cluster.
## node
A computer participating in a [cluster](terminology.md#cluster).
## node count
The number of [validators](terminology.md#validator) participating in a [cluster](terminology.md#cluster).
## PoH
See [Proof of History](terminology.md#proof-of-history).
## point
2020-12-14 13:04:26 -08:00
A weighted [credit](terminology.md#credit) in a rewards regime. In the [validator](terminology.md#validator) [rewards regime](cluster/stake-delegation-and-rewards.md), the number of points owed to a [stake](terminology.md#stake) during redemption is the product of the [vote credits](terminology.md#vote-credit) earned and the number of lamports staked.
## private key
The private key of a [keypair](terminology.md#keypair).
## program
The code that interprets [instructions](terminology.md#instruction).
## program id
The public key of the [account](terminology.md#account) containing a [program](terminology.md#program).
## 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](terminology.md#verifiable-delay-function), a Proof of History can be verified in less time than it took to produce.
## public key
The public key of a [keypair](terminology.md#keypair).
## root
2020-12-14 13:04:26 -08:00
A [block](terminology.md#block) or [slot](terminology.md#slot) that has reached maximum [lockout](terminology.md#lockout) on a [validator](terminology.md#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.
## runtime
The component of a [validator](terminology.md#validator) responsible for [program](terminology.md#program) execution.
## shred
A fraction of a [block](terminology.md#block); the smallest unit sent between [validators](terminology.md#validator).
2019-09-20 15:16:35 -07:00
## signature
A 64-byte ed25519 signature of R (32-bytes) and S (32-bytes). With the requirement that R is a packed Edwards point not of small order and S is a scalar in the range of 0 <= S < L.
This requirement ensures no signature malleability. Each transaction must have at least one signature for [fee account](terminology#fee-account).
Thus, the first signature in transaction can be treated as [transacton id](terminology.md#transaction-id)
## skipped slot
A past [slot](terminology.md#slot) that did not produce a [block](terminology.md#block), because the leader was offline or the [fork](terminology.md#fork) containing the slot was abandoned for a better alternative by cluster consensus. A skipped slot will not appear as an ancestor for blocks at subsequent slots, nor increment the [block height](terminology#block-height), nor expire the oldest `recent_blockhash`.
Whether a slot has been skipped can only be determined when it becomes older than the latest [rooted](terminology.md#root) (thus not-skipped) slot.
## slot
2019-09-20 15:16:35 -07:00
The period of time for which each [leader](terminology.md#leader) ingests transactions and produces a [block](terminology.md#block).
Collectively, slots create a logical clock. Slots are ordered sequentially and non-overlapping, comprising roughly equal real-world time as per [PoH](terminology.md#proof-of-history).
## smart contract
A set of constraints that once satisfied, signal to a program that some predefined account updates are permitted.
## sol
The [native token](terminology.md#native-token) tracked by a [cluster](terminology.md#cluster) recognized by the company Solana.
## stake
Tokens forfeit to the [cluster](terminology.md#cluster) if malicious [validator](terminology.md#validator) behavior can be proven.
## supermajority
2/3 of a [cluster](terminology.md#cluster).
## sysvar
An [account](terminology.md#account) maintained by the runtime and provided to programs which provide cluster state such as current tick height, rewards [points](terminology.md#point) values, etc. Sysvars can either be [passed to the program as an account or queried by the program via a syscall](developing/runtime-facilities/sysvars.md).
## thin client
A type of [client](terminology.md#client) that trusts it is communicating with a valid [cluster](terminology.md#cluster).
## tick
A ledger [entry](terminology.md#entry) that estimates wallclock duration.
## tick height
The Nth [tick](terminology.md#tick) in the [ledger](terminology.md#ledger).
## token
A scarce, fungible member of a set of tokens.
## tps
[Transactions](terminology.md#transaction) per second.
## transaction
One or more [instructions](terminology.md#instruction) signed by the [client](terminology.md#client) using one or more [keypairs](terminology.md#keypair) and executed atomically with only two possible outcomes: success or failure.
## transaction id
The first [signature](terminology.md#signature) in a [transaction](terminology.md#transaction), which can be used to uniquely identify the transaction across the complete [ledger](terminology.md#ledger).
## transaction confirmations
The number of [confirmed blocks](terminology.md#confirmed-block) since the transaction was accepted onto the [ledger](terminology.md#ledger). A transaction is finalized when its block becomes a [root](terminology.md#root).
## transactions entry
A set of [transactions](terminology.md#transaction) that may be executed in parallel.
## validator
A full participant in the [cluster](terminology.md#cluster) responsible for validating the [ledger](terminology.md#ledger) and producing new [blocks](terminology.md#block).
## VDF
See [verifiable delay function](terminology.md#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.
## vote
See [ledger vote](terminology.md#ledger-vote).
## vote credit
2020-12-14 13:04:26 -08:00
A reward tally for [validators](terminology.md#validator). A vote credit is awarded to a validator in its vote account when the validator reaches a [root](terminology.md#root).
2020-03-10 07:43:38 -07:00
## wallet
A collection of [keypairs](terminology.md#keypair).
## warmup period
2020-12-14 13:04:26 -08:00
Some number of [epochs](terminology.md#epoch) after [stake](terminology.md#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](cluster/stake-delegation-and-rewards.md#stake-warmup-cooldown-withdrawal)