Skip to content

Commit 98d8fcf

Browse files
authored
Do not set up pre-execution and request processors for PoA networks (#9623)
Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com>
1 parent d3a63c6 commit 98d8fcf

File tree

7 files changed

+35
-36
lines changed

7 files changed

+35
-36
lines changed

acceptance-tests/tests/src/test/resources/dev/dev_prague.json

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,7 @@
3232
"baseFeeUpdateFraction": 5007716
3333
}
3434
},
35-
"clique": {
36-
"period": 5,
37-
"epoch": 30000
38-
},
35+
"ethash": {},
3936
"depositContractAddress": "0x4242424242424242424242424242424242424242",
4037
"withdrawalRequestContractAddress": "0x00A3ca265EBcb825B45F985A16CEFB49958cE017",
4138
"consolidationRequestContractAddress": "0x00b42dbF2194e931E80326D950320f7d9Dbeac02"
@@ -142,4 +139,4 @@
142139
"gasUsed":"0x0",
143140
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
144141
"baseFeePerGas":"0x7"
145-
}
142+
}

acceptance-tests/tests/src/test/resources/jsonrpc/engine/osaka/genesis.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@
1616
"cancunTime":0,
1717
"pragueTime":0,
1818
"osakaTime": 32,
19-
"clique": {
20-
"period": 5,
21-
"epoch": 30000
22-
},
19+
"ethash": {},
2320
"depositContractAddress": "0x4242424242424242424242424242424242424242",
2421
"withdrawalRequestContractAddress": "0x00A3ca265EBcb825B45F985A16CEFB49958cE017",
2522
"consolidationRequestContractAddress": "0x00b42dbF2194e931E80326D950320f7d9Dbeac02"

acceptance-tests/tests/src/test/resources/jsonrpc/engine/paris/genesis.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@
1313
"berlinBlock":0,
1414
"londonBlock":0,
1515
"terminalTotalDifficulty":0,
16-
"clique": {
17-
"period": 5,
18-
"epoch": 30000
19-
}
16+
"ethash": {}
2017
},
2118
"nonce":"0x42",
2219
"timestamp":"0x0",

acceptance-tests/tests/src/test/resources/jsonrpc/engine/prague/genesis.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,7 @@
1515
"terminalTotalDifficulty":0,
1616
"cancunTime":0,
1717
"pragueTime":20,
18-
"clique": {
19-
"period": 5,
20-
"epoch": 30000
21-
},
18+
"ethash": {},
2219
"depositContractAddress": "0x4242424242424242424242424242424242424242",
2320
"withdrawalRequestContractAddress": "0x00A3ca265EBcb825B45F985A16CEFB49958cE017",
2421
"consolidationRequestContractAddress": "0x00b42dbF2194e931E80326D950320f7d9Dbeac02"

acceptance-tests/tests/src/test/resources/jsonrpc/engine/shanghai/genesis.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,7 @@
1414
"londonBlock":0,
1515
"terminalTotalDifficulty":0,
1616
"shanghaiTime":10,
17-
"clique": {
18-
"period": 5,
19-
"epoch": 30000
20-
}
17+
"ethash": {}
2118
},
2219
"nonce":"0x42",
2320
"timestamp":"0x0",

acceptance-tests/tests/src/test/resources/jsonrpc/eth/getBlockBy/genesis.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@
1313
"berlinBlock":0,
1414
"londonBlock":0,
1515
"shanghaiTime":10,
16-
"clique": {
17-
"period": 5,
18-
"epoch": 30000
19-
},
16+
"ethash": {},
2017
"terminalTotalDifficulty":0
2118
},
2219
"nonce":"0x42",

ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/MainnetProtocolSpecs.java

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -866,7 +866,10 @@ static ProtocolSpecBuilder cancunDefinition(
866866
evm.getMaxInitcodeSize()))
867867
.precompileContractRegistryBuilder(MainnetPrecompiledContractRegistries::cancun)
868868
.blockHeaderValidatorBuilder(MainnetBlockHeaderValidator::blobAwareBlockHeaderValidator)
869-
.preExecutionProcessor(new CancunPreExecutionProcessor())
869+
.preExecutionProcessor(
870+
isPoAConsensus(genesisConfigOptions)
871+
? new FrontierPreExecutionProcessor()
872+
: new CancunPreExecutionProcessor())
870873
.hardforkId(CANCUN);
871874
}
872875

@@ -947,22 +950,36 @@ static ProtocolSpecBuilder pragueDefinition(
947950
new CodeDelegationService()))
948951
.build())
949952
// EIP-2935 Blockhash processor
950-
.preExecutionProcessor(new PraguePreExecutionProcessor())
953+
.preExecutionProcessor(
954+
isPoAConsensus(genesisConfigOptions)
955+
? new FrontierPreExecutionProcessor()
956+
: new PraguePreExecutionProcessor())
951957
.hardforkId(PRAGUE);
952-
try {
953-
RequestContractAddresses requestContractAddresses =
954-
RequestContractAddresses.fromGenesis(genesisConfigOptions);
955-
956-
pragueSpecBuilder.requestProcessorCoordinator(
957-
pragueRequestsProcessors(requestContractAddresses));
958-
} catch (NoSuchElementException nsee) {
959-
LOG.warn("Prague definitions require system contract addresses in genesis");
960-
throw nsee;
958+
if (isPoAConsensus(genesisConfigOptions)) {
959+
LOG.debug(
960+
"Skipping system contract request processors for PoA consensus (clique/ibft/qbft).");
961+
} else {
962+
try {
963+
RequestContractAddresses requestContractAddresses =
964+
RequestContractAddresses.fromGenesis(genesisConfigOptions);
965+
966+
pragueSpecBuilder.requestProcessorCoordinator(
967+
pragueRequestsProcessors(requestContractAddresses));
968+
} catch (NoSuchElementException nsee) {
969+
LOG.warn("Prague definitions require system contract addresses in genesis");
970+
throw nsee;
971+
}
961972
}
962973

963974
return pragueSpecBuilder;
964975
}
965976

977+
private static boolean isPoAConsensus(final GenesisConfigOptions genesisConfigOptions) {
978+
return genesisConfigOptions.isClique()
979+
|| genesisConfigOptions.isIbft2()
980+
|| genesisConfigOptions.isQbft();
981+
}
982+
966983
static ProtocolSpecBuilder osakaDefinition(
967984
final Optional<BigInteger> chainId,
968985
final boolean enableRevertReason,

0 commit comments

Comments
 (0)