Skip to content

Commit a99e3e1

Browse files
authored
Merge branch 'main' into qbft-shanghai
Signed-off-by: Matt Whitehead <matthew1001@gmail.com>
2 parents 41ab356 + 25f8e57 commit a99e3e1

File tree

136 files changed

+3954
-3176
lines changed

Some content is hidden

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

136 files changed

+3954
-3176
lines changed

.circleci/config.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -233,16 +233,16 @@ jobs:
233233
- capture_test_logs
234234

235235
acceptanceTestsCliqueBft:
236-
executor: besu_executor_xl
236+
executor: besu_executor_med
237237
steps:
238238
- prepare
239239
- attach_workspace:
240240
at: ~/project
241241
- run:
242242
name: AcceptanceTests (Non-Mainnet)
243-
no_output_timeout: 20m
243+
no_output_timeout: 30m
244244
command: |
245-
./gradlew --no-daemon acceptanceTestCliqueBft
245+
./gradlew --no-daemon --max-workers=1 acceptanceTestCliqueBft
246246
- capture_test_results
247247
- capture_test_logs
248248

@@ -269,7 +269,7 @@ jobs:
269269
- capture_test_logs
270270

271271
acceptanceTestsPermissioning:
272-
executor: besu_executor_xl
272+
executor: besu_executor_med
273273
steps:
274274
- prepare
275275
- attach_workspace:
@@ -278,7 +278,7 @@ jobs:
278278
name: AcceptanceTests (Non-Mainnet)
279279
no_output_timeout: 20m
280280
command: |
281-
./gradlew --no-daemon acceptanceTestPermissioning
281+
./gradlew --no-daemon --max-workers=1 acceptanceTestPermissioning
282282
- capture_test_results
283283
- capture_test_logs
284284

@@ -428,12 +428,12 @@ workflows:
428428
- acceptanceTestsPermissioning:
429429
requires:
430430
- assemble
431-
- acceptanceTestsCliqueBft
432431
- buildDocker:
433432
requires:
434433
- assemble
435434
- buildArm64Docker:
436435
requires:
436+
- buildDocker
437437
- assemble
438438
- publish:
439439
filters:

CHANGELOG.md

Lines changed: 52 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,69 @@
11
# Changelog
22

3-
## 24.1.0-SNAPSHOT
3+
## 24.1.1-SNAPSHOT
44

