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

Release candidate 3 for 23.10.3 #6286

Merged
merged 27 commits into from
Dec 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
4d21d5f
Release 23.10.3 rc1 in progress, uprev main. (#6227)
jflo Dec 1, 2023
003ad3f
New cli options to limit rewards return by eth_feeHistory (#6202)
Gabriel-Trintinalia Dec 4, 2023
da7ed76
[#5851] Add error messages on authentication failures with username a…
dlutzardo Dec 4, 2023
4492c89
Add RockDB Subcommand for printing usage per column family (#6185)
siladu Dec 5, 2023
fc0b28a
Deprecation warning if Forest pruning is enabled (#6230)
fab-10 Dec 5, 2023
c7f862a
Fix the annoying "Errors occurred while build effective model" during…
fab-10 Dec 5, 2023
d4733f7
Run ATs sequentially (#6244)
gfukushima Dec 6, 2023
68933f6
fix: double calls to trace{Start,End}Transaction (#6247)
delehef Dec 6, 2023
1249dae
migrate to junit5 (#6234)
macfarla Dec 6, 2023
6e50479
fixes for problems discovered in main (#6248)
garyschulte Dec 6, 2023
6aceb06
Pki - migrate to junit 5 (#6235)
macfarla Dec 7, 2023
ea1a78b
junit 5 ftw (#6253)
macfarla Dec 7, 2023
864d33e
removed unnecessary use of static temp dir (#6251)
macfarla Dec 7, 2023
ef2db43
Remove parallelism usage from mainnet AT (#6252)
gfukushima Dec 7, 2023
3ee481b
fix log params (#6254)
macfarla Dec 7, 2023
6247ed3
add dependency on jar task (#6255)
macfarla Dec 7, 2023
d981269
Fix and test that the BlockAwareOperationTracer methods are invoked t…
fab-10 Dec 7, 2023
ce148f6
[RPC] Use apiConfiguration to limit gasPrice in eth_getGasPrice (#6243)
Gabriel-Trintinalia Dec 7, 2023
012b3db
log bootnodes and static nodes list at debug level (#6273)
macfarla Dec 11, 2023
81aa191
junit 5 (#6256)
macfarla Dec 11, 2023
e6c6e65
Non bft group ats junit 5 (#6260)
macfarla Dec 11, 2023
639236a
Txparse subcommand implementation (#6268)
garyschulte Dec 11, 2023
e39a9a4
[MINOR] migrate remaining Crypto tests to junit 5 (#6280)
macfarla Dec 12, 2023
45de1b0
add a fix to load correctly the storage trie in the Bonsai WorldState…
matkt Dec 12, 2023
233f035
Sequenced pool synonym for legacy pool (#6274)
matthew1001 Dec 12, 2023
751efb5
ETC mainnet 'Spiral' activation block (#6267)
diega Dec 12, 2023
21f2fbc
uprev to version 23.10.3-RC3
jflo Dec 12, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ jobs:
- capture_test_results

acceptanceTests:
parallelism: 2
parallelism: 4
executor: xl_machine_executor # needs the machine executor since privacy test uses container tests (docker)
steps:
- prepare
Expand Down Expand Up @@ -424,9 +424,11 @@ workflows:
- acceptanceTestsCliqueBft:
requires:
- assemble
- acceptanceTests
- acceptanceTestsPermissioning:
requires:
- assemble
- acceptanceTestsCliqueBft
- buildDocker:
requires:
- assemble
Expand Down
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Changelog

## 23.10.4

### Breaking Changes

### Deprecations
- 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)

### Additions and Improvements
- Add error messages on authentication failures with username and password [#6212](https://github.com/hyperledger/besu/pull/6212)
- 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)
- Set Ethereum Classic mainnet activation block for Spiral network upgrade [#6267](https://github.com/hyperledger/besu/pull/6267)

### Bug fixes


## 23.10.3

### Breaking Changes
Expand All @@ -15,6 +30,8 @@
- Add `rpc-gas-cap` to allow users to set gas limit to the RPC methods used to simulate transactions[#6156](https://github.com/hyperledger/besu/pull/6156)
- Fix the unavailability of `address` field when returning an `Account` entity on GraphQL in case of unreachable world state [#6198](https://github.com/hyperledger/besu/pull/6198)
- Update OpenJ9 Docker image to latest version [#6226](https://github.com/hyperledger/besu/pull/6226)
- Add error messages on authentication failures with username and password [#6212](https://github.com/hyperledger/besu/pull/6212)
- Add `rocksdb usage` to the `storage` subcommand to allow users and dev to check columns families usage [#6185](https://github.com/hyperledger/besu/pull/6185)

### Bug fixes
- Fix Docker image name clash between Besu and evmtool [#6194](https://github.com/hyperledger/besu/pull/6194)
Expand Down
1 change: 0 additions & 1 deletion acceptance-tests/test-plugins/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ dependencies {
implementation 'com.google.auto.service:auto-service'
implementation 'info.picocli:picocli'

testImplementation 'junit:junit'
testImplementation 'org.assertj:assertj-core'
testImplementation 'org.junit.jupiter:junit-jupiter'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,13 @@

import org.assertj.core.api.Assertions;
import org.assertj.core.api.ThrowableAssert;
import org.junit.After;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;

public class BesuPluginContextImplTest {

@BeforeClass
@BeforeAll
public static void createFakePluginDir() throws IOException {
if (System.getProperty("besu.plugins.dir") == null) {
final Path pluginDir = Files.createTempDirectory("besuTest");
Expand All @@ -44,7 +44,7 @@ public static void createFakePluginDir() throws IOException {
}
}

@After
@AfterEach
public void clearTestPluginState() {
System.clearProperty("testPicoCLIPlugin.testOption");
}
Expand Down
2 changes: 1 addition & 1 deletion acceptance-tests/tests/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ sourceSets {
}
}

processTestResources.dependsOn(':acceptance-tests:test-plugins:testPluginsJar')
processTestResources.dependsOn(':acceptance-tests:test-plugins:testPluginsJar',':acceptance-tests:test-plugins:jar')

task acceptanceTest(type: Test) {
inputs.property "integration.date", LocalTime.now() // so it runs at every invocation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,8 @@
import org.apache.commons.compress.utils.IOUtils;

public class AbstractPreexistingNodeTest extends AcceptanceTestBase {
protected final String testName;
protected final String dataPath;
protected Path hostDataPath;

public AbstractPreexistingNodeTest(final String testName, final String dataPath) {
this.testName = testName;
this.dataPath = dataPath;
}

protected static void extract(final Path path, final String destDirectory) throws IOException {
try (final TarArchiveInputStream fin =
new TarArchiveInputStream(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

import java.io.IOException;

import org.junit.Test;
import org.junit.jupiter.api.Test;

public class LoggingTest extends AcceptanceTestBase {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,72 +29,49 @@
import org.hyperledger.besu.tests.acceptance.dsl.node.BesuNode;
import org.hyperledger.besu.tests.acceptance.dsl.node.configuration.BesuNodeConfigurationBuilder;

import java.io.IOException;
import java.math.BigInteger;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.function.UnaryOperator;
import java.util.stream.Stream;
import javax.annotation.Nonnull;

import com.fasterxml.jackson.databind.node.ObjectNode;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;

@RunWith(Parameterized.class)
public class BackupRoundTripAcceptanceTest extends AbstractPreexistingNodeTest {

private final Path backupPath;
private final Path restorePath;
private final Path rebackupPath;

@SuppressWarnings({"unused", "FieldCanBeLocal"})
private final List<AccountData> testAccounts;

@SuppressWarnings({"unused", "FieldCanBeLocal"})
private final long expectedChainHeight;
private Path backupPath;
private Path restorePath;
private Path rebackupPath;

public static Stream<Arguments> getParameters() {
// First 10 blocks of ropsten
return Stream.of(
Arguments.of(
"After versioning was enabled and using multiple RocksDB columns",
"version1",
0xA,
singletonList(
new AccountData(
"0xd1aeb42885a43b72b518182ef893125814811048",
BigInteger.valueOf(0xA),
Wei.fromHexString("0x2B5E3AF16B1880000")))));
}

public BackupRoundTripAcceptanceTest(
final String testName,
final String dataPath,
final long expectedChainHeight,
final List<AccountData> testAccounts)
throws IOException {
super(testName, dataPath);
this.expectedChainHeight = expectedChainHeight;
this.testAccounts = testAccounts;
public void setUp(final String testName, final String dataPath) throws Exception {
backupPath = Files.createTempDirectory("backup");
backupPath.toFile().deleteOnExit();
restorePath = Files.createTempDirectory("restore");
restorePath.toFile().deleteOnExit();
rebackupPath = Files.createTempDirectory("rebackup");
rebackupPath.toFile().deleteOnExit();
}

@Parameters(name = "{0}")
public static Object[][] getParameters() {
return new Object[][] {
// First 10 blocks of ropsten
new Object[] {
"After versioning was enabled and using multiple RocksDB columns",
"version1",
0xA,
singletonList(
new AccountData(
"0xd1aeb42885a43b72b518182ef893125814811048",
BigInteger.valueOf(0xA),
Wei.fromHexString("0x2B5E3AF16B1880000")))
}
};
}

@Before
public void setUp() throws Exception {
final URL rootURL = DatabaseMigrationAcceptanceTest.class.getResource(dataPath);
hostDataPath = copyDataDir(rootURL);
final Path databaseArchive =
Expand All @@ -105,8 +82,16 @@ public void setUp() throws Exception {
extract(databaseArchive, hostDataPath.toAbsolutePath().toString());
}

@Test
public void backupRoundtripAndBack() throws IOException {
@ParameterizedTest(name = "{index}: {0}")
@MethodSource("getParameters")
public void backupRoundtripAndBack(
final String testName,
final String dataPath,
final long expectedChainHeight,
final List<AccountData> testAccounts)
throws Exception {

setUp(testName, dataPath);

// backup from existing files
final BesuNode backupNode =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@
import org.hyperledger.besu.tests.acceptance.dsl.AcceptanceTestBase;
import org.hyperledger.besu.tests.acceptance.dsl.node.Node;

import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

public class ClusterAcceptanceTest extends AcceptanceTestBase {

private Node minerNode;
private Node fullNode;

@Before
@BeforeEach
public void setUp() throws Exception {
minerNode = besu.createMinerNode("node1");
fullNode = besu.createArchiveNode("node2");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@
import org.hyperledger.besu.tests.acceptance.dsl.node.cluster.ClusterConfiguration;
import org.hyperledger.besu.tests.acceptance.dsl.node.cluster.ClusterConfigurationBuilder;

import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

public class ClusterNoDiscoveryAcceptanceTest extends AcceptanceTestBase {

private Node fullNode;
private Node noDiscoveryNode;
private Cluster noDiscoveryCluster;

@Before
@BeforeEach
public void setUp() throws Exception {
final ClusterConfiguration clusterConfiguration =
new ClusterConfigurationBuilder().awaitPeerDiscovery(false).build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,15 @@
import org.hyperledger.besu.tests.acceptance.dsl.node.cluster.ClusterConfiguration;
import org.hyperledger.besu.tests.acceptance.dsl.node.cluster.ClusterConfigurationBuilder;

import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

public class ClusterThreadNodeRunnerAcceptanceTest extends AcceptanceTestBase {

private Node fullNode;
private Cluster noDiscoveryCluster;

@Before
@BeforeEach
public void setUp() throws Exception {
final ClusterConfiguration clusterConfiguration =
new ClusterConfigurationBuilder().awaitPeerDiscovery(false).build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@
import org.hyperledger.besu.tests.acceptance.dsl.node.cluster.ClusterConfiguration;
import org.hyperledger.besu.tests.acceptance.dsl.node.cluster.ClusterConfigurationBuilder;

import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

public class P2pDisabledAcceptanceTest extends AcceptanceTestBase {
private Node node;
private Cluster p2pDisabledCluster;

@Before
@BeforeEach
public void setUp() throws Exception {
final ClusterConfiguration clusterConfiguration =
new ClusterConfigurationBuilder().awaitPeerDiscovery(false).build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@

import java.util.Arrays;

import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

public class StaticNodesAcceptanceTest extends AcceptanceTestBase {

private Node otherNode;
private Node node;

@Before
@BeforeEach
public void setUp() throws Exception {
otherNode = besu.createNodeWithNoDiscovery("other-node");
cluster.start(otherNode);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@
import org.bouncycastle.asn1.sec.SECNamedCurves;
import org.bouncycastle.asn1.x9.X9ECParameters;
import org.bouncycastle.crypto.params.ECDomainParameters;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

public class BootNodesGenesisSetupTest extends AcceptanceTestBase {
private static final String CURVE_NAME = "secp256k1";
Expand All @@ -42,13 +42,13 @@ public class BootNodesGenesisSetupTest extends AcceptanceTestBase {
private Node nodeA;
private Node nodeB;

@BeforeClass
@BeforeAll
public static void environment() {
final X9ECParameters params = SECNamedCurves.getByName(CURVE_NAME);
curve = new ECDomainParameters(params.getCurve(), params.getG(), params.getN(), params.getH());
}

@Before
@BeforeEach
public void setUp() throws Exception {
int nodeAP2pBindingPort;
int nodeBP2pBindingPort;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@
import java.util.List;

import org.apache.tuweni.bytes.Bytes32;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

public class SECP256R1AcceptanceTest extends AcceptanceTestBase {
private Node minerNode;
Expand All @@ -49,7 +49,7 @@ public class SECP256R1AcceptanceTest extends AcceptanceTestBase {

private static final SECP256R1 SECP256R1_SIGNATURE_ALGORITHM = new SECP256R1();

@Before
@BeforeEach
public void setUp() throws Exception {
KeyPair minerNodeKeyPair = createKeyPair(MINER_NODE_PRIVATE_KEY);
KeyPair otherNodeKeyPair = createKeyPair(OTHER_NODE_PRIVATE_KEY);
Expand Down
Loading
Loading