Besu Certified Professional study materials
Besu Certified Professional study resources

Besu Certified Professional key terms

Besu Certified Professional · Get comfortable with the vocabulary.

Genesis file

A JSON document that defines a chain's initial state: chain ID, consensus settings, pre-funded accounts, block gas limit, and hard fork activation blocks. Every node on the network must use an identical copy to reach the same genesis hash.

Related: Chain ID, Extra data field, Bootnode
Chain ID

A numeric identifier placed in the genesis file and embedded in every signed transaction. It prevents replay of transactions across chains, so nodes reject transactions signed for a different network.

Related: Genesis file, Replay protection
Extra data field

A genesis field whose meaning depends on consensus. Under IBFT 2.0 and QBFT it carries the initial validator set plus the RLP-encoded vote and round number; under Clique it holds signer addresses and a vanity prefix.

Related: Validator set, Genesis file, Clique
Bootnode

A node whose enode URL is hard-coded so new peers can discover the network. It does not need to be a validator, but it must be reachable and running the same chain ID and genesis hash as joining nodes.

Related: enode URL, Static node, P2P discovery
Static node

A peer entry in the node's configuration that Besu always attempts to connect to and never drops for inactivity. Static nodes are used to build a stable mesh, for example connecting every validator to every other validator.

Related: Bootnode, enode URL, Validator
enode URL

A peer address in the form enode://<128-hex-node-public-key>@:. It contains no IP-based identity, so the same key can be advertised from different addresses; the port defaults to 30303 for dev networks.

Related: Bootnode, Node key, Static node
Node key

The private key that determines a node's P2P identity and therefore its enode URL. It is separate from account keys used to sign transactions and must be preserved if peers rely on a fixed enode address.

Related: enode URL, Key store, Validator key
Validator key

The private key whose address identifies a validator in IBFT 2.0 or QBFT. It signs consensus messages such as proposals, prepares, and commits, and must be available whenever the validator is running.

Related: Validator set, Node key, Block proposal
Validator set

The list of addresses authorised to produce and attest blocks under a proof-of-authority protocol. Membership changes through on-chain votes, and the current set is derivable from block headers rather than from the genesis file alone.

Related: Extra data field, Validator key, Quorum
IBFT 2.0

A Byzantine fault tolerant proof-of-authority protocol in Besu where validators take turns proposing blocks and finalise them after a two-phase prepare and commit exchange. Finalised blocks are never reorganised, which suits consortium networks needing immediate settlement.

Related: QBFT, Quorum, Block proposal
QBFT

The successor to IBFT 2.0 in Besu, offering a formally specified Byzantine fault tolerant consensus with improved liveness and clearer message handling. It uses the same validator-voting model but is generally preferred for new permissioned networks.

Related: IBFT 2.0, Quorum, Validator set
Quorum

The minimum number of validator signatures required to make progress or finalise a block. In IBFT 2.0 and QBFT it is two-thirds of the validator set rounded up, so a network of four validators tolerates one faulty node.

Related: IBFT 2.0, QBFT, Byzantine fault tolerance
Byzantine fault tolerance

The property that a consensus network keeps producing a single consistent chain even when some participants fail or send contradictory messages. It requires more than two-thirds of voting power to be honest.

Related: Quorum, IBFT 2.0, Fork
Block proposal

The phase in IBFT 2.0 or QBFT where the designated proposer for a round broadcasts a candidate block. Other validators validate it and respond with prepare then commit messages before it is written and finalised.

Related: Validator set, Round change, Quorum
Round change

The mechanism that lets validators abandon a stalled round when the proposer is offline or slow. Validators broadcast round-change messages, and once a quorum agrees a new proposer is selected for the next round.

Related: Block proposal, Quorum, Liveness
Clique

A simpler proof-of-authority protocol where authorised signers take turns producing blocks in a rotating schedule. It offers no immediate finality, so short reorganisations are possible, and Besu supports it mainly for compatibility.

Related: IBFT 2.0, Genesis file, Fork
Ethash

The proof-of-work mining algorithm used by Ethereum mainnet before the Merge. Besu can run Ethash networks for testing, but production Besu deployments overwhelmingly use proof-of-authority or post-Merge proof-of-stake chains.

Related: Genesis file, Mining beneficiary
Mining beneficiary

The account that receives block rewards under proof-of-work. On proof-of-authority networks rewards are normally zero, so the beneficiary field is set but does not transfer value to the block producer.

Related: Ethash, Genesis file
Fork

A divergence in chain history, either temporary when two validators propose competing blocks or permanent when nodes disagree on protocol rules. Besu avoids permanent forks by requiring identical genesis and fork-block configuration across peers.

Related: Chain ID, Byzantine fault tolerance, Clique
JSON-RPC API