55
### Breaking Changes
6+
- New `EXECUTION_HALTED` error returned if there is an error executing or simulating a transaction, with the reason for execution being halted. Replaces the generic `INTERNAL_ERROR` return code in certain cases which some applications may be checking for [#6343](https://github.com/hyperledger/besu/pull/6343)
7+
- The Besu Docker images with `openjdk-latest` tags since 23.10.3 were incorrectly using UID 1001 instead of 1000 for the container's `besu` user. The user now uses 1000 again. Containers created from or migrated to images using UID 1001 will need to chown their persistent database files to UID 1000 [#6360](https://github.com/hyperledger/besu/pull/6360)
8+
- The deprecated `--privacy-onchain-groups-enabled` option has now been removed. Use the `--privacy-flexible-groups-enabled` option instead. [#6411](https://github.com/hyperledger/besu/pull/6411)
69

710
### Deprecations
8-
- Forest pruning (`pruning-enabled` options) is deprecated and will be removed soon. To save disk space consider switching to Bonsai data storage format [#6230](https://github.com/hyperledger/besu/pull/6230)
11+
12+
### Additions and Improvements
13+
- Optimize RocksDB WAL files, allows for faster restart and a more linear disk space utilization [#6328](https://github.com/hyperledger/besu/pull/6328)
14+
- Disable transaction handling when the node is not in sync, to avoid unnecessary transaction validation work [#6302](https://github.com/hyperledger/besu/pull/6302)
15+
- Introduce TransactionEvaluationContext to pass data between transaction selectors and plugin, during block creation [#6381](https://github.com/hyperledger/besu/pull/6381)
16+
- Upgrade dependencies [#6377](https://github.com/hyperledger/besu/pull/6377)
17+
- Upgrade `com.fasterxml.jackson` dependencies [#6378](https://github.com/hyperledger/besu/pull/6378)
18+
- Upgrade Guava dependency [#6396](https://github.com/hyperledger/besu/pull/6396)
19+
- Upgrade Mockito [#6397](https://github.com/hyperledger/besu/pull/6397)
20+
- Upgrade `tech.pegasys.discovery:discovery` [#6414](https://github.com/hyperledger/besu/pull/6414)
21+
22+
### Bug fixes
23+
- INTERNAL_ERROR from `eth_estimateGas` JSON/RPC calls [#6344](https://github.com/hyperledger/besu/issues/6344)
24+
- Fix Besu Docker images with `openjdk-latest` tags since 23.10.3 using UID 1001 instead of 1000 for the `besu` user [#6360](https://github.com/hyperledger/besu/pull/6360)
25+
- Fluent EVM API definition for Tangerine Whistle had incorrect code size validation configured [#6382](https://github.com/hyperledger/besu/pull/6382)
26+
- Correct mining beneficiary for Clique networks in TraceServiceImpl [#6390](https://github.com/hyperledger/besu/pull/6390)
27+
28+
### Download Links
29+
30+
31+
## 24.1.0
32+
33+
### Breaking Changes
34+
35+
### Deprecations
36+
- Forest pruning (`pruning-enabled` option) is deprecated and will be removed soon. To save disk space consider switching to Bonsai data storage format [#6230](https://github.com/hyperledger/besu/pull/6230)
937

1038
### Additions and Improvements
1139
- Add error messages on authentication failures with username and password [#6212](https://github.com/hyperledger/besu/pull/6212)
12-
- New `Sequenced` transaction pool. The pool is an evolution of the `legacy` pool and is likely to be more suitable to enterprise or permissioned chains than the `layered` transaction pool. Select to use this pool with `--tx-pool=sequenced`. Supports the same options as the `legacy` pool [#6211](https://github.com/hyperledger/besu/issues/6211)
40+
- New `Sequenced` transaction pool. The pool is an evolution of the `legacy` pool and is likely to be more suitable to enterprise or permissioned chains than the `layered` transaction pool. Select to use this pool with `--tx-pool=sequenced`. Supports the same options as the `legacy` pool [#6274](https://github.com/hyperledger/besu/issues/6274)
1341
- Set Ethereum Classic mainnet activation block for Spiral network upgrade [#6267](https://github.com/hyperledger/besu/pull/6267)
1442
- Add custom genesis file name to config overview if specified [#6297](https://github.com/hyperledger/besu/pull/6297)
1543
- Update Gradle plugins and replace unmaintained License Gradle Plugin with the actively maintained Gradle License Report [#6275](https://github.com/hyperledger/besu/pull/6275)
1644
- Support for `shanghaiTime` fork and Shanghai EVM smart contracts in QBFT/IBFT chains [#6353](https://github.com/hyperledger/besu/pull/6353)
1745

1846
### Bug fixes
47+
- Hotfix for selfdestruct preimages on bonsai [#6359]((https://github.com/hyperledger/besu/pull/6359)
48+
- Fix trielog shipping issue during self destruct [#6340]((https://github.com/hyperledger/besu/pull/6340)
49+
- mitigation for trielog failure [#6315]((https://github.com/hyperledger/besu/pull/6315)
50+
51+
### Download Links
52+
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/24.1.0/besu-24.1.0.zip / sha256 TBA
53+
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/24.1.0/besu-24.1.0.tar.gz / sha256 TBA
54+
55+
56+
## 23.10.3-hotfix
57+
This is a hotfix for a selfdestruct defect that occurred on mainnet at block [18947893](https://etherscan.io/block/18947893)
58+
59+
### Bug fixes
60+
- Hotfix for selfdestruct preimages on bonsai [#6359]((https://github.com/hyperledger/besu/pull/6359)
61+
- mitigation for trielog failure [#6315]((https://github.com/hyperledger/besu/pull/6315)
62+
63+
### Download Links
64+
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.10.3-hotfix/besu-23.10.3-hotfix.zip / sha256 1c37762909858a40eca749fb85b77fb4d1e918f247aff56d518144828bd85378
65+
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.10.3-hotfix/besu-23.10.3-hotfix.tar.gz / sha256 8e38e9fd0c16e049aa324effc96f9ec31dc06e82ea4995e9dd75d571394667af
66+
1967

2068
## 23.10.3
2169

@@ -63,6 +111,7 @@ https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.10.3/besu-23.10.3
63111
- Force tx replacement price bump to zero when zero base fee market is configured or `--min-gas-price` is set to 0. This allows for easier tx replacement in networks where there is not gas price. [#6079](https://github.com/hyperledger/besu/pull/6079)
64112
- Introduce the possibility to limit the time spent selecting pending transactions during block creation, using the new experimental option `Xblock-txs-selection-max-time` on PoS and PoW networks (by default set to 5000ms) or `Xpoa-block-txs-selection-max-time` on PoA networks (by default 75% of the min block time) [#6044](https://github.com/hyperledger/besu/pull/6044)
65113
- Remove LowestInvalidNonceCache from `legacy` transaction pool to make it more private networks friendly [#6148](https://github.com/hyperledger/besu/pull/6148)
114+
- Optimization: Delete leftPad when capturing the stack before and after a frame execution [#6102](https://github.com/hyperledger/besu/pull/6102)
66115

67116
### Bug fixes
68117
- Upgrade netty to address CVE-2023-44487, CVE-2023-34462 [#6100](https://github.com/hyperledger/besu/pull/6100)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ Instructions for how to get started with developing on the Besu codebase. Please
4747
* [Checking Out and Building](https://wiki.hyperledger.org/display/BESU/Building+from+source)
4848
* [Running Developer Builds](https://wiki.hyperledger.org/display/BESU/Building+from+source#running-developer-builds)
4949
* [Code Coverage](https://wiki.hyperledger.org/display/BESU/Code+coverage)
50-
* [Logging](https://wiki.hyperledger.org/display/BESU/Logging) or the [Documentation's Logging section](https://besu.hyperledger.org/en/stable/HowTo/Monitor/Logging/)
50+
* [Logging](https://wiki.hyperledger.org/display/BESU/Logging) or the [Documentation's Logging section](https://besu.hyperledger.org/public-networks/how-to/monitor/logging)
5151

5252

5353
## Release Notes

SUPPORT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Welcome to the Besu repository! The following links are a set of guidelines for
77
Having Github, Discord, and Linux Foundation accounts is necessary for obtaining support for Besu through the community channels, wiki and issue management.
88
* If you want to raise an issue, you can do so [on the github issue tab](https://github.com/hyperledger/besu/issues).
99
* Hyperledger Discord requires a [Discord account].
10-
* The Hyperlegder wiki also requires a [Linux Foundation (LF) account] in order to edit pages.
10+
* The Hyperledger wiki also requires a [Linux Foundation (LF) account] in order to edit pages.
1111

1212
### Useful support links
1313

acceptance-tests/dsl/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ dependencies {
2626
implementation project(':testutil')
2727
implementation project(':util')
2828

29-
implementation 'com.github.tomakehurst:wiremock-jre8'
3029
implementation 'com.google.guava:guava'
3130
implementation 'com.google.dagger:dagger'
3231
annotationProcessor 'com.google.dagger:dagger-compiler'
@@ -45,6 +44,8 @@ dependencies {
4544
implementation 'org.web3j:abi'
4645
implementation 'org.web3j:besu'
4746
implementation 'org.web3j:crypto'
47+
implementation 'org.wiremock:wiremock'
4848

4949
implementation 'org.testcontainers:testcontainers'
50+
implementation 'org.junit.jupiter:junit-jupiter'
5051
}

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

Lines changed: 6 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@
4949
import org.hyperledger.besu.tests.acceptance.dsl.transaction.web3.Web3Transactions;
5050

5151
import java.io.BufferedReader;
52-
import java.io.File;
5352
import java.io.IOException;
5453
import java.io.InputStreamReader;
5554
import java.lang.ProcessBuilder.Redirect;
@@ -58,14 +57,15 @@
5857
import java.util.concurrent.Executors;
5958

6059
import org.junit.After;
61-
import org.junit.Rule;
62-
import org.junit.rules.TestName;
63-
import org.junit.rules.TestWatcher;
64-
import org.junit.runner.Description;
60+
import org.junit.jupiter.api.extension.ExtendWith;
6561
import org.slf4j.Logger;
6662
import org.slf4j.LoggerFactory;
67-
import org.slf4j.MDC;
6863

64+
/**
65+
* Superclass for acceptance tests. For now (transition to junit5 is ongoing) this class supports
66+
* junit4 format.
67+
*/
68+
@ExtendWith(AcceptanceTestBaseTestWatcher.class)
6969
public class AcceptanceTestBase {
7070

7171
private static final Logger LOG = LoggerFactory.getLogger(AcceptanceTestBase.class);
@@ -131,8 +131,6 @@ protected AcceptanceTestBase() {
131131
exitedSuccessfully = new ExitedWithCode(0);
132132
}
133133

134-
@Rule public final TestName name = new TestName();
135-
136134
@After
137135
public void tearDownAcceptanceTestBase() {
138136
reportMemory();
@@ -178,49 +176,6 @@ private void printOutput(final Process process) {
178176
}
179177
}
180178

181-
@Rule
182-
public TestWatcher logEraser =
183-
new TestWatcher() {
184-
185-
@Override
186-
protected void starting(final Description description) {
187-
MDC.put("test", description.getMethodName());
188-
MDC.put("class", description.getClassName());
189-
190-
final String errorMessage = "Uncaught exception in thread \"{}\"";
191-
Thread.currentThread()
192-
.setUncaughtExceptionHandler(
193-
(thread, error) -> LOG.error(errorMessage, thread.getName(), error));
194-
Thread.setDefaultUncaughtExceptionHandler(
195-
(thread, error) -> LOG.error(errorMessage, thread.getName(), error));
196-
}
197-
198-
@Override
199-
protected void failed(final Throwable e, final Description description) {
200-
// add the result at the end of the log so it is self-sufficient
201-
LOG.error(
202-
"==========================================================================================");
203-
LOG.error("Test failed. Reported Throwable at the point of failure:", e);
204-
LOG.error(e.getMessage());
205-
}
206-
207-
@Override
208-
protected void succeeded(final Description description) {
209-
// if so configured, delete logs of successful tests
210-
if (!Boolean.getBoolean("acctests.keepLogsOfPassingTests")) {
211-
String pathname =
212-
"build/acceptanceTestLogs/"
213-
+ description.getClassName()
214-
+ "."
215-
+ description.getMethodName()
216-
+ ".log";
217-
LOG.info("Test successful, deleting log at {}", pathname);
218-
File file = new File(pathname);
219-
file.delete();
220-
}
221-
}
222-
};
223-
224179
protected void waitForBlockHeight(final Node node, final long blockchainHeight) {
225180
WaitUtils.waitFor(
226181
120,

0 commit comments

Comments
 (0)