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

Merge main into verkle #8332

Open
wants to merge 136 commits into
base: verkle
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
136 commits
Select commit Hold shift + click to select a range
2909ea4
prague fee market for blob gas (#8064)
garyschulte Dec 21, 2024
ffd593d
Remove EIP-7742 (#8083)
siladu Jan 7, 2025
01126c0
Reimplement EthereumNodeRecord for DNS discovery (#7989)
usmansaleem Jan 7, 2025
fa9ca9c
Update EIP-2935 (#8066)
siladu Jan 7, 2025
4ae3be5
Add GetBodiesFromPeerTask (#8040)
Matilda-Clerke Jan 9, 2025
8448743
Fix guess type for delegate code transactions (#8090)
Gabriel-Trintinalia Jan 9, 2025
2aadbfc
implement the proposed gas changes for bls / eip-2537 (#8008)
garyschulte Jan 10, 2025
0698734
Support code delegations when purging confirmed blocks in the layered…
fab-10 Jan 10, 2025
8cddcfd
Pass miningBeneficiary address to BlockAwareOperationTracer::traceSta…
lu-pinto Jan 10, 2025
85f85da
add fallback for parallelization (#8084)
matkt Jan 10, 2025
4eb6fb0
Rename accountOverride to stateOverride to match spec (#8111)
Gabriel-Trintinalia Jan 13, 2025
f9776cb
Increase the max number of prioritized blob tx in the layered txpool …
fab-10 Jan 13, 2025
0810b73
Refactor BlockHashOperation block height check into Operation (#8091)
shemnon Jan 13, 2025
1f67cb5
Add back deprecated traceStartBlock methods to the tracer API (#8112)
lu-pinto Jan 13, 2025
9ebba75
Expose head execution time metric (#8092)
ahamlat Jan 13, 2025
b797f2e
log4j conf: replace status (deprecated) with level (#8087)
macfarla Jan 14, 2025
ff5266a
add workflow to verify artifacts (#8056)
joshuafernandes Jan 14, 2025
c4f6f17
Support authorizationList parsing in reference test txs (#8116)
siladu Jan 14, 2025
daf4aae
Log calculated world state contents upon state root mismatch (#8099)
siladu Jan 14, 2025
11a4317
Improve debug_traceBlock calls performance (#8103)
ahamlat Jan 14, 2025
8308650
Exclude empty requests from requests hash (#8036)
daniellehrner Jan 14, 2025
42b26a4
Move gas refund calculation from MainnetTransactionProcessor to GasCa…
daniellehrner Jan 14, 2025
9c12ed1
handling IllegalArgumentException caused by Discovery Disabled
vaidikcode Jan 15, 2025
5cc309a
Add support for movePrecompileToAddress in State Overrides (eth_call)…
Gabriel-Trintinalia Jan 15, 2025
5834afd
[CHANGELOG] list deprecated bonsai CLI options (#8126)
macfarla Jan 16, 2025
479bec0
Update EXTCALL creation detection (#8038)
shemnon Jan 16, 2025
b5fdcc0
Pectra devnet 5: 7702 changes (#8118)
daniellehrner Jan 16, 2025
1e7f6f6
EIP-7623 (#8093)
daniellehrner Jan 16, 2025
870f3b7
default target gas limit for holesky (#8125)
macfarla Jan 16, 2025
89632d7
Unignore Prague ref tests and remove osakaTime from Prague (#8133)
siladu Jan 17, 2025
a98e950
Add baseFeeUpdateFraction to blobSchedule genesis config (#8128)
daniellehrner Jan 17, 2025
74d22a0
Revert "Add back deprecated traceStartBlock methods to the tracer API…
lu-pinto Jan 18, 2025
702ce74
Simulation: Add nonce to call parameter (#8139)
Gabriel-Trintinalia Jan 20, 2025
5933a2a
Fix rlp validate to handle lists ending at the start of another list …
Matilda-Clerke Jan 21, 2025
6d05f83
Improve error message for Invalid operation (#8141)
matkt Jan 21, 2025
e930c2d
8053: Add GetPooledTransactionsFromPeerTask and appropriate usage (#8…
Matilda-Clerke Jan 21, 2025
519323f
Fix eth_getBlockByNumber with empty params returns (#8134)
iryoung Jan 21, 2025
e9a94f3
Devnet-5: bug fixes for 7702 (#8148)
daniellehrner Jan 22, 2025
a54c46a
Check existence of hardfork milestone to decide if engine APIs should…
daniellehrner Jan 22, 2025
113cf8b
Use orElseGet for efficiency, address comment of previous PR 8139 (#8…
Gabriel-Trintinalia Jan 23, 2025
a1e087d
Move p2p host validation to CLI validation (#8158)
Gabriel-Trintinalia Jan 23, 2025
7840e8b
rename methods and variables, clarify comments (#8155)
daniellehrner Jan 23, 2025
8bc9e3f
fixes syntax errors (#8164)
jflo Jan 23, 2025
09581ea
Pectra testnet fork slots (#8163)
jflo Jan 23, 2025
b150b10
Check if discovery service is running before `admin_addPeer` (#8160)
Gabriel-Trintinalia Jan 23, 2025
846e483
update eth_call error message (#8129)
matkt Jan 24, 2025
b3192a5
Refactor the methods for getting mutable states in the WorldState pro…
matkt Jan 27, 2025
b5d507d
Extend simulate transaction on pending block plugin API (#8174)
fab-10 Jan 28, 2025
4b8d935
debug_traceBlock use existing block header instead of hash (#8184)
siladu Jan 29, 2025
e2318fb
fixes warning on sonar analysis (#8193)
jflo Jan 29, 2025
0eaad3e
add spotless to PR checklist (#8185)
macfarla Jan 30, 2025
98bed38
Reuse constant INVALID_PARAMS_ERROR_CODE for RpcErrorType.java (#8154)
andrewcoder666 Jan 30, 2025
6af23ea
Improve BLOCKHASH Short Circuit (#8171)
shemnon Jan 30, 2025
5ac3247
TransactionResult: add v for blob and pending tx (#8196)
macfarla Jan 30, 2025
ccd3582
Prague t8n and referenceTests fixes for EEST (#8167)
siladu Jan 30, 2025
57454cb
Fix: Remove System.out.println in BytesTrieSet… (#8172)
brawncode Jan 31, 2025
97a69b0
Devnet5 Fix requests tests (#8201)
Gabriel-Trintinalia Jan 31, 2025
68665db
Fix code delegation issue found in pectra devnet (#8203)
matkt Jan 31, 2025
e984126
Prague Devnet5 - EIP2935 - Fix edge case when the contract is deploye…
Gabriel-Trintinalia Jan 31, 2025
cf7d054
devnet-6: 7702 changes for EXTCODE* (#8169)
daniellehrner Jan 31, 2025
ac0265f
devnet-6 system contract addresses update (#8209)
macfarla Jan 31, 2025
81e1ab9
Round change upon f+1 RC messages (experimental option) (#7838)
pullurib Jan 31, 2025
56e5b3c
Init KZG precompile contract before importing blocks (#8219)
daniellehrner Feb 2, 2025
6d51821
[MINOR] add newline to beginning of PR template (#8210)
macfarla Feb 2, 2025
8d360a3
Simulation: Add `state` to StateOverride (eth_call, eth_simulateV1).…
Gabriel-Trintinalia Feb 2, 2025
2412586
7582: Add naive RLP caching for BlockHeader, Transaction, and Withdra…
Matilda-Clerke Feb 3, 2025
47a5efc
EIP-7702 Skip CodeDelegation processing for invalid recid (#8212)
siladu Feb 3, 2025
a94f376
Treat timestamp as unsigned long in engine api fork validation (#8221)
siladu Feb 3, 2025
4fa9f0c
Add a tx selector to skip txs from the same sender after the first no…
fab-10 Feb 3, 2025
24e2895
Fix the simulation of txs with future nonce (#8215)
fab-10 Feb 3, 2025
d691f45
Stop all sub processes spawn by acceptance tests (#8226)
fab-10 Feb 3, 2025
a2ef71b
disable flaky test classes (#8239)
macfarla Feb 4, 2025
5534d65
Revert "Stop all sub processes spawn by acceptance tests" (#8236)
macfarla Feb 4, 2025
4dbb723
Qbft block type (#8142)
jframe Feb 4, 2025
2924de0
Invalidate engine_newPayloadV3 if it contains executionRequests (#8223)
siladu Feb 4, 2025
cb5c223
Use 9 for max blobs when sizing BlobCache (#8222)
siladu Feb 4, 2025
e006bbf
[TESTING] disable flaky fast sync actions test (#8208)
macfarla Feb 4, 2025
90df5e5
Not all invalid transient not selected txs should be penalized (#8231)
fab-10 Feb 4, 2025
b74a7f2
add Xchain-pruning-blocks-retained must be >= epochlength (#7963) (#8…
philosup Feb 4, 2025
214673c
Add transaction hash for debug trace responses (#8205)
matkt Feb 4, 2025
28dd49e
[CHANGELOG] add upcoming breaking changes to unreleased (#8235)
macfarla Feb 5, 2025
1e5fb00
update rpc gas cap default to 50M (#8251)
macfarla Feb 5, 2025
630a8f7
EIP2935 - Use system call instead of direct storage modification (#8243)
Gabriel-Trintinalia Feb 5, 2025
a818793
Use PendingTransaction interface in block creation classes (#8254)
fab-10 Feb 5, 2025
b24ff90
Remove PostMergeContext singleton (#8253)
jframe Feb 6, 2025
952deb7
Prague times for holesky and sepolia (#8255)
siladu Feb 6, 2025
2680901
Prague Engine API validation fixes (#8250)
siladu Feb 6, 2025
d65b525
Configurable Storage Factory in ThreadBesuNodeRunner (#8259)
Filter94 Feb 6, 2025
28c3df8
Update prague timestamps for Holesky and Sepolia (#8260)
daniellehrner Feb 6, 2025
e835cd0
bump besu-native to 1.1.2 (#8264)
garyschulte Feb 7, 2025
a021fea
Change Qbft to use its own QbftBlockHeader type (#8244)
jframe Feb 7, 2025
08e3427
Serialize CodeDelegation in RPCs (#8265)
siladu Feb 7, 2025
cbabf87
Rotate changelog for 25.2.0 (#8266)
siladu Feb 7, 2025
72a4e4a
Simulation - Expose BlockHashLookup to BlockSimulatorService (#8267)
Gabriel-Trintinalia Feb 8, 2025
a45475d
Update netty to 4.1.118 for CVE-2025-24970 (#8275)
matthew1001 Feb 11, 2025
80a8662
Rebalance GHA runners (#8227)
fab-10 Feb 11, 2025
4e152b0
Split long running DetermineCommonAncestorTaskParameterizedTest in 2 …
fab-10 Feb 11, 2025
4519cd0
chore: add missing RPC method debug_accountRange (#8274)
pr9t Feb 12, 2025
3638944
Make prague evm spec ready (#8277)
Gabriel-Trintinalia Feb 12, 2025
f3bbb90
Add TLS/mTLS options and configure the GraphQL HTTP service (#7910)
pullurib Feb 12, 2025
af842eb
Update to Consensys/discovery 25.2.0 (#8278)
Matilda-Clerke Feb 12, 2025
09a18c8
[CHANGELOG] fixed changelog errors (#8279)
macfarla Feb 12, 2025
0ad85ec
Hotfix for gradle compile issue by locking in json-smart version (#8282)
siladu Feb 12, 2025
428a638
Allow plugins to propose transactions during block creation (#8268)
fab-10 Feb 12, 2025
9d33e95
Revert "Hotfix for gradle compile issue by locking in json-smart vers…
fab-10 Feb 12, 2025
fa19459
Use dynamic gas calculator to calculate currentBlobGasLimit (#8257)
siladu Feb 13, 2025
90015fc
Refactor packet classes for dependency injection (#8271)
Matilda-Clerke Feb 13, 2025
6342f5d
RPC - eth_getLogs: Return block not found instead of empty logs (#8290)
Gabriel-Trintinalia Feb 13, 2025
c34e396
allow disabling of transaction indexing while syncing (#8181)
jframe Feb 13, 2025
46e74d1
Stop all sub processes spawn by acceptance tests (#8284)
fab-10 Feb 13, 2025
6791c5f
remove k8s NAT method (#8289)
macfarla Feb 13, 2025
7e25c00
[build] workflows to run for merge queue (#8302)
macfarla Feb 14, 2025
a3153eb
[build] run workflows on merge group event (#8303)
macfarla Feb 14, 2025
88b6670
Deprecation warning for pre-Byzanthium block creation (#8297)
fab-10 Feb 14, 2025
ccb23ab
Fix the cleanup of subprocesses after each AT (#8306)
fab-10 Feb 15, 2025
b4e7dba
upgrade web3j plugins (#8296)
macfarla Feb 16, 2025
5bf7ae1
[build] Update to gradle 8.11 (#8294)
macfarla Feb 16, 2025
1508b5c
[build] update use of gradle deprecated features (#8295)
macfarla Feb 16, 2025
873971a
update dependency versions (#8293)
macfarla Feb 16, 2025
efcefad
Remove QbftBlockHashing as this is provided by the block hash (#8311)
jframe Feb 17, 2025
41a0647
Improve Conflict Detection in Parallelization by Considering Slots to…
matkt Feb 17, 2025
5304006
[build] update non-bom dependencies (#8315)
macfarla Feb 17, 2025
2c9446d
ephemery genesis - cancun and prague blob config update (#8292)
gconnect Feb 18, 2025
e8a4755
update base image for evmtool Dockerfile (#8304)
macfarla Feb 18, 2025
0db6ebc
Remove unused qbft core dependencies (#8319)
jframe Feb 18, 2025
1cbdcdb
[build] evmtool Dockerfile - update apt-get packages (#8321)
macfarla Feb 18, 2025
18e3917
increase mainnet & Sepolia gas limit to 36M (#8249)
daniellehrner Feb 18, 2025
984173e
update some deprecated references (#8314)
macfarla Feb 18, 2025
c1c3715
Upgrade to execution-spec-tests version 4.0.0 (#8325)
siladu Feb 19, 2025
955cd82
merge main c1c371589b4759b044608650d659ca475ec621bb
matkt Feb 19, 2025
928f10f
clean and fix build
matkt Feb 19, 2025
8b9dfa0
fix block hash processor for devnet
matkt Feb 19, 2025
36fbcdd
fix pipeline and reference tests
matkt Feb 20, 2025
6a97700
fix block hash operation test
matkt Feb 20, 2025
34b96e9
fix readFrom of the BlockHeader class
matkt Feb 21, 2025
bbaebfc
rollback lookupcost modification during oog and fix after review
matkt Feb 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

## PR description

## Fixed Issue(s)
Expand All @@ -14,6 +15,7 @@

### Locally, you can run these tests to catch failures early:

- [ ] spotless: `./gradlew spotlessApply`
- [ ] unit tests: `./gradlew build`
- [ ] acceptance tests: `./gradlew acceptanceTest`
- [ ] integration tests: `./gradlew integrationTest`
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/acceptance-tests.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: acceptance-tests
on:
workflow_dispatch:
merge_group:
pull_request:
branches:
- main
Expand All @@ -12,7 +13,7 @@ concurrency:
cancel-in-progress: true

env:
GRADLE_OPTS: "-Xmx7g"
GRADLE_OPTS: "-Xmx1g"
total-runners: 14

jobs:
Expand Down Expand Up @@ -78,7 +79,7 @@ jobs:
name: test-args-${{ matrix.runner_index }}.txt
path: '*.txt'
- name: run acceptance tests
run: ./gradlew acceptanceTestNotPrivacy `cat gradleArgs.txt` -Dorg.gradle.parallel=true -Dorg.gradle.caching=true
run: ./gradlew acceptanceTestNotPrivacy `cat gradleArgs.txt` -Dorg.gradle.caching=true
- name: Remove downloaded test results
run: rm -rf tmp/junit-xml-reports-downloaded
- name: Upload Acceptance Test Results
Expand Down
20 changes: 20 additions & 0 deletions .github/workflows/draft-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -396,3 +396,23 @@ jobs:
ARTIFACTORY_USER: ${{ secrets.BESU_ARTIFACTORY_USER }}
ARTIFACTORY_KEY: ${{ secrets.BESU_ARTIFACTORY_TOKEN }}
run: ./gradlew -Prelease.releaseVersion=${{ env.RELEASE_VERSION }} -Pversion=${{env.RELEASE_VERSION}} artifactoryPublish

verify_artifactory:
runs-on: ubuntu-22.04
needs: [artifactory, validate, test-linux, test-windows]
steps:
- name: checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
ref: ${{ env.RELEASE_VERSION }}

# actions/setup-python@5.3
- uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b
with:
python-version: '3.13'

- name: Install dependencies
run: pip install requests argparse

- name: Run the script
run: python3 .github/workflows/verify_artifacts.py --besu_version="${{ needs.validate.outputs.release_version }}"
1 change: 1 addition & 0 deletions .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: integration-tests
on:
workflow_dispatch:
merge_group:
pull_request:
branches:
- main
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/pre-review.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: pre-review

on:
merge_group:
pull_request:
branches:
- main
Expand All @@ -13,7 +14,7 @@ concurrency:

env:
GRADLE_OPTS: "-Xmx6g -Dorg.gradle.parallel=true"
total-runners: 10
total-runners: 14

jobs:
repolint:
Expand Down Expand Up @@ -84,7 +85,7 @@ jobs:
strategy:
fail-fast: true
matrix:
runner_index: [0,1,2,3,4,5,6,7,8,9]
runner_index: [0,1,2,3,4,5,6,7,8,9,10,11,12,13]
steps:
- name: Checkout Repo
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/reference-tests.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: reference-tests
on:
workflow_dispatch:
merge_group:
pull_request:
branches:
- main
Expand All @@ -9,7 +10,7 @@ on:

env:
GRADLE_OPTS: "-Xmx6g -Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.caching=true"
total-runners: 8
total-runners: 4

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
Expand All @@ -25,7 +26,7 @@ jobs:
strategy:
fail-fast: true
matrix:
runner_index: [1,2,3,4,5,6,7,8]
runner_index: [1,2,3,4]
steps:
- name: Checkout Repo
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/sonarcloud.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ jobs:
steps:
- name: checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Set up Java
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
with:
Expand Down
55 changes: 55 additions & 0 deletions .github/workflows/verify_artifacts.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import requests
import argparse


def create_artifact_paths(version):
artifacts_base_path = "https://hyperledger.jfrog.io/hyperledger/besu-maven/org/hyperledger/besu"
# add to this list here to update the list of artifacts to check
artifacts = [
# besu/evm
f"{artifacts_base_path}/evm/{version}/evm-{version}.module",
f"{artifacts_base_path}/evm/{version}/evm-{version}.pom",
f"{artifacts_base_path}/evm/{version}/evm-{version}.jar",
# besu/plugin-api
f"{artifacts_base_path}/plugin-api/{version}/plugin-api-{version}.module",
f"{artifacts_base_path}/plugin-api/{version}/plugin-api-{version}.pom",
f"{artifacts_base_path}/plugin-api/{version}/plugin-api-{version}.jar",
# besu/metrics-core
f"{artifacts_base_path}/internal/metrics-core/{version}/metrics-core-{version}.module",
f"{artifacts_base_path}/internal/metrics-core/{version}/metrics-core-{version}.pom",
f"{artifacts_base_path}/internal/metrics-core/{version}/metrics-core-{version}.jar",
# besu/internal/core
f"{artifacts_base_path}/internal/core/{version}/core-{version}.module",
f"{artifacts_base_path}/internal/core/{version}/core-{version}.pom",
f"{artifacts_base_path}/internal/core/{version}/core-{version}.jar",
# besu/internal/config
f"{artifacts_base_path}/internal/config/{version}/config-{version}.module",
f"{artifacts_base_path}/internal/config/{version}/config-{version}.pom",
f"{artifacts_base_path}/internal/config/{version}/config-{version}.jar",
# bom
f"{artifacts_base_path}/bom/{version}/bom-{version}.module",
f"{artifacts_base_path}/bom/{version}/bom-{version}.pom",
]
return artifacts



def check_url(url):
print(f"Checking artifact at: {url}")
r = requests.head(url)
if (r.status_code != 200):
raise Exception(f"Sorry, No artifact found at '{url}' !!!")

def main():
parser = argparse.ArgumentParser(description='Check besu artifacts')
parser.add_argument('--besu_version', action="store", dest='besu_version', default="")
args = parser.parse_args()
print(args.besu_version)

artifacts = create_artifact_paths(args.besu_version)
print(artifacts)
for url in artifacts:
check_url(url)

if __name__ == "__main__":
main()
79 changes: 75 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,79 @@
# Changelog

## Unreleased
### Breaking Changes
- k8s (KUBERNETES) Nat method is removed. Use docker or none instead. [#8289](https://github.com/hyperledger/besu/pull/8289)

### Upcoming Breaking Changes
- `MetricSystem::createLabelledGauge` is deprecated and will be removed in a future release, replace it with `MetricSystem::createLabelledSuppliedGauge`
- `--Xsnapsync-synchronizer-flat-db-healing-enabled` is deprecated, use `--Xbonsai-full-flat-db-enabled` instead.
- `--Xbonsai-limit-trie-logs-enabled` is deprecated, use `--bonsai-limit-trie-logs-enabled` instead.
- `--Xbonsai-trie-log-pruning-enabled` is deprecated, use `--bonsai-limit-trie-logs-enabled` instead.
- `--Xbonsai-trie-logs-pruning-window-size` is deprecated, use `--bonsai-trie-logs-pruning-window-size` instead.
- 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)
- Tessera privacy
- Smart-contract-based (onchain) permissioning
- Proof of Work consensus
- Fast Sync
- Transaction indexing will be disabled by default in a future release for snap sync and checkpoint sync modes. This will break RPCs that use transaction hash for historical queries.
- Support for block creation on networks running a pre-Byzantium fork is deprecated for removal in a future release, after that in order 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.
### Additions and Improvements
- Add TLS/mTLS options and configure the GraphQL HTTP service[#7910](https://github.com/hyperledger/besu/pull/7910)
- Allow plugins to propose transactions during block creation [#8268](https://github.com/hyperledger/besu/pull/8268)
- Update `eth_getLogs` to return a `Block not found` error when the requested block is not found. [#8290](https://github.com/hyperledger/besu/pull/8290)
- Improve Conflict Detection in Parallelization by Considering Slots to Reduce False Positives. [#7923](https://github.com/hyperledger/besu/pull/7923)
### Bug fixes
- Upgrade Netty to version 4.1.118 to fix CVE-2025-24970 [#8275](https://github.com/hyperledger/besu/pull/8275)
- Add missing RPC method `debug_accountRange` to `RpcMethod.java` and implemented its handler. [#8153](https://github.com/hyperledger/besu/issues/8153)

## 25.2.0

### Breaking Changes
- `rpc-gas-cap` default value has changed from 0 (unlimited) to 50M. If you require `rpc-gas-cap` greater than 50M, you'll need to set that explicitly. [#8251](https://github.com/hyperledger/besu/issues/8251)
### Upcoming Breaking Changes
- `MetricSystem::createLabelledGauge` is deprecated and will be removed in a future release, replace it with `MetricSystem::createLabelledSuppliedGauge`
- k8s (KUBERNETES) Nat method is now deprecated and will be removed in a future release. Use docker or none instead.
- `--Xsnapsync-synchronizer-flat-db-healing-enabled` is deprecated, use `--Xbonsai-full-flat-db-enabled` instead.
- `--Xbonsai-limit-trie-logs-enabled` is deprecated, use `--bonsai-limit-trie-logs-enabled` instead.
- `--Xbonsai-trie-log-pruning-enabled` is deprecated, use `--bonsai-limit-trie-logs-enabled` instead.
- `--Xbonsai-trie-logs-pruning-window-size` is deprecated, use `--bonsai-trie-logs-pruning-window-size` instead.
- 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)
- Tessera privacy
- Smart-contract-based (onchain) permissioning
- Proof of Work consensus
- Fast Sync
- Support for block creation on networks running a pre-Byzantium fork is deprecated for removal in a future release, after that in order 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.
### Additions and Improvements
- Add a tx selector to skip txs from the same sender after the first not selected [#8216](https://github.com/hyperledger/besu/pull/8216)
- `rpc-gas-cap` default value has changed from 0 (unlimited) to 50M [#8251](https://github.com/hyperledger/besu/issues/8251)


#### Prague
- Add timestamps to enable Prague hardfork on Sepolia and Holesky test networks [#8163](https://github.com/hyperledger/besu/pull/8163)
- Update system call addresses to match [devnet-6](https://github.com/ethereum/execution-spec-tests/releases/) values [#8209](https://github.com/hyperledger/besu/issues/8209)

#### Plugins
- Extend simulate transaction on pending block plugin API [#8174](https://github.com/hyperledger/besu/pull/8174)

### Bug fixes
- Fix the simulation of txs with a future nonce [#8215](https://github.com/hyperledger/besu/pull/8215)
- Bump to besu-native 1.1.2 for ubuntu 20.04 native support[#8264](https://github.com/hyperledger/besu/pull/8264)

## 25.1.0

### Breaking Changes
- `--host-whitelist` has been deprecated since 2020 and this option is removed. Use the equivalent `--host-allowlist` instead.
- Change tracer API to include the mining beneficiary in BlockAwareOperationTracer::traceStartBlock [#8096](https://github.com/hyperledger/besu/pull/8096)
- Change the input defaults on debug_trace* calls to not trace memory by default ("disableMemory": true, "disableStack": false, "disableStorage": false)
- Change the output format of debug_trace* and trace_* calls to match Geth behaviour

### Upcoming Breaking Changes
- `MetricSystem::createLabelledGauge` is deprecated and will be removed in a future release, replace it with `MetricSystem::createLabelledSuppliedGauge`
- k8s (KUBERNETES) Nat method is now deprecated and will be removed in a future release. Use docker or none instead.
- `--Xsnapsync-synchronizer-flat-db-healing-enabled` is deprecated, use `--Xbonsai-full-flat-db-enabled` instead.
- `--Xbonsai-limit-trie-logs-enabled` is deprecated, use `--bonsai-limit-trie-logs-enabled` instead.
- `--Xbonsai-trie-log-pruning-enabled` is deprecated, use `--bonsai-limit-trie-logs-enabled` instead.
- `--Xbonsai-trie-logs-pruning-window-size` is deprecated, use `--bonsai-trie-logs-pruning-window-size` instead.
- 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)
- Tessera privacy
- Smart-contract-based (onchain) permissioning
Expand All @@ -19,10 +85,15 @@
- Retrieve all transaction receipts for a block in one request [#6646](https://github.com/hyperledger/besu/pull/6646)
- Implement EIP-7840: Add blob schedule to config files [#8042](https://github.com/hyperledger/besu/pull/8042)
- Allow gasPrice (legacy) and 1559 gasPrice params to be specified simultaneously for `eth_call`, `eth_createAccessList`, and `eth_estimateGas` [#8059](https://github.com/hyperledger/besu/pull/8059)

- Improve debug_traceBlock calls performance and reduce output size [#8103](https://github.com/hyperledger/besu/pull/8103)
- Add support for EIP-7702 transaction in the txpool [#8018](https://github.com/hyperledger/besu/pull/8018) [#7984](https://github.com/hyperledger/besu/pull/7984)
- Add support for `movePrecompileToAddress` in `StateOverrides` (`eth_call`)[8115](https://github.com/hyperledger/besu/pull/8115)
- Default target-gas-limit to 36M for holesky [#8125](https://github.com/hyperledger/besu/pull/8125)
- Add EIP-7623 - Increase calldata cost [#8093](https://github.com/hyperledger/besu/pull/8093)
- Add nonce to transaction call object [#8139](https://github.com/hyperledger/besu/pull/8139)

### Bug fixes
- Fix serialization of state overrides when `movePrecompileToAddress` is present [#8204](https://github.com/hyperledger/besu/pull/8024)
- Fix serialization of state overrides when `movePrecompileToAddress` is present [#8024](https://github.com/hyperledger/besu/pull/8024)
- Revise the approach for setting level_compaction_dynamic_level_bytes RocksDB configuration option [#8037](https://github.com/hyperledger/besu/pull/8037)
- Fix possible incomplete txpool restore from dump file [#7991](https://github.com/hyperledger/besu/pull/7991)

Expand All @@ -33,14 +104,14 @@ This is an optional hotfix to address serialization of state overrides parameter
There is no need to upgrade from 24.12.0 (or 24.12.1) to this release if you are not yet using this functionality.

### Bug fixes
- Fix serialization of state overrides when `movePrecompileToAddress` is present [#8204](https://github.com/hyperledger/besu/pull/8024)
- Fix serialization of state overrides when `movePrecompileToAddress` is present [#8024](https://github.com/hyperledger/besu/pull/8024)

## 24.12.1 Hotfix

This is a hotfix to address publishing besu maven artifacts. There are no issues with 24.12.0 other than incomplete artifact publishing, and there is no functional difference between 24.12.0 and 24.12.1 release binaries.

### Bug fixes
- Fix BOM pom publication to Artifactory [#8201](https://github.com/hyperledger/besu/pull/8021)
- Fix BOM pom publication to Artifactory [#8021](https://github.com/hyperledger/besu/pull/8021)

## 24.12.0

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,7 @@ public static BlockHeader createBlockHeader(
null,
null,
null,
null,
null,
blockHeaderFunctions);
blockHeaderFunctions,
null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public static Account create(final EthTransactions eth, final String name) {
return new Account(eth, name, SIGNATURE_ALGORITHM.get().generateKeyPair());
}

static Account fromPrivateKey(
public static Account fromPrivateKey(
final EthTransactions eth, final String name, final String privateKey) {
return new Account(
eth,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import org.hyperledger.besu.ethereum.permissioning.PermissioningConfiguration;
import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration;
import org.hyperledger.besu.metrics.prometheus.MetricsConfiguration;
import org.hyperledger.besu.plugin.services.storage.KeyValueStorageFactory;
import org.hyperledger.besu.tests.acceptance.dsl.condition.Condition;
import org.hyperledger.besu.tests.acceptance.dsl.node.configuration.NodeConfiguration;
import org.hyperledger.besu.tests.acceptance.dsl.node.configuration.genesis.GenesisConfigurationProvider;
Expand Down Expand Up @@ -133,6 +134,7 @@ public class BesuNode implements NodeConfiguration, RunnableNode, AutoCloseable
private Optional<Integer> exitCode = Optional.empty();
private final boolean isStrictTxReplayProtectionEnabled;
private final Map<String, String> environment;
private final Optional<KeyValueStorageFactory> storageFactory;

public BesuNode(
final String name,
Expand Down Expand Up @@ -169,7 +171,8 @@ public BesuNode(
final List<String> runCommand,
final Optional<KeyPair> keyPair,
final boolean isStrictTxReplayProtectionEnabled,
final Map<String, String> environment)
final Map<String, String> environment,
final Optional<KeyValueStorageFactory> maybeStorageFactory)
throws IOException {
this.homeDirectory = dataPath.orElseGet(BesuNode::createTmpDataDirectory);
this.isStrictTxReplayProtectionEnabled = isStrictTxReplayProtectionEnabled;
Expand Down Expand Up @@ -211,6 +214,7 @@ public BesuNode(
this.secp256k1Native = secp256k1Native;
this.altbn128Native = altbn128Native;
this.runCommand = runCommand;
this.storageFactory = maybeStorageFactory;
plugins.forEach(
pluginName -> {
try {
Expand Down Expand Up @@ -786,6 +790,20 @@ public void stop() {
nodeRequests.shutdown();
nodeRequests = null;
}
deleteRuntimeFiles();
}

private void deleteRuntimeFiles() {
try {
Files.deleteIfExists(homeDirectory.resolve("besu.networks"));
} catch (IOException e) {
LOG.error("Failed to clean up besu.networks file in {}", homeDirectory, e);
}
try {
Files.deleteIfExists(homeDirectory.resolve("besu.ports"));
} catch (IOException e) {
LOG.error("Failed to clean up besu.ports file in {}", homeDirectory, e);
}
}

@Override
Expand Down Expand Up @@ -836,4 +854,8 @@ public Map<String, String> getEnvironment() {
public ApiConfiguration getApiConfiguration() {
return apiConfiguration;
}

public Optional<KeyValueStorageFactory> getStorageFactory() {
return storageFactory;
}
}
Loading
Loading