From ef52f1d0c58e92c4679905fd581a0819a7bc98e0 Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Fri, 22 Nov 2024 15:10:29 +1000 Subject: [PATCH 1/4] deprecate PoW features Signed-off-by: Sally MacFarlane --- docs/private-networks/tutorials/ethash.md | 8 +++++++- docs/private-networks/tutorials/kubernetes/playground.md | 2 +- docs/public-networks/how-to/use-pow/mining.md | 8 +++++++- docs/public-networks/index.md | 2 -- docs/public-networks/reference/api/index.md | 4 ++-- docs/public-networks/reference/cli/options.md | 8 ++++---- 6 files changed, 21 insertions(+), 11 deletions(-) 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..e146688d24d 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..b4c179531d2 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. 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..8993b3a5fab 100644 --- a/docs/public-networks/reference/api/index.md +++ b/docs/public-networks/reference/api/index.md @@ -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. @@ -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). diff --git a/docs/public-networks/reference/cli/options.md b/docs/public-networks/reference/cli/options.md index 037bf5384e0..fbb6b63a64f 100644 --- a/docs/public-networks/reference/cli/options.md +++ b/docs/public-networks/reference/cli/options.md @@ -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). From dc3b9e46f5372924152e623ee20538c7aa92f23a Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Fri, 22 Nov 2024 15:14:00 +1000 Subject: [PATCH 2/4] more Signed-off-by: Sally MacFarlane --- docs/public-networks/reference/api/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/public-networks/reference/api/index.md b/docs/public-networks/reference/api/index.md index 8993b3a5fab..c4b2c04fdd8 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. @@ -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. @@ -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. From f561ce52b254e2e2d8a8251c4a7ee264a1702643 Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Fri, 22 Nov 2024 15:15:14 +1000 Subject: [PATCH 3/4] more Signed-off-by: Sally MacFarlane --- docs/public-networks/reference/api/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/public-networks/reference/api/index.md b/docs/public-networks/reference/api/index.md index c4b2c04fdd8..44aa8d1312c 100644 --- a/docs/public-networks/reference/api/index.md +++ b/docs/public-networks/reference/api/index.md @@ -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). From b97ae5fbc61a1c834b97a661fa981100e55682dd Mon Sep 17 00:00:00 2001 From: Alexandra Tran Date: Sun, 24 Nov 2024 15:11:58 -0800 Subject: [PATCH 4/4] fix links Signed-off-by: Alexandra Tran --- .../tutorials/kubernetes/playground.md | 2 +- docs/public-networks/how-to/use-pow/mining.md | 24 +++++++++---------- docs/public-networks/reference/api/objects.md | 2 +- docs/public-networks/reference/cli/options.md | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/private-networks/tutorials/kubernetes/playground.md b/docs/private-networks/tutorials/kubernetes/playground.md index e146688d24d..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; Deprecated), 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 b4c179531d2..9cd8b806b08 100644 --- a/docs/public-networks/how-to/use-pow/mining.md +++ b/docs/public-networks/how-to/use-pow/mining.md @@ -36,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 @@ -52,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/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 fbb6b63a64f..2f22326ab0a 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