Skip to content

Commit 2106eea

Browse files
authored
Merge branch 'main' into feature/para-evm-2
2 parents 85bfd20 + 6c952a3 commit 2106eea

File tree

571 files changed

+10258
-8781
lines changed

Some content is hidden

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

571 files changed

+10258
-8781
lines changed

.github/ISSUE_TEMPLATE/release-checklist.md

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,41 +7,42 @@ assignees: ''
77

88
---
99

10-
- [ ] Confirm anything outstanding for release with other maintainers on #besu-release in Discord
10+
- [ ] Confirm at least 24 hours prior anything outstanding for release with other maintainers on #besu-release in Discord
1111
- [ ] Update changelog if necessary, and merge a PR for it to main
1212
- [ ] Notify maintainers about updating changelog for in-flight PRs
1313
- [ ] Optional: for hotfixes, create a release branch and cherry-pick, e.g. `release-<version>-hotfix`
1414
- [ ] Optional: for hotfixes, create a PR into main from the hotfix branch to see the CI checks pass
1515
- [ ] On the appropriate branch/commit, create a calver tag for the release candidate, format example: `24.4.0-RC1`
16-
- [ ] git tag 24.4.0-RC1
17-
- [ ] git push upstream 24.4.0-RC1
16+
- [ ] `git tag 24.4.0-RC1`
17+
- [ ] `git push upstream 24.4.0-RC1`
1818
- [ ] Sign-off with team; announce the tag in #besu-release in Discord
1919
- [ ] Targeting this tag for the burn-in: https://github.com/hyperledger/besu/releases/tag/24.4.0-RC1
2020
- [ ] Consensys staff start burn-in using this tag
2121
- [ ] Seek sign off for burn-in
2222
- [ ] Pass? Go ahead and complete the release process
2323
- [ ] Fail? Put a message in #besu-release in Discord indicating the release will be aborted because it failed burn-in
2424
- [ ] Optional: Perform a dry run with https://github.com/consensys/protocols-release-sandbox to test the workflows
25-
- [ ] Sync fork
26-
- [ ] git checkout <sha of 24.4.0-RC1>
27-
- [ ] git tag 24.4.0
28-
- [ ] git push origin 24.4.0
25+
- [ ] Sync fork in github
26+
- [ ] `git checkout <sha of 24.4.0-RC1>`
27+
- [ ] `git tag 24.4.0`
28+
- [ ] `git push <your remote name> 24.4.0`
2929
- [ ] Manually run https://github.com/Consensys/protocols-release-sandbox/actions/workflows/draft-release.yml using `main` branch and `24.4.0` tag
3030
- [ ] Back on besu, using the same git sha as 24.4.0-RC1, create a calver tag for the FULL RELEASE, example format `24.4.0`
31-
- [ ] git checkout 24.4.0-RC1
32-
- [ ] git tag 24.4.0
33-
- [ ] git push upstream 24.4.0
31+
- [ ] `git checkout 24.4.0-RC1`
32+
- [ ] `git tag 24.4.0`
33+
- [ ] `git push upstream 24.4.0`
3434
- [ ] Manually run https://github.com/hyperledger/besu/actions/workflows/draft-release.yml using `main` branch` and the FULL RELEASE tag name, i.e. `24.4.0`. Note, this workflow should always be run from `main` branch (hotfix tags will still be released even if they were created based on another branch)
3535
- publishes artefacts and version-specific docker tags but does not fully publish the GitHub release so subscribers are not yet notified
3636
- [ ] Check all draft-release workflow jobs went green
3737
- [ ] Check binary SHAs are correct on the release page
38+
- [ ] Check artifacts exist in https://hyperledger.jfrog.io/ui/repos/tree/General/besu-maven
3839
- [ ] Update release notes in the GitHub draft release, save draft and sign-off with team
3940
- [ ] Publish draft release ensuring it is marked as latest release (if appropriate)
4041
- this is now public and notifies subscribed users
4142
- makes the release "latest" in github
4243
- publishes the docker `latest` tag variants
43-
- [ ] Create homebrew release using [update-version workflow](https://github.com/hyperledger/homebrew-besu/actions/workflows/update-version.yml)
44+
- [ ] Create homebrew release PR using [update-version workflow](https://github.com/hyperledger/homebrew-besu/actions/workflows/update-version.yml)
4445
- If the PR has not been automatically created, create the PR manually using the created branch `update-<version>`
45-
- Run commands `brew tap hyperledger/besu && brew install besu` on MacOSX and verify latest version has been installed
46+
- [ ] Verify homebrew release once the PR has merged using `brew tap hyperledger/besu && brew install besu` on MacOSX to verify latest version has been installed
4647
- [ ] Delete the burn-in nodes (unless required for further analysis eg performance)
4748
- [ ] Social announcements

.github/workflows/acceptance-tests.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ on:
55
branches:
66
- main
77
- release-*
8+
- verkle
89

910
concurrency:
1011
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}

.github/workflows/integration-tests.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ on:
55
branches:
66
- main
77
- release-*
8+
- verkle
89

910
concurrency:
1011
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}

