Besu Certified Professional flashcards
Besu Certified Professional · Build recall with a focused review session.
32 cards. Read the term and the definition here. The deck at the top of this page is optional.
- Besu data directory
- Default location for Besu data including RocksDB database, keystore, and network key; set with --data-path. Backup by stopping node and copying directory; do not copy while running.
- Besu genesis file
- JSON file defining private network: chainId, consensus config, alloc for pre-funded accounts, and initial validators in extraData. Must be identical on all nodes; loaded with --genesis-file.
- IBFT 2.0 consensus
- Byzantine fault-tolerant PoA consensus requiring 2f+1 validators to commit blocks. Provides immediate finality; validator changes via voting; block time set by blockperiodseconds.
- QBFT consensus
- Improved IBFT 2.0 consensus for Besu; requires 2f+1 validators; supports dynamic validator sets and higher throughput. Recommended for new private networks; uses qbft_ JSON-RPC methods.
- Clique consensus
- Proof-of-Authority consensus where authorized signers take turns producing blocks. Uses period and epoch config; signers vote via clique_propose; simpler but less fault-tolerant than IBFT/QBFT.
- eth_syncing method
- JSON-RPC method returning false when node is fully synced, or an object with sync status (startingBlock, currentBlock, highestBlock) when syncing. Used to monitor sync progress.
- Besu metrics
- Prometheus-format metrics exposed when --metrics-enabled is set; default port 9545. Monitor block height, peer count, CPU, memory; use Grafana dashboards for visualization.
- eth_call
- JSON-RPC method executing a read-only smart contract function without creating a transaction. Returns function output; does not change state; used for queries.
- eth_sendRawTransaction
- JSON-RPC method submitting a signed transaction to the network. Returns transaction hash; use eth_getTransactionReceipt to check status (0x1 success, 0x0 fail).
- Besu privacy with Tessera
- Private transactions use Tessera privacy manager; configure --privacy-enabled and --privacy-url. Private payload encrypted; only group members can decrypt; on-chain only hash visible.
- Local permissioning
- Node and account permissioning using configuration files (nodes-allowlist, accounts-allowlist). Enable with --permissions-nodes-config-file-enabled and --permissions-accounts-config-file-enabled; requires restart or reload.
- On-chain permissioning
- Permissioning via smart contracts deployed on network; configure contract addresses with --permissions-nodes-contract-address and --permissions-accounts-contract-address. Updates take effect after transaction mined.
- Contract deployment address
- Computed as keccak256(rlp(sender, nonce))[12:]; obtained from eth_getTransactionReceipt contractAddress after deployment transaction is mined. No to address in deployment transaction.
- Solidity event logs
- Events emitted by contracts stored in logs; retrieve via eth_getLogs. topics[0] is keccak256 of event signature; indexed parameters become additional topics.
- Besu node key
- Private key for P2P identity stored in data directory; enode derived from public key. Back up securely; used for node authentication and peer discovery.
- JSON-RPC TLS
- Enable TLS for JSON-RPC with --rpc-http-tls-enabled and keystore flags. Supports mutual TLS with --rpc-http-tls-client-auth-enabled; encrypts RPC traffic.
- JWT for Engine API
- Besu uses JWT authentication for Engine API (post-merge); configure with --engine-jwt-secret. Required for consensus layer communication; separate from JSON-RPC auth.
- Besu upgrade procedure
- Stop node, backup data directory, replace binaries, restart. Check release notes for database schema changes; major upgrades may require resync. Test in staging first.
- Genesis fork blocks
- Network upgrades configured in genesis with fork block numbers (e.g., londonBlock, shanghaiTime). All nodes must upgrade before fork block to avoid chain split.
- Besu JSON-RPC namespaces
- API groups enabled via --rpc-http-api: ETH, NET, WEB3, ADMIN, DEBUG, TRACE, MINER, QBFT, IBFT, PERM, PLUGINS. Restrict to needed namespaces for security.
- eth_estimateGas
- JSON-RPC method estimating gas needed for a transaction. Returns gas estimate; used to set gasLimit. Helps avoid out-of-gas errors.
- Besu bootnodes
- Initial peers for discovery specified as enode URLs (enode://pubkey@ip:port). Set via --bootnodes flag or genesis config; used to join network.
- extraData validator encoding
- In genesis, extraData contains initial validators: for IBFT/QBFT, RLP-encoded list of addresses with 32-byte vanity prefix/suffix; for Clique, vanity + signer addresses + signature.
- Besu sync modes
- FULL sync downloads and executes all blocks; SNAP sync (default) uses snapshots for faster sync; archive mode keeps full state. Set with --sync-mode.
- admin_peers
- JSON-RPC method listing connected peers with details (enode, version, latency). Used for troubleshooting connectivity and monitoring peer count.
- Besu dev mode
- Run with --network=dev for a quick local development chain with pre-funded accounts and instant blocks. Useful for testing contracts; not for production.
- Contract ABI encoding
- Application Binary Interface defines function selectors (first 4 bytes of keccak256 signature) and parameter encoding. Used by libraries (web3.js, ethers.js) to interact with contracts.
- Besu account keystore
- Encrypted JSON files storing private keys; managed with --key-store-path. Alternatively use external signer (EthSigner) for secure key storage; never expose keys in config.
- RPC host binding
- Bind JSON-RPC to localhost (--rpc-http-host=127.0.0.1) by default for security; use 0.0.0.0 only when remote access needed, combined with firewall and auth.
- Besu Docker deployment
- Use hyperledger/besu image; mount data volume for persistence; pass CLI flags as arguments. Pull new tag for upgrades; ensure volume persists across container restarts.
- Besu CLI network flag
- --network selects predefined network (mainnet, goerli, sepolia, dev) or custom genesis. For private networks, use --genesis-file instead. Affects chainId and bootnodes.
- Validator voting
- Add or remove validators via qbft_proposeValidatorVote or ibft_proposeValidatorVote. Proposal requires majority of validators; takes effect after epoch. Used to manage validator set.