Skip to content

Commit fad74d4

Browse files
committed
Merge branch 'main' of github.com:hyperledger/besu into test-errorprone-check
2 parents 06af2a5 + 2e43a8c commit fad74d4

File tree

119 files changed

+11371
-1208
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

119 files changed

+11371
-1208
lines changed

.github/workflows/verify_artifacts.py

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,26 @@ def create_artifact_paths(version):
66
artifacts_base_path = "https://hyperledger.jfrog.io/hyperledger/besu-maven/org/hyperledger/besu"
77
# add to this list here to update the list of artifacts to check
88
artifacts = [
9-
# besu/evm
10-
f"{artifacts_base_path}/evm/{version}/evm-{version}.module",
11-
f"{artifacts_base_path}/evm/{version}/evm-{version}.pom",
12-
f"{artifacts_base_path}/evm/{version}/evm-{version}.jar",
13-
# besu/plugin-api
14-
f"{artifacts_base_path}/plugin-api/{version}/plugin-api-{version}.module",
15-
f"{artifacts_base_path}/plugin-api/{version}/plugin-api-{version}.pom",
16-
f"{artifacts_base_path}/plugin-api/{version}/plugin-api-{version}.jar",
17-
# besu/metrics-core
18-
f"{artifacts_base_path}/internal/metrics-core/{version}/metrics-core-{version}.module",
19-
f"{artifacts_base_path}/internal/metrics-core/{version}/metrics-core-{version}.pom",
20-
f"{artifacts_base_path}/internal/metrics-core/{version}/metrics-core-{version}.jar",
21-
# besu/internal/core
22-
f"{artifacts_base_path}/internal/core/{version}/core-{version}.module",
23-
f"{artifacts_base_path}/internal/core/{version}/core-{version}.pom",
24-
f"{artifacts_base_path}/internal/core/{version}/core-{version}.jar",
25-
# besu/internal/config
26-
f"{artifacts_base_path}/internal/config/{version}/config-{version}.module",
27-
f"{artifacts_base_path}/internal/config/{version}/config-{version}.pom",
28-
f"{artifacts_base_path}/internal/config/{version}/config-{version}.jar",
9+
# besu-evm
10+
f"{artifacts_base_path}/besu-evm/{version}/besu-evm-{version}.module",
11+
f"{artifacts_base_path}/besu-evm/{version}/besu-evm-{version}.pom",
12+
f"{artifacts_base_path}/besu-evm/{version}/besu-evm-{version}.jar",
13+
# besu-plugin-api
14+
f"{artifacts_base_path}/besu-plugin-api/{version}/besu-plugin-api-{version}.module",
15+
f"{artifacts_base_path}/besu-plugin-api/{version}/besu-plugin-api-{version}.pom",
16+
f"{artifacts_base_path}/besu-plugin-api/{version}/besu-plugin-api-{version}.jar",
17+
# besu-metrics-core
18+
f"{artifacts_base_path}/internal/besu-metrics-core/{version}/besu-metrics-core-{version}.module",
19+
f"{artifacts_base_path}/internal/besu-metrics-core/{version}/besu-metrics-core-{version}.pom",
20+
f"{artifacts_base_path}/internal/besu-metrics-core/{version}/besu-metrics-core-{version}.jar",
21+
# internal/besu-ethereum-core
22+
f"{artifacts_base_path}/internal/besu-ethereum-core/{version}/besu-ethereum-core-{version}.module",
23+
f"{artifacts_base_path}/internal/besu-ethereum-core/{version}/besu-ethereum-core-{version}.pom",
24+
f"{artifacts_base_path}/internal/besu-ethereum-core/{version}/besu-ethereum-core-{version}.jar",
25+
# internal/besu-config
26+
f"{artifacts_base_path}/internal/besu-config/{version}/besu-config-{version}.module",
27+
f"{artifacts_base_path}/internal/besu-config/{version}/besu-config-{version}.pom",
28+
f"{artifacts_base_path}/internal/besu-config/{version}/besu-config-{version}.jar",
2929
# bom
3030
f"{artifacts_base_path}/bom/{version}/bom-{version}.module",
3131
f"{artifacts_base_path}/bom/{version}/bom-{version}.pom",
@@ -38,7 +38,7 @@ def check_url(url):
3838
print(f"Checking artifact at: {url}")
3939
r = requests.head(url)
4040
if (r.status_code != 200):
41-
raise Exception(f"Sorry, No artifact found at '{url}' !!!")
41+
raise Exception(f"Sorry, No artifact found at '{url}' !!!")
4242

4343
def main():
4444
parser = argparse.ArgumentParser(description='Check besu artifacts')

CHANGELOG.md

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,73 @@
11
# Changelog
2+
23
## Unreleased
4+
5+
### Breaking Changes
6+
- Change in behavior for `eth_estimateGas`, to improve accuracy, when used on a network with a base fee market, the internal transaction simulation does not anymore underprice transactions, so if there are no gas pricing related fields specified in the request, then gas price for the transaction is set to the base fee value [#8888](https://github.com/hyperledger/besu/pull/8888)
7+
8+
### Upcoming Breaking Changes
9+
10+
### Additions and Improvements
11+
- Improve transaction simulation and gas estimation when no gas pricing is present [#8888](https://github.com/hyperledger/besu/pull/8888)
12+
13+
#### Fusaka devnets
14+
- EIP-7910 - `eth_config` JSON-RPC Method [#8417](https://github.com/hyperledger/besu/pull/8417)
15+
16+
### Bug fixes
17+
18+
19+
## 25.7.0
320
### Breaking Changes
421
- Changes in Maven coordinates of Besu artifacts to avoid possible collisions with other libraries when packaging plugins. See [Appendix A](#appendix-a) for a mapping. [#8589](https://github.com/hyperledger/besu/pull/8589) [#8746](https://github.com/hyperledger/besu/pull/8746)
522
- `BesuContext` is removed, since deprecated in favor of `ServiceManager` since `24.12.0`
623
- Remove the deprecated `--Xbonsai-trie-logs-pruning-window-size`, use `--bonsai-trie-logs-pruning-window-size` instead. [#8823](https://github.com/hyperledger/besu/pull/8823)
724
- Remove the deprecated `--Xbonsai-limit-trie-logs-enabled`, use `--bonsai-limit-trie-logs-enabled` instead. [#8704](https://github.com/hyperledger/besu/issues/8704)
825
- Remove the deprecated `--Xbonsai-trie-log-pruning-enabled`, use `--bonsai-limit-trie-logs-enabled` instead. [#8704](https://github.com/hyperledger/besu/issues/8704)
26+
- Remove the deprecated `--Xsnapsync-bft-enabled`. SNAP sync is now supported for BFT networks. [#8861](https://github.com/hyperledger/besu/pull/8861)
927
- Remove methods from gas calculator deprecated since 24.4 `create2OperationGasCost`, `callOperationGasCost`, `createOperationGasCost`, and `cost` [#8817](https://github.com/hyperledger/besu/pull/8817)
1028
- Sunsetting features - for more context on the reasoning behind the deprecation of these features, including alternative options, read [this blog post](https://www.lfdecentralizedtrust.org/blog/sunsetting-tessera-and-simplifying-hyperledger-besu)
1129
- Stratum mining has been removed (part of PoW) [#8802](https://github.com/hyperledger/besu/pull/8802)
1230
- PoW RPCs removed: `eth_getWork`, `eth_submitWork`, `eth_getHashrate`, `eth_submitHashrate`, `eth_hashrate`
31+
- Introduce history expiry behaviour for mainnet [8875](https://github.com/hyperledger/besu/pull/8875)
32+
- SNAP sync will now download only headers for pre-checkpoint (pre-merge) blocks
33+
- `--snapsync-synchronizer-pre-checkpoint-headers-only-enabled` can be set to false to force SNAP sync to download pre-checkpoint (pre-merge) blocks
34+
- `--history-expiry-prune` can be used to enable online pruning of pre-checkpoint (pre-merge) blocks as well as modifying database garbage collection parameters to free up disk space from the pruned blocks
1335

1436
### Upcoming Breaking Changes
1537
- `--Xbonsai-parallel-tx-processing-enabled` is deprecated, use `--bonsai-parallel-tx-processing-enabled` instead.
16-
- `--Xsnapsync-bft-enabled` is deprecated and will be removed in a future release. SNAP sync is supported for BFT networks.
38+
- `--Xsnapsync-server-enabled` is deprecated, use `--snapsync-server-enabled` instead [#8512](https://github.com/hyperledger/besu/pull/8512)
1739
- Sunsetting features - for more context on the reasoning behind the deprecation of these features, including alternative options, read [this blog post](https://www.lfdecentralizedtrust.org/blog/sunsetting-tessera-and-simplifying-hyperledger-besu)
1840
- Proof of Work consensus (PoW)
1941
- Fast Sync
2042
- Support for block creation on networks running a pre-Byzantium fork is deprecated for removal in a future release, after that to update Besu on nodes that build blocks, your network needs to be upgraded at least to the Byzantium fork. The main reason is to simplify world state management during block creation, since before Byzantium for each selected transaction, the receipt must contain the root hash of the modified world state, and this does not play well with the new plugin features and future work on parallelism.
43+
- `--Xsnapsync-synchronizer-pre-merge-headers-only-enabled` is deprecated and will be removed in a future release. Use `--snapsync-synchronizer-pre-checkpoint-headers-only-enabled` instead.
44+
- `--Xhistory-expiry-prune` is deprecated and will be removed in a future release. Use `--history-expiry-prune` instead.
2145

2246
### Additions and Improvements
2347
- Introduce the `TransactionValidatorService` to allow plugins to add custom validation rules [#8793](https://github.com/hyperledger/besu/pull/8793)
2448
- Implement rewardPercentile cap in eth_feeHistory [#8748](https://github.com/hyperledger/besu/pull/8748)
25-
- Enable parallel tx processing by default if Bonsai is used [#8668](https://github.com/hyperledger/besu/pull/8668)
26-
- Increase mainnet gas limit to 45M [#8824](https://github.com/hyperledger/besu/pull/8824)
2749
- Expose a method to get blob gas price from plugins [#8843](https://github.com/hyperledger/besu/pull/8843)
2850
- Experimental Bonsai Archive support [#7475](https://github.com/hyperledger/besu/pull/7475)
51+
- Use eth/69 by default [#8858](https://github.com/hyperledger/besu/pull/8858)
52+
- `--snapsync-server-enabled` New option to enable serving snap sync data [#8512](https://github.com/hyperledger/besu/pull/8512)
53+
- Introduce history expiry behaviour [#8875](https://github.com/hyperledger/besu/pull/8875)
54+
- SNAP sync will now download only headers for pre-checkpoint (pre-merge) blocks
55+
- `--snapsync-synchronizer-pre-checkpoint-headers-only-enabled` can be set to false to force SNAP sync to download pre-checkpoint (pre-merge) blocks
56+
- `--history-expiry-prune` can be used to enable online pruning of pre-checkpoint (pre-merge) blocks as well as modifying database garbage collection parameters to free up disk space from the pruned blocks
57+
58+
### Performance
59+
- Increase mainnet gas limit to 45M [#8824](https://github.com/hyperledger/besu/pull/8824)
60+
- Enable parallel tx processing by default if Bonsai is used [#8668](https://github.com/hyperledger/besu/pull/8668)
61+
- Remove redundant serialization of json params [#8847](https://github.com/hyperledger/besu/pull/8847)
62+
- Improve ExtCodeHash performance [#8811](https://github.com/hyperledger/besu/pull/8811)
63+
- Improve ModExp precompile performance [#8868](https://github.com/hyperledger/besu/pull/8868)
2964

30-
#### Fusaka
65+
#### Fusaka (SFI'd and CFI'd)
3166
- EIP-7825 - Transaction gas limit cap [#8700](https://github.com/hyperledger/besu/pull/8700)
3267
- EIP-7823 - Modexp upper bounds [#8632](https://github.com/hyperledger/besu/pull/8632)
3368
- EIP-7892 - Max number of blobs per transaction [#8761](https://github.com/hyperledger/besu/pull/8761)
69+
- EIP-7934 - RLP Execution Block Size Limit [#8765](https://github.com/hyperledger/besu/pull/8765)
70+
- EIP-7951 - Precompile for secp256r1 Curve Support [#8750](https://github.com/hyperledger/besu/pull/8750)
3471

3572
### Bug fixes
3673

acceptance-tests/dsl/src/main/java/org/hyperledger/besu/tests/acceptance/dsl/transaction/eth/EthEstimateGasTransaction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
public class EthEstimateGasTransaction implements Transaction<EthEstimateGas> {
2828
private final String contractAddress;
2929
private final String functionCall;
30-
private final String from = "";
30+
private final String from = "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73";
3131

3232
public EthEstimateGasTransaction(final String contractAddress, final String functionCall) {
3333
this.contractAddress = contractAddress;
@@ -45,7 +45,7 @@ public EthEstimateGas execute(final NodeRequests node) {
4545
new org.web3j.protocol.core.methods.request.Transaction(
4646
from,
4747
nonce,
48-
BigInteger.ZERO,
48+
null,
4949
BigInteger.ZERO,
5050
contractAddress,
5151
BigInteger.ZERO,

acceptance-tests/tests/src/test/java/org/hyperledger/besu/tests/acceptance/bft/BftAcceptanceTestParameterization.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,25 +66,28 @@ public BftAcceptanceTestParameterization(
6666
this.createorWithValidatorFn = createorWithValidatorFn;
6767
}
6868

69-
public BesuNode createNode(BesuNodeFactory factory, String name) throws Exception {
69+
public BesuNode createNode(final BesuNodeFactory factory, final String name) throws Exception {
7070
return creatorFn.create(factory, name, false, DataStorageFormat.FOREST);
7171
}
7272

73-
public BesuNode createBonsaiNodeFixedPort(BesuNodeFactory factory, String name) throws Exception {
73+
public BesuNode createBonsaiNodeFixedPort(final BesuNodeFactory factory, final String name)
74+
throws Exception {
7475
return creatorFn.create(factory, name, true, DataStorageFormat.BONSAI);
7576
}
7677

77-
public BesuNode createBonsaiArchiveNodeFixedPort(BesuNodeFactory factory, String name)
78+
public BesuNode createBonsaiArchiveNodeFixedPort(final BesuNodeFactory factory, final String name)
7879
throws Exception {
7980
return creatorFn.create(factory, name, true, DataStorageFormat.X_BONSAI_ARCHIVE);
8081
}
8182

82-
public BesuNode createForestNodeFixedPort(BesuNodeFactory factory, String name) throws Exception {
83+
public BesuNode createForestNodeFixedPort(final BesuNodeFactory factory, final String name)
84+
throws Exception {
8385
return creatorFn.create(factory, name, true, DataStorageFormat.FOREST);
8486
}
8587

8688
public BesuNode createNodeWithValidators(
87-
BesuNodeFactory factory, String name, String[] validators) throws Exception {
89+
final BesuNodeFactory factory, final String name, final String[] validators)
90+
throws Exception {
8891
return createorWithValidatorFn.create(factory, name, validators);
8992
}
9093
}

acceptance-tests/tests/src/test/java/org/hyperledger/besu/tests/acceptance/clique/CliqueMiningAcceptanceTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.util.Map;
3030
import java.util.Optional;
3131

32+
import org.junit.jupiter.api.Disabled;
3233
import org.junit.jupiter.api.Test;
3334
import org.web3j.protocol.core.DefaultBlockParameter;
3435

@@ -82,6 +83,7 @@ public void shouldMineBlocksOnlyWhenTransactionsArePresentWhenCreateEmptyBlocksI
8283
}
8384

8485
@Test
86+
@Disabled("flaky see https://github.com/hyperledger/besu/issues/8862")
8587
public void shouldMineTransactionsOnMultipleNodes() throws IOException {
8688
final BesuNode minerNode1 = besu.createCliqueNode("miner1");
8789
final BesuNode minerNode2 = besu.createCliqueNode("miner2");
@@ -133,6 +135,7 @@ private void startClusterAndVerifyProducingBlocks(
133135
}
134136

135137
@Test
138+
@Disabled("flaky see https://github.com/hyperledger/besu/issues/8862")
136139
public void shouldStillMineWhenANodeFailsAndHasSufficientValidators() throws IOException {
137140
final BesuNode minerNode1 = besu.createCliqueNode("miner1");
138141
final BesuNode minerNode2 = besu.createCliqueNode("miner2");

app/src/main/java/org/hyperledger/besu/cli/BesuCommand.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1318,6 +1318,11 @@ void configureNativeLibs(final Optional<NetworkName> configuredNetwork) {
13181318
|| genesisConfigOptionsSupplier.get().getCancunEOFTime().isPresent()
13191319
|| genesisConfigOptionsSupplier.get().getPragueTime().isPresent()
13201320
|| genesisConfigOptionsSupplier.get().getOsakaTime().isPresent()
1321+
|| genesisConfigOptionsSupplier.get().getBpo1Time().isPresent()
1322+
|| genesisConfigOptionsSupplier.get().getBpo2Time().isPresent()
1323+
|| genesisConfigOptionsSupplier.get().getBpo3Time().isPresent()
1324+
|| genesisConfigOptionsSupplier.get().getBpo4Time().isPresent()
1325+
|| genesisConfigOptionsSupplier.get().getBpo5Time().isPresent()
13211326
|| genesisConfigOptionsSupplier.get().getFutureEipsTime().isPresent()) {
13221327
if (kzgTrustedSetupFile != null) {
13231328
KZGPointEvalPrecompiledContract.init(kzgTrustedSetupFile);

app/src/main/java/org/hyperledger/besu/cli/ConfigurationOverviewBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,7 @@ public String build() {
417417
}
418418

419419
if (isSnapServerEnabled) {
420-
lines.add("Experimental Snap Sync server enabled");
420+
lines.add("Snap Sync server enabled");
421421
}
422422

423423
if (isHighSpec) {

app/src/main/java/org/hyperledger/besu/cli/config/NativeRequirement.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
package org.hyperledger.besu.cli.config;
1616

1717
import org.hyperledger.besu.crypto.SECP256K1;
18+
import org.hyperledger.besu.crypto.SECP256R1;
1819
import org.hyperledger.besu.evm.precompile.AltBN128PairingPrecompiledContract;
1920
import org.hyperledger.besu.evm.precompile.BLS12PairingPrecompiledContract;
2021

@@ -48,6 +49,15 @@ record NativeRequirementResult(Boolean present, String libname, Optional<String>
4849
? Optional.empty()
4950
: Optional.of("secp256k1: Native secp256k1 failed to load")));
5051

52+
var secp256r1 = new SECP256R1();
53+
requirements.add(
54+
new NativeRequirementResult(
55+
secp256r1.maybeEnableNative(),
56+
"secp256r1",
57+
secp256r1.maybeEnableNative()
58+
? Optional.empty()
59+
: Optional.of("secp256r1: Native secp256r1 failed to load")));
60+
5161
requirements.add(
5262
new NativeRequirementResult(
5363
AltBN128PairingPrecompiledContract.isNative(),

app/src/main/java/org/hyperledger/besu/cli/options/NativeLibraryOptions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public class NativeLibraryOptions {
5353
"Per default a native library is used for modexp. "
5454
+ "If the Java implementation should be used instead, this option must be set to false",
5555
arity = "1")
56-
private final Boolean nativeModExp = Boolean.TRUE;
56+
private final Boolean nativeModExp = Boolean.FALSE;
5757

5858
/** Default constructor. */
5959
NativeLibraryOptions() {}

0 commit comments

Comments
 (0)