Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PoW mining - deprecation #7905

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -52,27 +52,34 @@
/** The Mining CLI options. */
public class MiningOptions implements CLIOptions<MiningConfiguration> {

private static final String DEPRECATION_PREFIX =
"Deprecated. PoW consensus is deprecated. See CHANGELOG for alternative options. ";

@Option(
names = {"--miner-enabled"},
description = "Set if node will perform mining (default: ${DEFAULT-VALUE})")
description =
DEPRECATION_PREFIX + "Set if node will perform mining (default: ${DEFAULT-VALUE})")
macfarla marked this conversation as resolved.
Show resolved Hide resolved
private Boolean isMiningEnabled = false;

@Option(
names = {"--miner-stratum-enabled"},
description =
"Set if node will perform Stratum mining (default: ${DEFAULT-VALUE})."
DEPRECATION_PREFIX
+ "Set if node will perform Stratum mining (default: ${DEFAULT-VALUE})."
+ " Compatible with Proof of Work (PoW) only."
+ " Requires the network option (--network) to be set to CLASSIC.")
private Boolean iStratumMiningEnabled = false;

@Option(
names = {"--miner-stratum-host"},
description = "Host for Stratum network mining service (default: ${DEFAULT-VALUE})")
description =
DEPRECATION_PREFIX
+ "Host for Stratum network mining service (default: ${DEFAULT-VALUE})")
private String stratumNetworkInterface = "0.0.0.0";

@Option(
names = {"--miner-stratum-port"},
description = "Stratum port binding (default: ${DEFAULT-VALUE})")
description = DEPRECATION_PREFIX + "Stratum port binding (default: ${DEFAULT-VALUE})")
private Integer stratumPort = 8008;

@Option(
Expand Down Expand Up @@ -124,7 +131,8 @@ public class MiningOptions implements CLIOptions<MiningConfiguration> {
names = {"--block-txs-selection-max-time"},
converter = PositiveNumberConverter.class,
description =
"Specifies the maximum time, in milliseconds, that could be spent selecting transactions to be included in the block."
DEPRECATION_PREFIX
+ "Specifies the maximum time, in milliseconds, that could be spent selecting transactions to be included in the block."
+ " Not compatible with PoA networks, see poa-block-txs-selection-max-time. (default: ${DEFAULT-VALUE})")
private PositiveNumber nonPoaBlockTxsSelectionMaxTime =
DEFAULT_NON_POA_BLOCK_TXS_SELECTION_MAX_TIME;
Expand All @@ -146,34 +154,40 @@ static class Unstable {
hidden = true,
names = {"--Xminer-remote-sealers-limit"},
description =
"Limits the number of remote sealers that can submit their hashrates (default: ${DEFAULT-VALUE})")
DEPRECATION_PREFIX
+ "Limits the number of remote sealers that can submit their hashrates (default: ${DEFAULT-VALUE})")
private Integer remoteSealersLimit = DEFAULT_REMOTE_SEALERS_LIMIT;

@CommandLine.Option(
hidden = true,
names = {"--Xminer-remote-sealers-hashrate-ttl"},
description =
"Specifies the lifetime of each entry in the cache. An entry will be automatically deleted if no update has been received before the deadline (default: ${DEFAULT-VALUE} minutes)")
DEPRECATION_PREFIX
+ "Specifies the lifetime of each entry in the cache. An entry will be automatically deleted if no update has been received before the deadline (default: ${DEFAULT-VALUE} minutes)")
private Long remoteSealersTimeToLive = DEFAULT_REMOTE_SEALERS_TTL;

@CommandLine.Option(
hidden = true,
names = {"--Xminer-pow-job-ttl"},
description =
"Specifies the time PoW jobs are kept in cache and will accept a solution from miners (default: ${DEFAULT-VALUE} milliseconds)")
DEPRECATION_PREFIX
+ "Specifies the time PoW jobs are kept in cache and will accept a solution from miners (default: ${DEFAULT-VALUE} milliseconds)")
private Long powJobTimeToLive = DEFAULT_POW_JOB_TTL;

@CommandLine.Option(
hidden = true,
names = {"--Xmax-ommers-depth"},
description =
"Specifies the depth of ommer blocks to accept when receiving solutions (default: ${DEFAULT-VALUE})")
DEPRECATION_PREFIX
+ "Specifies the depth of ommer blocks to accept when receiving solutions (default: ${DEFAULT-VALUE})")
private Integer maxOmmersDepth = DEFAULT_MAX_OMMERS_DEPTH;

@CommandLine.Option(
hidden = true,
names = {"--Xminer-stratum-extranonce"},
description = "Extranonce for Stratum network miners (default: ${DEFAULT-VALUE})")
description =
DEPRECATION_PREFIX
+ "Extranonce for Stratum network miners (default: ${DEFAULT-VALUE})")
private String stratumExtranonce = "080c";

