diff --git a/docs/private-networks/concepts/node-sync-private.md b/docs/private-networks/concepts/node-sync-private.md index e28c2f124d6..6ea0ef330dd 100644 --- a/docs/private-networks/concepts/node-sync-private.md +++ b/docs/private-networks/concepts/node-sync-private.md @@ -24,9 +24,9 @@ Select the sync mode based on your network's requirements and node purposes. | Sync mode | Description | Requirements | Limitations | |--------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|-------------| -| [Snap](../../public-networks/concepts/node-sync.md#snap-synchronization) | Recommended for fastest sync and lowest storage requirements on Mainnet. Downloads as many leaves of the trie as possible and reconstructs the trie locally. Faster than fast sync. | Available as an _early access feature_ in Besu version 24.7.1 or later | Cannot switch from fast sync to snap sync mid-process. | +| [Snap](../../public-networks/concepts/node-sync.md#snap-synchronization) | Recommended for fastest sync and lowest storage requirements on Mainnet. Downloads as many leaves of the trie as possible and reconstructs the trie locally. Faster than fast sync. | Besu version 24.3.0 or later | Cannot switch from fast sync to snap sync mid-process. | | [Checkpoint](../../public-networks/concepts/node-sync.md#checkpoint-synchronization) | Syncs from a specific checkpoint block configured in the genesis file. Fastest sync mode with lowest storage requirements. | Besu version 22.4.3 or later | Not supported for QBFT or IBFT 2.0 networks without a checkpoint configuration. | -| [Fast](../../public-networks/concepts/node-sync.md#fast-synchronization-deprecated) | Downloads block headers and transaction receipts, verifies chain from genesis block. | None | Not supported with private transactions. | +| [Fast](../../public-networks/concepts/node-sync.md#fast-synchronization-deprecated) | Downloads block headers and transaction receipts, verifies chain from genesis block. | None | Deprecated. Not supported with private transactions. | | [Full](../../public-networks/concepts/node-sync.md#full-synchronization) | Default for all private networks. Downloads and verifies the entire blockchain and state from genesis block, building an archive node with full state history. | None | Slowest sync mode, requires the most disk space. | :::warning Early access feature diff --git a/docs/private-networks/concepts/pki.md b/docs/private-networks/concepts/pki.md deleted file mode 100644 index f2555d544b9..00000000000 --- a/docs/private-networks/concepts/pki.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Public key infrastructure -sidebar_position: 5 -description: Public key infrastructure -tags: - - private networks ---- - -# Public key infrastructure - -:::warning - -Public key infrastructure (PKI) support is an early access feature, and functionality and options may be updated between releases. - -::: - -Besu's public key infrastructure allows you to use certificates issued by a trusted authority to manage node and account identities in the following ways: - -- Node permissioning - Only authorized nodes can connect to other nodes in the network using TLS for the P2P communication. -- Block proposal permissioning - Only blocks proposed by authorized validators are accepted. - -Supported keystore and truststore formats used to store the certificates include PKCS11, PKCS12, and JKS. - -## Node permissioning - -Allow TLS communication between nodes by using certificates issued by a trusted authority to connect to other authorized nodes in the network. - -When receiving connection requests, the incoming connection must be from another authorized node. Similarly, when connecting to a node the initiator ensures that the remote node is authorized to participate in the network. - -[Configure TLS for the P2P communication using the Besu command line options](../how-to/configure/tls/p2p.md). - - diff --git a/docs/private-networks/how-to/configure/tls/p2p.md b/docs/private-networks/how-to/configure/tls/p2p.md deleted file mode 100644 index 1f7a89e26bb..00000000000 --- a/docs/private-networks/how-to/configure/tls/p2p.md +++ /dev/null @@ -1,312 +0,0 @@ ---- -title: Peer-to-peer TLS -sidebar_position: 2 -description: Configure P2P TLS communication -tags: - - private networks ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -# Configure P2P TLS - -You can configure TLS to secure the P2P communication between nodes by ensuring only authorized nodes can communicate with each other. Use certificates issued by a trusted authority to connect authorized nodes in the network. - -:::caution - -P2P TLS is an early access feature, and functionality and options may be updated between releases. - -::: - -Besu supports PKCS11, PKCS12, and JKS keystore and truststore types for P2P TLS. - -## Configure P2P TLS - -**Prerequisites**: - -- A configured network. For example, [see steps 1 to 5 in the QBFT tutorial](../../../tutorials/qbft.md). -- Each node requires a keystore that contains the node's certificate and key. -- A truststore containing all the trusted certificates for the network. - -Start Besu and include the following command line options on the required nodes: - -```bash -besu --Xp2p-tls-enabled=true \ ---Xp2p-tls-keystore-type="PKCS12" \ ---Xp2p-tls-keystore-file="keystore" \ ---Xp2p-tls-keystore-password-file="keystore.password" \ ---Xp2p-tls-crl-file="crl2.pem" \ ---Xp2p-tls-truststore-type="JKS" \ ---Xp2p-tls-truststore-file="truststore.jks" \ ---Xp2p-tls-truststore-password-file="truststore_password.txt" -``` - -In the command line: - -- Enable TLS for P2P communication using [`--Xp2p-tls-enabled=true`](#xp2p-tls-enabled). -- Specify the keystore type and keystore file using [`--Xp2p-tls-keystore-type`](#xp2p-tls-keystore-type) and [`--Xp2p-tls-keystore-file`](#xp2p-tls-keystore-file). -- Specify the text file containing the password to unlock the keystore file using [`--Xp2p-tls-keystore-password-file`](#xp2p-tls-keystore-password-file). -- Specify the optional [certificate revocation list (CRL)] file using [`--Xp2p-tls-crl-file`](#xp2p-tls-crl-file). -- Specify the truststore type and truststore file using [`--Xp2p-tls-truststore-type`](#xp2p-tls-truststore-type) and [`--Xp2p-tls-truststore-file`](#xp2p-tls-truststore-file). -- Specify the text file containing the password to unlock the truststore file using [`--Xp2p-tls-truststore-password-file`](#xp2p-tls-keystore-password-file). - -## Command line options - -### `Xp2p-tls-crl-file` - - - - - -```bash ---Xp2p-tls-crl-file= -``` - - - - - -```bash ---Xp2p-tls-crl-file=/home/cert/cert.crl.pem -``` - - - - - -```bash -BESU_XP2P_TLS_CRL_FILE=/home/cert/cert.crl.pem -``` - - - - - -Path to the optional certificate revocation list (CRL) file. - -### `Xp2p-tls-enabled` - - - - - -```bash ---Xp2p-tls-enabled[=] -``` - - - - - -```bash ---Xp2p-tls-enabled=true -``` - - - - - -```bash -BESU_XP2P_TLS_ENABLED=true -``` - - - - - -Enable TLS for P2P communication. The default is `false`. - -### `Xp2p-tls-keystore-file` - - - - - -```bash ---Xp2p-tls-keystore-file= -``` - - - - - -```bash ---Xp2p-tls-keystore-file=/home/cert/keystore.jks -``` - - - - - -```bash -BESU_XP2P_TLS_KEYSTORE_FILE=/home/cert/keystore.jks -``` - - - - - -Keystore file containing the key and certificate to allow TLS for P2P communication. - -### `Xp2p-tls-keystore-password-file` - - - - - -```bash ---Xp2p-tls-keystore-password-file= -``` - - - - - -```bash ---Xp2p-tls-keystore-password-file=/home/cert/password.txt -``` - - - - - -```bash -BESU_XP2P_TLS_KEYSTORE_PASSWORD_FILE=/home/cert/password.txt -``` - - - - - -Text file containing the password to unlock the keystore file. - -### `Xp2p-tls-keystore-type` - - - - - -```bash ---Xp2p-tls-keystore-type= -``` - - - - - -```bash ---Xp2p-tls-keystore-type=JKS -``` - - - - - -```bash -BESU_XP2P_TLS_KEYSTORE_TYPE=JKS -``` - - - - - -Keystore type that allows TLS for P2P communication. Valid options are `JKS`, `PKCS11`, and `PKCS12`. The default is `JKS`. - -### `Xp2p-tls-truststore-file` - - - - - -```bash ---Xp2p-tls-truststore-file= -``` - - - - - -```bash ---Xp2p-tls-truststore-file=/home/cert/truststore.jks -``` - - - - - -```bash -BESU_XP2P_TLS_TRUSTSTORE_FILE=/home/cert/truststore.jks -``` - - - - - -Truststore containing the trusted certificates that allows TLS for P2P communication. - -### `Xp2p-tls-truststore-password-file` - - - - - -```bash ---Xp2p-tls-truststore-password-file= -``` - - - - - -```bash ---Xp2p-tls-truststore-password-file=/home/cert/password.txt -``` - - - - - -```bash -BESU_XP2P_TLS_TRUSTSTORE_PASSWORD_FILE=/home/cert/password.txt -``` - - - - - -Text file containing the password to unlock the truststore file. - -### `Xp2p-tls-truststore-type` - - - - - -```bash ---Xp2p-tls-truststore-type= -``` - - - - - -```bash ---Xp2p-tls-truststore-type=JKS -``` - - - - - -```bash -BESU_XP2P_TLS_TRUSTSTORE_TYPE=JKS -``` - - - - - -Truststore type. Valid options are `JKS`, `PKCS11`, and `PKCS12`. The default is `JKS`. - -[certificate revocation list (CRL)]: https://www.securew2.com/blog/certificate-revocation-crl-explained diff --git a/docs/private-networks/tutorials/ethash.md b/docs/private-networks/tutorials/ethash.md index a16d164982c..25138fe603d 100644 --- a/docs/private-networks/tutorials/ethash.md +++ b/docs/private-networks/tutorials/ethash.md @@ -9,7 +9,13 @@ tags: import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Create a private network using Ethash +# Create a private network using Ethash (Deprecated) + +:::caution + +PoW consensus is deprecated in Besu version 24.11.0 and later. Please read this [blog post](https://www.lfdecentralizedtrust.org/blog/sunsetting-tessera-and-simplifying-hyperledger-besu) for more context on the rationale behind this decision as well as alternative options. + +::: A private network provides a configurable network for testing. By configuring a low difficulty and enabling mining, this allows for fast block creation. diff --git a/docs/private-networks/tutorials/kubernetes/playground.md b/docs/private-networks/tutorials/kubernetes/playground.md index b2561ddc6fe..6206162e46f 100644 --- a/docs/private-networks/tutorials/kubernetes/playground.md +++ b/docs/private-networks/tutorials/kubernetes/playground.md @@ -15,7 +15,7 @@ The [playground](https://github.com/ConsenSys/quorum-kubernetes/tree/master/play 1. Navigate to the playground [`README`](https://github.com/ConsenSys/quorum-kubernetes/tree/master/playground). 1. Ensure that your system meets the requirements specified. 1. Choose your Ethereum client (Besu or GoQuorum): `quorum-besu` or `quorum-go`. -1. Choose your consensus algorithm. The playground supports Clique, Ethash (PoW), and IBFT2 for Besu, and IBFT for GoQuorum. +1. Choose your consensus algorithm. The playground supports Clique, Ethash (PoW, deprecated), and IBFT2 for Besu, and IBFT for GoQuorum. 1. Follow the instructions from the `README` for the chosen client and consensus algorithm folder. ## Important notes diff --git a/docs/public-networks/how-to/use-pow/mining.md b/docs/public-networks/how-to/use-pow/mining.md index ce8e30091e3..9cd8b806b08 100644 --- a/docs/public-networks/how-to/use-pow/mining.md +++ b/docs/public-networks/how-to/use-pow/mining.md @@ -7,7 +7,13 @@ tags: - private networks --- -# Configure mining +# Configure mining (Deprecated) + +:::caution + +PoW consensus is deprecated in Besu version 24.11.0 and later. Please read this [blog post](https://www.lfdecentralizedtrust.org/blog/sunsetting-tessera-and-simplifying-hyperledger-besu) for more context on the rationale behind this decision as well as alternative options. + +::: Besu supports CPU and GPU mining, which are configured using command line options. @@ -30,7 +36,7 @@ besu --rpc-http-api=ETH,MINER --miner-enabled --miner-coinbase= Where `` is the account you pay mining rewards to. For example, `fe3b557e8fb62b89f4916b721be55ceb828dbd73`. -Start and stop mining using the [`miner_start`](../../reference/api/index.md#miner_start) and [`miner_stop`](../../reference/api/index.md#miner_stop) APIs. +Start and stop mining using the [`miner_start`](../../reference/api/index.md#miner_start-deprecated) and [`miner_stop`](../../reference/api/index.md#miner_stop-deprecated) APIs. ## Configure GPU mining @@ -46,30 +52,30 @@ Where `` is the account you pay mining rewards to. For example, `fe3b55 Optional command line options are: -- [`--miner-stratum-host`](../../reference/cli/options.md#miner-stratum-host) to specify the host of the mining service. -- [`--miner-stratum-port`](../../reference/cli/options.md#miner-stratum-port) to specify the port of the mining service. +- [`--miner-stratum-host`](../../reference/cli/options.md#miner-stratum-host-deprecated) to specify the host of the mining service. +- [`--miner-stratum-port`](../../reference/cli/options.md#miner-stratum-port-deprecated) to specify the port of the mining service. :::note -Besu also supports the `getwork` scheme. Use the [`--miner-stratum-enabled`](../../reference/cli/options.md#miner-stratum-enabled) option and [enable the `ETH` RPCs](../../reference/cli/options.md#rpc-http-api). +Besu also supports the `getwork` scheme. Use the [`--miner-stratum-enabled`](../../reference/cli/options.md#miner-stratum-enabled-deprecated) option and [enable the `ETH` RPCs](../../reference/cli/options.md#rpc-http-api). The `getwork` scheme is supported as the `http` scheme in certain mining software. ::: -Start and stop mining using the [`miner_start`](../../reference/api/index.md#miner_start) and [`miner_stop`](../../reference/api/index.md#miner_stop) APIs. +Start and stop mining using the [`miner_start`](../../reference/api/index.md#miner_start-deprecated) and [`miner_stop`](../../reference/api/index.md#miner_stop-deprecated) APIs. ## Mining APIs The JSON-RPC API methods for mining are: -- [`miner_start`](../../reference/api/index.md#miner_start) to start mining. -- [`miner_stop`](../../reference/api/index.md#miner_stop) to stop mining. -- [`eth_mining`](../../reference/api/index.md#eth_mining) to determine whether the client is actively mining new blocks. -- [`eth_getMinerDataByBlockHash`](../../reference/api/index.md#eth_getminerdatabyblockhash) and [`eth_getMinerDataByBlockNumber`](../../reference/api/index.md#eth_getminerdatabyblocknumber) to get the miner data for a specified block. -- [`eth_hashrate`](../../reference/api/index.md#eth_hashrate) to get the number of hashes per second with which the node is mining. Not supported for GPU mining. -- [`eth_getWork`](../../reference/api/index.md#eth_getwork) to get the hash of the current block, the seed hash, and the target boundary condition. Only used when using the `getwork` scheme. -- [`eth_submitWork`](../../reference/api/index.md#eth_submitwork) to submit the PoW solution. Only used when using the `getwork` scheme. +- [`miner_start`](../../reference/api/index.md#miner_start-deprecated) to start mining. +- [`miner_stop`](../../reference/api/index.md#miner_stop-deprecated) to stop mining. +- [`eth_mining`](../../reference/api/index.md#eth_mining-deprecated) to determine whether the client is actively mining new blocks. +- [`eth_getMinerDataByBlockHash`](../../reference/api/index.md#eth_getminerdatabyblockhash-deprecated) and [`eth_getMinerDataByBlockNumber`](../../reference/api/index.md#eth_getminerdatabyblocknumber) to get the miner data for a specified block. +- [`eth_hashrate`](../../reference/api/index.md#eth_hashrate-deprecated) to get the number of hashes per second with which the node is mining. Not supported for GPU mining. +- [`eth_getWork`](../../reference/api/index.md#eth_getwork-deprecated) to get the hash of the current block, the seed hash, and the target boundary condition. Only used when using the `getwork` scheme. +- [`eth_submitWork`](../../reference/api/index.md#eth_submitwork-deprecated) to submit the PoW solution. Only used when using the `getwork` scheme. ## Troubleshoot diff --git a/docs/public-networks/index.md b/docs/public-networks/index.md index a3a601bc6d4..d823cbc0af8 100644 --- a/docs/public-networks/index.md +++ b/docs/public-networks/index.md @@ -11,8 +11,6 @@ tags: Besu serves as an [execution client](concepts/node-clients.md#execution-clients) on public proof-of-stake Ethereum networks such as Ethereum Mainnet, Holesky, Ephemery, and Sepolia. -You can also run Besu using proof of work on [Ethereum Classic (ETC)](how-to/use-pow/mining.md). - Get started by [installing Besu](get-started/install/index.md). ## Architecture diff --git a/docs/public-networks/reference/api/index.md b/docs/public-networks/reference/api/index.md index 6e6b31122b2..44aa8d1312c 100644 --- a/docs/public-networks/reference/api/index.md +++ b/docs/public-networks/reference/api/index.md @@ -4135,7 +4135,7 @@ curl -X POST -H "Content-Type: application/json" --data '{"query": "{logs(filter -### `eth_getMinerDataByBlockHash` +### `eth_getMinerDataByBlockHash` (Deprecated) Returns miner data for the specified block. @@ -5506,7 +5506,7 @@ curl -X POST -H "Content-Type: application/json" --data '{ "query": "{block(numb -### `eth_getWork` +### `eth_getWork` (Deprecated) Returns the hash of the current block, the seed hash, and the required target boundary condition. @@ -5563,7 +5563,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getWork","params":[],"id":1} -### `eth_hashrate` +### `eth_hashrate` (Deprecated) Returns the number of hashes per second with which the node is mining. @@ -5653,7 +5653,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_maxPriorityFeePerGas","param -### `eth_mining` +### `eth_mining` (Deprecated) Whether the client is actively mining new blocks. Besu pauses mining while the client synchronizes with the network regardless of command settings or methods called. @@ -6018,7 +6018,7 @@ mutation { -### `eth_submitHashrate` +### `eth_submitHashrate` (Deprecated) Submits the mining hashrate. This is used by mining software such as [Ethminer](https://github.com/ethereum-mining/ethminer). @@ -6072,7 +6072,7 @@ curl -X POST --data '{"jsonrpc":"2.0", "method":"eth_submitHashrate", "params":[ -### `eth_submitWork` +### `eth_submitWork` (Deprecated) Submits a proof of work (Ethash) solution. This is used by mining software such as [Ethminer](https://github.com/ethereum-mining/ethminer). @@ -6696,7 +6696,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"miner_setMinPriorityFee","params -### `miner_start` +### `miner_start` (Deprecated) Starts the mining process. To start mining, you must first specify a miner coinbase using the [`--miner-coinbase`](../cli/options.md#miner-coinbase) command line option or using [`miner_setCoinbase`](#miner_setcoinbase). @@ -6741,7 +6741,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"miner_start","params":[],"id":1} -### `miner_stop` +### `miner_stop` (Deprecated) Stops the mining process on the client. diff --git a/docs/public-networks/reference/api/objects.md b/docs/public-networks/reference/api/objects.md index e9c8d9c78b3..8fe8317d23f 100644 --- a/docs/public-networks/reference/api/objects.md +++ b/docs/public-networks/reference/api/objects.md @@ -91,7 +91,7 @@ Returned by [`eth_getFilterChanges`](index.md#eth_getfilterchanges) and [`priv_g ## Miner data object -Returned by [`eth_getMinerDataByBlockHash`](index.md#eth_getminerdatabyblockhash) and [`eth_getMinerDataByBlockNumber`](index.md#eth_getminerdatabyblocknumber). +Returned by [`eth_getMinerDataByBlockHash`](index.md#eth_getminerdatabyblockhash-deprecated) and [`eth_getMinerDataByBlockNumber`](index.md#eth_getminerdatabyblocknumber). | Key | Type | Value | | --- | :-: | --- | diff --git a/docs/public-networks/reference/cli/options.md b/docs/public-networks/reference/cli/options.md index 37977a000a6..e3fc246cbdf 100644 --- a/docs/public-networks/reference/cli/options.md +++ b/docs/public-networks/reference/cli/options.md @@ -2335,7 +2335,7 @@ miner-coinbase="0xfe3b557e8fb62b89f4916b721be55ceb828dbd73" The account you pay mining rewards to. You must specify a valid coinbase when you enable mining using the -[`--miner-enabled`](#miner-enabled) option or the [`miner_start`](../api/index.md#miner_start) +[`--miner-enabled`](#miner-enabled) option or the [`miner_start`](../api/index.md#miner_start-deprecated) JSON-RPC API method. :::note @@ -2427,7 +2427,7 @@ miner-extra-data="0x444F4E27542050414E4943202120484F444C2C20484F444C2C20484F444C A hex string representing the 32 bytes included in the extra data field of a created block. The default is `0x`. -### `miner-stratum-enabled` +### `miner-stratum-enabled` (Deprecated) @@ -2460,7 +2460,7 @@ miner-stratum-enabled=true Enables a node to perform stratum mining. The default is `false`. -### `miner-stratum-host` +### `miner-stratum-host` (Deprecated) @@ -2501,7 +2501,7 @@ miner-stratum-host="192.168.1.132" The host of the stratum mining service. The default is `0.0.0.0`. -### `miner-stratum-port` +### `miner-stratum-port` (Deprecated) @@ -2569,7 +2569,7 @@ Specify the method for handling [NAT environments](../../how-to/connect/specify- - [`UPNP`](../../how-to/connect/specify-nat.md#upnp) - [`UPNPP2PONLY`](../../how-to/connect/specify-nat.md#upnp) -- [`KUBERNETES`](../../how-to/connect/specify-nat.md#kubernetes) +- [`KUBERNETES` (Deprecated)](../../how-to/connect/specify-nat.md#kubernetes) - [`DOCKER`](../../how-to/connect/specify-nat.md#docker) - [`AUTO`](../../how-to/connect/specify-nat.md#auto) - [`NONE`](../../how-to/connect/specify-nat.md#none).