diff --git a/docs/src/terminology.md b/docs/src/terminology.md index ba40b30788..9392fa2a85 100644 --- a/docs/src/terminology.md +++ b/docs/src/terminology.md @@ -6,7 +6,18 @@ 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. +A record in the Solana ledger that either holds data or is an executable program. + +Like an account at a traditional bank, a Solana account may hold funds called [lamports](terminology.md#lamport). Like a file in Linux, it is addressable by a [key], often referred to as a (terminology.md#public-key) public key or pubkey. + +The key may be one of: +an ed25519 public key +a program-derived account address (32byte value forced off the ed25519 curve) +a hash of an ed25519 public key with a 32 character string + +## account owner + +The address of the program that owns the account. Only the owning program is capable of modifying the account. ## app @@ -22,7 +33,7 @@ A contiguous set of [entries](terminology.md#entry) on the ledger covered by a [ ## 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 +A unique value ([hash](terminology.md#hash)) that identifies a record (block). Solana computes a blockhash from the last [entry id](terminology.md#entry-id) of the block. ## block height @@ -30,15 +41,19 @@ The number of [blocks](terminology.md#block) beneath the current block. The firs ## bootstrap validator -The first [validator](terminology.md#validator) to produce a [block](terminology.md#block). +The [validator](terminology.md#validator) that produces the genesis (first) [block](terminology.md#block) of a block chain. + +## BPF loader + +The Solana program that owns and loads (BPF) smart contract programs, allowing the program to interface with the runtime ## 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. +The 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). +A computer program that accesses the Solana server network [cluster](terminology.md#cluster). ## cluster @@ -50,7 +65,7 @@ The wallclock duration between a [leader](terminology.md#leader) creating a [tic ## 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. +A [block](terminology.md#block) that has received a [supermajority](terminology.md#supermajority) of [ledger votes](terminology.md#ledger-vote). ## control plane @@ -64,9 +79,9 @@ Some number of [epochs](terminology.md#epoch) after [stake](terminology.md#stake See [vote credit](terminology.md#vote-credit). -## cross-program invocation +## cross-program invocation (CPI) -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). +A call from one smart contract program to another. For more information, see [calling between programs](developing/programming-model/calling-between-programs.md). ## data plane @@ -88,7 +103,7 @@ A preimage resistant [hash](terminology.md#hash) over the final contents of an e - 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). +See [proof of history](terminology.md#proof-of-history). ## epoch @@ -128,11 +143,11 @@ 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). +The smallest contiguous unit of execution logic in a [program](terminology.md#program). An instruction specifies which program it is calling, which accounts it wants to read or modify, and additional data that serves as auxiliary input to the program. A [client](terminology.md#client) can include one or multiple instructions in a [transaction](terminology.md#transaction). 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). +A [public key](terminology.md#public-key) and corresponding [private key](terminology.md#private-key) for accessing an account. ## lamport @@ -195,15 +210,19 @@ The private key of a [keypair](terminology.md#keypair). The code that interprets [instructions](terminology.md#instruction). +## program derived account (PDA) + +An account whose owner is a program and thus is not controlled by a private key like other accounts. + ## program id The public key of the [account](terminology.md#account) containing a [program](terminology.md#program). -## Proof of History +## proof of history (PoH) 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 +## public key (pubkey) The public key of a [keypair](terminology.md#keypair). @@ -215,6 +234,10 @@ A [block](terminology.md#block) or [slot](terminology.md#slot) that has reached The component of a [validator](terminology.md#validator) responsible for [program](terminology.md#program) execution. +##Sealevel + +Solana's parallel smart contracts run-time. + ## shred A fraction of a [block](terminology.md#block); the smallest unit sent between [validators](terminology.md#validator). @@ -239,11 +262,15 @@ Collectively, slots create a logical clock. Slots are ordered sequentially and n ## smart contract -A set of constraints that once satisfied, signal to a program that some predefined account updates are permitted. +A program on a blockchain that can read and modify accounts over which it has control. ## sol -The [native token](terminology.md#native-token) tracked by a [cluster](terminology.md#cluster) recognized by the company Solana. +The [native token](terminology.md#native-token) of a Solana [cluster](terminology.md#cluster). + +## Solana Program Library (SPL) + +A library of programs on Solana such as spl-token that facilitates tasks such as creating and using tokens ## stake @@ -255,7 +282,7 @@ Tokens forfeit to the [cluster](terminology.md#cluster) if malicious [validator] ## 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). +A system [account](terminology.md#account). [Sysvars](developing/runtime-facilities/sysvars.md) provide cluster state information such as current tick height, rewards [points](terminology.md#point) values, etc. Programs can access Sysvars via a Sysvar account (pubkey) or by querying via a syscall. ## thin client @@ -271,7 +298,7 @@ The Nth [tick](terminology.md#tick) in the [ledger](terminology.md#ledger). ## token -A scarce, fungible member of a set of tokens. +A digitally transferable asset. ## tps @@ -279,7 +306,7 @@ A scarce, fungible member of a set of tokens. ## 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. +One or more [instructions](terminology.md#instruction) signed by a [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 @@ -295,13 +322,13 @@ A set of [transactions](terminology.md#transaction) that may be executed in para ## 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). +A full participant in a Solana network [cluster](terminology.md#cluster) that produces new [blocks](terminology.md#block). A validator validates the transactions added to the [ledger](terminology.md#ledger) ## VDF See [verifiable delay function](terminology.md#verifiable-delay-function). -## verifiable delay function +## verifiable delay function (VDF) 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. @@ -315,7 +342,7 @@ A reward tally for [validators](terminology.md#validator). A vote credit is awar ## wallet -A collection of [keypairs](terminology.md#keypair). +A collection of [keypairs](terminology.md#keypair) that allows users to manage their funds. ## warmup period