@CommandLine.Option(
Expand Down Expand Up @@ -230,6 +244,9 @@ public void validate(
final GenesisConfigOptions genesisConfigOptions,
final boolean isMergeEnabled,
final Logger logger) {
if (Boolean.TRUE.equals(isMiningEnabled)) {
logger.warn("PoW consensus is deprecated. See CHANGELOG for alternative options.");
}
if (Boolean.TRUE.equals(isMiningEnabled) && coinbase == null) {
throw new ParameterException(
commandLine,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
import com.google.common.base.Suppliers;
import org.apache.tuweni.units.bigints.BaseUInt256Value;

@Deprecated(since = "24.12.0")
public class EthGetMinerDataByBlockHash implements JsonRpcMethod {
private final Supplier<BlockchainQueries> blockchain;
private final ProtocolSchedule protocolSchedule;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import org.hyperledger.besu.ethereum.api.query.TransactionWithMetadata;
import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule;

@Deprecated(since = "24.12.0")
public class EthGetMinerDataByBlockNumber extends AbstractBlockParameterMethod {
private final ProtocolSchedule protocolSchedule;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Deprecated(since = "24.12.0")
public class EthGetWork implements JsonRpcMethod {

private final MiningCoordinator miner;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

import java.util.Optional;

@Deprecated(since = "24.12.0")
public class EthHashrate implements JsonRpcMethod {

private final MiningCoordinator miningCoordinator;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

import org.apache.tuweni.bytes.Bytes;

@Deprecated(since = "24.12.0")
public class EthSubmitHashRate implements JsonRpcMethod {

private final MiningCoordinator miningCoordinator;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Deprecated(since = "24.12.0")
public class EthSubmitWork implements JsonRpcMethod {

private final MiningCoordinator miner;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.hyperledger.besu.ethereum.blockcreation.CoinbaseNotSetException;
import org.hyperledger.besu.ethereum.blockcreation.MiningCoordinator;

@Deprecated(since = "24.12.0")
public class MinerStart implements JsonRpcMethod {

private final MiningCoordinator miningCoordinator;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse;
import org.hyperledger.besu.ethereum.blockcreation.MiningCoordinator;

@Deprecated(since = "24.12.0")
public class MinerStop implements JsonRpcMethod {

private final MiningCoordinator miningCoordinator;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import org.immutables.value.Value;

@Value.Immutable
@Deprecated(since = "24.12.0")
public abstract class MinerDataResult implements JsonRpcResult {
public abstract String getNetBlockReward();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
* Responsible for determining when a block mining operation should be started/stopped, then
* creating an appropriate miner and starting it running in a thread.
*/
@Deprecated(since = "24.12.0")
public class PoWMiningCoordinator extends AbstractMiningCoordinator<PoWBlockMiner>
implements BlockAddedObserver {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import org.slf4j.LoggerFactory;

/** Protocol using JSON-RPC HTTP methods to provide getWork/submitWork methods. */
@Deprecated(since = "24.12.0")
public class GetWorkProtocol implements StratumProtocol {
private static final Logger LOG = LoggerFactory.getLogger(GetWorkProtocol.class);
private static final ObjectMapper mapper = new ObjectMapper();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
*
* <p>This protocol allows miners to submit EthHash solutions over a persistent TCP connection.
*/
@Deprecated(since = "24.12.0")
public class Stratum1EthProxyProtocol implements StratumProtocol {
private static final Logger LOG = LoggerFactory.getLogger(Stratum1EthProxyProtocol.class);
private static final JsonMapper mapper = new JsonMapper();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
*
* <p>This protocol allows miners to submit EthHash solutions over a persistent TCP connection.
*/
@Deprecated(since = "24.12.0")
public class Stratum1Protocol implements StratumProtocol {
private static final Logger LOG = LoggerFactory.getLogger(Stratum1Protocol.class);
private static final JsonMapper mapper = new JsonMapper();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
* Persistent TCP connection using a variant of the Stratum protocol, connecting the client to
* miners.
*/
@Deprecated(since = "24.12.0")
final class StratumConnection {
private static final Logger LOG = LoggerFactory.getLogger(StratumConnection.class);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
* <p>Manages the lifecycle of a TCP connection according to a particular variant of the Stratum
* protocol.
*/
@Deprecated(since = "24.12.0")
public interface StratumProtocol {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
* TCP server allowing miners to connect to the client over persistent TCP connections, using the
* various Stratum protocols.
*/
@Deprecated(since = "24.12.0")
public class StratumServer implements PoWObserver {

private static final Logger logger = LoggerFactory.getLogger(StratumServer.class);
Expand Down
2 changes: 1 addition & 1 deletion plugin-api/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ Calculated : ${currentHash}
tasks.register('checkAPIChanges', FileStateChecker) {
description = "Checks that the API for the Plugin-API project does not change without deliberate thought"
files = sourceSets.main.allJava.files
knownHash = 'f6fi+lsYVZtFjmGOyiMPPCfNDie4SIPpj6HVgXRxF8Q='
knownHash = '94IaBVinp3FKvDN7EEe98w7O1hdwbDro0nG6vbIvpbY='
}
check.dependsOn('checkAPIChanges')

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@
package org.hyperledger.besu.plugin;

/** Deprecated in favor of the more precisely named ServiceManager interface. */
@Deprecated(since = "24.11.0", forRemoval = true)
@Deprecated(since = "24.12.0")
public interface BesuContext extends ServiceManager {}