.github/workflows/pre-review.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ on:
55
branches:
66
- main
77
- release-*
8+
- verkle
89

910
concurrency:
1011
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}

.github/workflows/reference-tests.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ on:
55
branches:
66
- main
77
- release-*
8+
- verkle
89

910
env:
1011
GRADLE_OPTS: "-Xmx6g -Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.caching=true"

CHANGELOG.md

Lines changed: 61 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,83 @@
11
# Changelog
22

3-
## [Unreleased]
4-
- Added isLabelsObserved to LabelledGauge in plugin-api. Default implementation returns false.
3+
## Unreleased
4+
5+
### Breaking Changes
6+
- `--host-whitelist` has been deprecated since 2020 and its related option will be removed in a future release.
7+
8+
### Upcoming Breaking Changes
9+
- Plugin API will be deprecating the BesuContext interface to be replaced with the ServiceManager interface.
10+
- `MetricSystem::createLabelledGauge` is deprecated and will be removed in a future release, replace it with `MetricSystem::createLabelledSuppliedGauge`
11+
- k8s (KUBERNETES) Nat method is now deprecated and will be removed in a future release
12+
- `--host-whitelist` has been deprecated in favor of `--host-allowlist` since 2020 and will be removed in a future release
13+
- 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)
14+
- Tessera privacy
15+
- Smart-contract-based (onchain) permissioning
16+
- Proof of Work consensus
17+
- Fast Sync
18+
19+
20+
21+
### Additions and Improvements
22+
- Retrieve all transaction receipts for a block in one request [#6646](https://github.com/hyperledger/besu/pull/6646)
23+
24+
### Bug fixes
25+
26+
## 24.12.0
527

628
### Breaking Changes
729
- Removed Retesteth rpc service and commands [#7833](https://github.com/hyperledger/besu/pull/7783)
30+
- TLS for P2P (early access feature) has been removed [#7942](https://github.com/hyperledger/besu/pull/7942)
31+
- In the plugin API, `BesuContext` has been renamed to `ServiceManager` to better reflect its function, plugins must be updated to work with this version
32+
- With the upgrade of the Prometheus Java Metrics library, there are the following changes:
33+
- Gauge names are not allowed to end with `total`, therefore the metric `besu_blockchain_difficulty_total` is losing the `_total` suffix
34+
- The `_created` timestamps are not returned by default, you can set the env var `BESU_OPTS="-Dio.prometheus.exporter.includeCreatedTimestamps=true"` to enable them
35+
- Some JVM metrics have changed name to adhere to the OTEL standard (see the table below), [Besu Full Grafana dashboard](https://grafana.com/grafana/dashboards/16455-besu-full/) is updated to support both names
36+
37+
| Old Name | New Name |
38+
|---------------------------------|---------------------------------|
39+
| jvm_memory_bytes_committed | jvm_memory_committed_bytes |
40+
| jvm_memory_bytes_init | jvm_memory_init_bytes |
41+
| jvm_memory_bytes_max | jvm_memory_max_bytes |
42+
| jvm_memory_bytes_used | jvm_memory_used_bytes |
43+
| jvm_memory_pool_bytes_committed | jvm_memory_pool_committed_bytes |
44+
| jvm_memory_pool_bytes_init | jvm_memory_pool_init_bytes |
45+
| jvm_memory_pool_bytes_max | jvm_memory_pool_max_bytes |
46+
| jvm_memory_pool_bytes_used | jvm_memory_pool_used_bytes |
847

948
### Upcoming Breaking Changes
49+
- Plugin API will be deprecating the BesuContext interface to be replaced with the ServiceManager interface.
50+
- `MetricSystem::createLabelledGauge` is deprecated and will be removed in a future release, replace it with `MetricSystem::createLabelledSuppliedGauge`
51+
- k8s (KUBERNETES) Nat method is now deprecated and will be removed in a future release
52+
- `--host-whitelist` has been deprecated in favor of `--host-allowlist` since 2020 and will be removed in a future release
53+
- 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)
54+
- Tessera privacy
55+
- Smart-contract-based (onchain) permissioning
56+
- Proof of Work consensus
57+
- Fast Sync
1058

1159
### Additions and Improvements
1260
- Fine tune already seen txs tracker when a tx is removed from the pool [#7755](https://github.com/hyperledger/besu/pull/7755)
1361
- Support for enabling and configuring TLS/mTLS in WebSocket service. [#7854](https://github.com/hyperledger/besu/pull/7854)
1462
- Create and publish Besu BOM (Bill of Materials) [#7615](https://github.com/hyperledger/besu/pull/7615)
1563
- Update Java dependencies [#7786](https://github.com/hyperledger/besu/pull/7786)
1664
- Add a method to get all the transaction in the pool, to the `TransactionPoolService`, to easily access the transaction pool content from plugins [#7813](https://github.com/hyperledger/besu/pull/7813)
65+
- Upgrade RocksDB JNI library from version 8.3.2 to 9.7.3 [#7817](https://github.com/hyperledger/besu/pull/7817)
1766
- Add a method to check if a metric category is enabled to the plugin API [#7832](https://github.com/hyperledger/besu/pull/7832)
67+
- Add a new metric collector for counters which get their value from suppliers [#7894](https://github.com/hyperledger/besu/pull/7894)
68+
- Add account and state overrides to `eth_call` [#7801](https://github.com/hyperledger/besu/pull/7801) and `eth_estimateGas` [#7890](https://github.com/hyperledger/besu/pull/7890)
69+
- Add RPC WS options to specify password file for keystore and truststore [#7970](https://github.com/hyperledger/besu/pull/7970)
70+
- Prometheus Java Metrics library upgraded to version 1.3.3 [#7880](https://github.com/hyperledger/besu/pull/7880)
71+
- Add histogram to Prometheus metrics system [#7944](https://github.com/hyperledger/besu/pull/7944)
72+
- Improve newPayload and FCU logs [#7961](https://github.com/hyperledger/besu/pull/7961)
73+
- Proper support for `pending` block tag when calling `eth_estimateGas` and `eth_createAccessList` [#7951](https://github.com/hyperledger/besu/pull/7951)
1874

1975
### Bug fixes
2076
- Fix registering new metric categories from plugins [#7825](https://github.com/hyperledger/besu/pull/7825)
2177
- Fix CVE-2024-47535 [7878](https://github.com/hyperledger/besu/pull/7878)
78+
- Fix QBFT prepared block based proposal validation [#7875](https://github.com/hyperledger/besu/pull/7875)
79+
- Correct default parameters for frontier transactions in `eth_call` and `eth_estimateGas` [#7965](https://github.com/hyperledger/besu/pull/7965)
80+
- Correctly parse nonce as hex in `eth_call` account overrides [#7999](https://github.com/hyperledger/besu/pull/7999)
2281

2382
## 24.10.0
2483

CONTRIBUTING.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ Having the following accounts is necessary for contributing code/issues to Besu.
1111
* To ask questions or chat with us, join our [Discord](https://discord.com/invite/hyperledger)
1212
* To edit pages in our wiki, you'll need a [Linux Foundation (LF) account].
1313

14+
### Guidelines for Non-Code and other Trivial Contributions
15+
Please keep in mind that we do not accept non-code contributions like fixing comments, typos or some other trivial fixes. Although we appreciate the extra help, managing lots of these small contributions is unfeasible, and puts extra pressure in our continuous delivery systems (running all tests, etc). Feel free to open an issue pointing any of those errors, and we will batch them into a single change.
16+
1417
### Useful contributing links
1518

1619
* [I just have a quick question](https://wiki.hyperledger.org/display/BESU/I+just+have+a+quick+question)

acceptance-tests/dsl/build.gradle

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ dependencies {
1818
implementation project(':ethereum:permissioning')
1919
implementation project(':ethereum:rlp')
2020
implementation project(':metrics:core')
21-
implementation project(':pki')
22-
implementation project(path: ':pki', configuration: 'testArtifacts')
2321
implementation project(':plugin-api')
2422
implementation project(':plugins:rocksdb')
2523
implementation project(':services:kvstore')

acceptance-tests/dsl/src/main/java/org/hyperledger/besu/tests/acceptance/dsl/node/BesuNode.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import org.hyperledger.besu.ethereum.core.Util;
3333
import org.hyperledger.besu.ethereum.eth.transactions.TransactionPoolConfiguration;
3434
import org.hyperledger.besu.ethereum.p2p.config.NetworkingConfiguration;
35-
import org.hyperledger.besu.ethereum.p2p.rlpx.connections.netty.TLSConfiguration;
3635
import org.hyperledger.besu.ethereum.permissioning.PermissioningConfiguration;
3736
import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration;
3837
import org.hyperledger.besu.metrics.prometheus.MetricsConfiguration;
@@ -96,7 +95,6 @@ public class BesuNode implements NodeConfiguration, RunnableNode, AutoCloseable
9695
private final Properties portsProperties = new Properties();
9796
private final Boolean p2pEnabled;
9897
private final int p2pPort;
99-
private final Optional<TLSConfiguration> tlsConfiguration;
10098
private final NetworkingConfiguration networkingConfiguration;
10199
private final boolean revertReasonEnabled;
102100

@@ -156,7 +154,6 @@ public BesuNode(
156154
final GenesisConfigurationProvider genesisConfigProvider,
157155
final boolean p2pEnabled,
158156
final int p2pPort,
159-
final Optional<TLSConfiguration> tlsConfiguration,
160157
final NetworkingConfiguration networkingConfiguration,
161158
final boolean discoveryEnabled,
162159
final boolean bootnodeEligible,
@@ -207,7 +204,6 @@ public BesuNode(
207204
this.network = network;
208205
this.p2pEnabled = p2pEnabled;
209206
this.p2pPort = p2pPort;
210-
this.tlsConfiguration = tlsConfiguration;
211207
this.networkingConfiguration = networkingConfiguration;
212208
this.discoveryEnabled = discoveryEnabled;
213209
this.bootnodeEligible = bootnodeEligible;
@@ -659,10 +655,6 @@ public boolean isP2pEnabled() {
659655
return p2pEnabled;
660656
}
661657

662-
public Optional<TLSConfiguration> getTLSConfiguration() {
663-
return tlsConfiguration;
664-
}
665-
666658
public NetworkingConfiguration getNetworkingConfiguration() {
667659
return networkingConfiguration;
668660
}

acceptance-tests/dsl/src/main/java/org/hyperledger/besu/tests/acceptance/dsl/node/ProcessBesuNodeRunner.java

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.hyperledger.besu.cli.options.storage.DataStorageOptions;
2323
import org.hyperledger.besu.ethereum.api.jsonrpc.ipc.JsonRpcIpcConfiguration;
2424
import org.hyperledger.besu.ethereum.eth.transactions.ImmutableTransactionPoolConfiguration;
25-
import org.hyperledger.besu.ethereum.p2p.rlpx.connections.netty.TLSConfiguration;
2625
import org.hyperledger.besu.ethereum.permissioning.PermissioningConfiguration;
2726
import org.hyperledger.besu.metrics.prometheus.MetricsConfiguration;
2827
import org.hyperledger.besu.plugin.services.metrics.MetricCategory;
@@ -365,26 +364,6 @@ private List<String> commandlineArgs(final BesuNode node, final Path dataDir) {
365364
final List<String> networkConfigParams =
366365
NetworkingOptions.fromConfig(node.getNetworkingConfiguration()).getCLIOptions();
367366
params.addAll(networkConfigParams);
368-
if (node.getTLSConfiguration().isPresent()) {
369-
final TLSConfiguration config = node.getTLSConfiguration().get();
370-
params.add("--Xp2p-tls-enabled");
371-
params.add("--Xp2p-tls-keystore-type");
372-
params.add(config.getKeyStoreType());
373-
params.add("--Xp2p-tls-keystore-file");
374-
params.add(config.getKeyStorePath().toAbsolutePath().toString());
375-
params.add("--Xp2p-tls-keystore-password-file");
376-
params.add(config.getKeyStorePasswordPath().toAbsolutePath().toString());
377-
params.add("--Xp2p-tls-crl-file");
378-
params.add(config.getCrlPath().toAbsolutePath().toString());
379-
if (null != config.getTrustStoreType()) {
380-
params.add("--Xp2p-tls-truststore-type");
381-
params.add(config.getTrustStoreType());
382-
params.add("--Xp2p-tls-truststore-file");
383-
params.add(config.getTrustStorePath().toAbsolutePath().toString());
384-
params.add("--Xp2p-tls-truststore-password-file");
385-
params.add(config.getTrustStorePasswordPath().toAbsolutePath().toString());
386-
}
387-
}
388367
}
389368

390369
if (node.isRevertReasonEnabled()) {

0 commit comments

Comments
 (0)