The HTTP or WebSocket interface Besu exposes for reading chain state and submitting transactions. Methods are grouped into namespaces such as eth, net, admin, debug, and priv, and each namespace must be enabled explicitly.

Related: Namespace, WebSocket subscription, eth_sendRawTransaction
Namespace

A prefix grouping JSON-RPC methods by function and risk level, for example eth, net, web3, admin, debug, miner, and priv. Enabling admin or debug on a public interface exposes powerful operations and should be restricted.

Related: JSON-RPC API, Host allowlist, eth_sendRawTransaction
eth_sendRawTransaction

The JSON-RPC method that submits a signed, RLP-encoded transaction to the node. The node validates nonce, gas, signature, and chain ID before propagating it to peers; the returned value is the transaction hash, not a receipt.

Related: Replay protection, Transaction receipt, JSON-RPC API
Transaction receipt

The result record available after a transaction is included in a block, containing status, cumulative gas used, logs, and contract address. Polling for a receipt is the standard way to confirm execution outcome.

Related: eth_sendRawTransaction, Event log
Event log

A structured record emitted by a contract during execution and stored in the transaction receipt. Logs are not readable by contracts themselves but are the primary way off-chain systems observe on-chain activity.

Related: Transaction receipt, Smart contract deployment
WebSocket subscription

A persistent JSON-RPC connection over which the node pushes notifications for new blocks, pending transactions, or logs matching a filter. It avoids polling but requires the WebSocket service and relevant namespaces to be enabled.

Related: JSON-RPC API, Namespace
Host allowlist

A configuration list controlling which Host header values the JSON-RPC HTTP service accepts. Requests with unlisted hosts are rejected, which mitigates DNS-rebinding attacks against a locally exposed API.

Related: JSON-RPC API, TLS, Namespace
TLS

Transport encryption for Besu's JSON-RPC endpoints and P2P links, configured with a keystore and certificate chain. Enabling it prevents credential and payload exposure on the network but adds certificate lifecycle management.

Related: Host allowlist, Key store, JSON-RPC API
Key store

A directory of encrypted JSON files, each holding one private key protected by a password. Besu uses key stores for node keys, validator keys, and account keys referenced by the --node-private-key-file and related options.

Related: Node key, Validator key, Account unlock
Account unlock

The process of supplying a password so Besu can sign transactions for a locally stored account via eth_sendTransaction. Unlocking is disabled by default and is riskier than signing transactions client-side.

Related: Key store, eth_sendRawTransaction
Permissioning

The set of controls deciding which nodes may peer and which accounts may submit transactions. Besu implements node and account allowlists, either locally in files or on-chain through permissioning contracts that update without restarts.

Related: Onchain permissioning, Validator set, Privacy group
Onchain permissioning

A permissioning model where allowlists live in smart contracts, so changes are made by sending transactions rather than editing files and restarting nodes. Nodes poll the contracts and enforce the resulting lists automatically.

Related: Permissioning, Smart contract deployment
Privacy group

An identifier for a set of nodes that share private transactions under Besu's private transaction feature. Members receive the payload and state; non-members see only a marker transaction with no readable data.

Related: Private transaction, Marker transaction, Permissioning
Private transaction

A transaction whose payload is distributed only to members of a privacy group, with the public chain recording a hash-based marker instead of the data. State resulting from it is stored in a separate private state trie.

Related: Privacy group, Marker transaction
Marker transaction

The public on-chain transaction that references a private transaction's hash and privacy group, proving it occurred without revealing contents. It carries a special recipient address that the privacy precompile recognises.

Related: Private transaction, Privacy group
Smart contract deployment

Publishing contract code by sending a transaction with no recipient and the compiled bytecode as data. The resulting contract address derives from the sender address and nonce, and the receipt confirms success or revert.

Related: Transaction receipt, Event log, Gas estimation
Gas estimation

The process of simulating a transaction to predict the gas it will consume, exposed through eth_estimateGas. Accurate estimates prevent out-of-gas failures, and Besu applies the block gas limit as a ceiling.

Related: Smart contract deployment, eth_sendRawTransaction
eth_call

A JSON-RPC method that executes a contract function against current or specified state without creating a transaction. It returns the decoded result immediately and is used for read-only queries and pre-flight checks.

Related: Gas estimation, JSON-RPC API, Smart contract deployment
Replay protection

The guarantee that a signed transaction valid on one chain cannot be resubmitted on another. It relies on the chain ID in the signature, so mismatched chain IDs cause nodes to reject the transaction outright.

Related: Chain ID, eth_sendRawTransaction
Liveness

The ability of a network to keep finalising blocks despite failed or partitioned validators. It depends on having more than two-thirds of validators online, so validator count and placement directly affect resilience.

Related: Quorum, Round change, Byzantine fault tolerance