Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
# Changelog

## 23.1.0-beta2

### Breaking Changes
- Default configurations for the deprecated Ropsten, Kiln, Shandong, and Astor networks have been removed from the CLI network list. These networks can currently be accessed but will require a user-provided genesis configuration. [#4896](https://github.com/hyperledger/besu/pull/4869)

### Additions and Improvements

### Bug Fixes

## 23.1.0-beta

### Breaking Changes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,13 @@
public enum NetworkName {
MAINNET("/mainnet.json", BigInteger.valueOf(1)),
RINKEBY("/rinkeby.json", BigInteger.valueOf(4)),
ROPSTEN("/ropsten.json", BigInteger.valueOf(3)),
SEPOLIA("/sepolia.json", BigInteger.valueOf(11155111)),
GOERLI("/goerli.json", BigInteger.valueOf(5)),
SHANDONG("/shandong.json", BigInteger.valueOf(1337903)),
KILN("/kiln.json", BigInteger.valueOf(1337802), false),
DEV("/dev.json", BigInteger.valueOf(2018), false),
CLASSIC("/classic.json", BigInteger.valueOf(1)),
KOTTI("/kotti.json", BigInteger.valueOf(6)),
MORDOR("/mordor.json", BigInteger.valueOf(7)),
ECIP1049_DEV("/ecip1049_dev.json", BigInteger.valueOf(2021)),
ASTOR("/astor.json", BigInteger.valueOf(212));
ECIP1049_DEV("/ecip1049_dev.json", BigInteger.valueOf(2021));

private final String genesisFile;
private final BigInteger networkId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,20 +76,6 @@ public static Collection<Object[]> parameters() {
new ForkId(Bytes.ofUnsignedInt(0xb96cbd13L), 0L),
new ForkId(Bytes.ofUnsignedInt(0xb96cbd13L), 0L))
},
new Object[] {
NetworkName.ROPSTEN,
List.of(
new ForkId(Bytes.ofUnsignedInt(0x30c7ddbcL), 10L),
new ForkId(Bytes.ofUnsignedInt(0x63760190L), 1700000L),
new ForkId(Bytes.ofUnsignedInt(0x3ea159c7L), 4230000L),
new ForkId(Bytes.ofUnsignedInt(0x97b544f3L), 4939394L),
new ForkId(Bytes.ofUnsignedInt(0xd6e2149bL), 6485846L),
new ForkId(Bytes.ofUnsignedInt(0x4bc66396L), 7117117L),
new ForkId(Bytes.ofUnsignedInt(0x6727ef90L), 9812189L),
new ForkId(Bytes.ofUnsignedInt(0xa157d377L), 10499401L),
new ForkId(Bytes.ofUnsignedInt(0x7119b6b3L), 0L),
new ForkId(Bytes.ofUnsignedInt(0x7119b6b3L), 0L))
},
new Object[] {
NetworkName.RINKEBY,
List.of(
Expand All @@ -114,12 +100,6 @@ public static Collection<Object[]> parameters() {
new ForkId(Bytes.ofUnsignedInt(0xb8c6299dL), 0L),
new ForkId(Bytes.ofUnsignedInt(0xb8c6299dL), 0L))
},
new Object[] {
NetworkName.SHANDONG,
List.of(
new ForkId(Bytes.ofUnsignedInt(0x0459e09dL), 0L),
new ForkId(Bytes.ofUnsignedInt(0x0459e09dL), 0L))
},
new Object[] {
NetworkName.MAINNET,
List.of(
Expand Down
83 changes: 0 additions & 83 deletions besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,11 @@
import static org.hyperledger.besu.cli.config.NetworkName.CLASSIC;
import static org.hyperledger.besu.cli.config.NetworkName.DEV;
import static org.hyperledger.besu.cli.config.NetworkName.GOERLI;
import static org.hyperledger.besu.cli.config.NetworkName.KILN;
import static org.hyperledger.besu.cli.config.NetworkName.KOTTI;
import static org.hyperledger.besu.cli.config.NetworkName.MAINNET;
import static org.hyperledger.besu.cli.config.NetworkName.MORDOR;
import static org.hyperledger.besu.cli.config.NetworkName.RINKEBY;
import static org.hyperledger.besu.cli.config.NetworkName.ROPSTEN;
import static org.hyperledger.besu.cli.config.NetworkName.SEPOLIA;
import static org.hyperledger.besu.cli.config.NetworkName.SHANDONG;
import static org.hyperledger.besu.cli.util.CommandLineUtils.DEPENDENCY_WARNING_MSG;
import static org.hyperledger.besu.cli.util.CommandLineUtils.DEPRECATION_WARNING_MSG;
import static org.hyperledger.besu.ethereum.api.jsonrpc.RpcApis.ENGINE;
Expand All @@ -44,7 +41,6 @@
import static org.hyperledger.besu.ethereum.p2p.config.DefaultDiscoveryConfiguration.MAINNET_DISCOVERY_URL;
import static org.hyperledger.besu.ethereum.p2p.config.DefaultDiscoveryConfiguration.RINKEBY_BOOTSTRAP_NODES;
import static org.hyperledger.besu.ethereum.p2p.config.DefaultDiscoveryConfiguration.RINKEBY_DISCOVERY_URL;
import static org.hyperledger.besu.ethereum.p2p.config.DefaultDiscoveryConfiguration.SHANDONG_BOOTSTRAP_NODES;
import static org.hyperledger.besu.ethereum.worldstate.DataStorageFormat.BONSAI;
import static org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.DEFAULT_BESU_SERVICE_NAME_FILTER;
import static org.junit.Assume.assumeThat;
Expand Down Expand Up @@ -1046,22 +1042,6 @@ public void testGenesisPathRinkebyEthConfig() {
assertThat(config.getNetworkId()).isEqualTo(BigInteger.valueOf(4));
}

@Test
public void testGenesisPathShandongEthConfig() {
final ArgumentCaptor<EthNetworkConfig> networkArg =
ArgumentCaptor.forClass(EthNetworkConfig.class);

parseCommand("--network", "shandong");

verify(mockControllerBuilderFactory).fromEthNetworkConfig(networkArg.capture(), any(), any());
verify(mockControllerBuilder).build();

final EthNetworkConfig config = networkArg.getValue();
assertThat(config.getBootNodes()).isEqualTo(SHANDONG_BOOTSTRAP_NODES);
assertThat(config.getDnsDiscoveryUrl()).isNull();
assertThat(config.getNetworkId()).isEqualTo(BigInteger.valueOf(1337903));
}

@Test
public void genesisAndNetworkMustNotBeUsedTogether() throws Exception {
final Path genesisFile = createFakeGenesisFile(GENESIS_VALID_JSON);
Expand Down Expand Up @@ -3939,42 +3919,6 @@ public void rinkebyValuesAreUsed() {
verify(mockLogger, times(1)).warn(contains("Rinkeby is deprecated and will be shutdown"));
}

@Test
public void ropstenValuesAreUsed() {
parseCommand("--network", "ropsten");

final ArgumentCaptor<EthNetworkConfig> networkArg =
ArgumentCaptor.forClass(EthNetworkConfig.class);

verify(mockControllerBuilderFactory).fromEthNetworkConfig(networkArg.capture(), any(), any());
verify(mockControllerBuilder).build();

assertThat(networkArg.getValue()).isEqualTo(EthNetworkConfig.getNetworkConfig(ROPSTEN));

assertThat(commandOutput.toString(UTF_8)).isEmpty();
assertThat(commandErrorOutput.toString(UTF_8)).isEmpty();

verify(mockLogger, times(1)).warn(contains("Ropsten is deprecated and will be shutdown"));
}

@Test
public void kilnValuesAreUsed() {
parseCommand("--network", "kiln");

final ArgumentCaptor<EthNetworkConfig> networkArg =
ArgumentCaptor.forClass(EthNetworkConfig.class);

verify(mockControllerBuilderFactory).fromEthNetworkConfig(networkArg.capture(), any(), any());
verify(mockControllerBuilder).build();

assertThat(networkArg.getValue()).isEqualTo(EthNetworkConfig.getNetworkConfig(KILN));

assertThat(commandOutput.toString(UTF_8)).isEmpty();
assertThat(commandErrorOutput.toString(UTF_8)).isEmpty();

verify(mockLogger, times(1)).warn(contains("Kiln is deprecated and will be shutdown"));
}

@Test
public void goerliValuesAreUsed() {
parseCommand("--network", "goerli");
Expand Down Expand Up @@ -4011,24 +3955,6 @@ public void sepoliaValuesAreUsed() {
verify(mockLogger, never()).warn(contains("Sepolia is deprecated and will be shutdown"));
}

@Test
public void shandongValuesAreUsed() {
parseCommand("--network", "shandong");

final ArgumentCaptor<EthNetworkConfig> networkArg =
ArgumentCaptor.forClass(EthNetworkConfig.class);

verify(mockControllerBuilderFactory).fromEthNetworkConfig(networkArg.capture(), any(), any());
verify(mockControllerBuilder).build();

assertThat(networkArg.getValue()).isEqualTo(EthNetworkConfig.getNetworkConfig(SHANDONG));

assertThat(commandOutput.toString(UTF_8)).isEmpty();
assertThat(commandErrorOutput.toString(UTF_8)).isEmpty();

verify(mockLogger, never()).warn(contains("Shandong is deprecated and will be shutdown"));
}

@Test
public void classicValuesAreUsed() throws Exception {
parseCommand("--network", "classic");
Expand Down Expand Up @@ -4087,15 +4013,6 @@ public void goerliValuesCanBeOverridden() throws Exception {
networkValuesCanBeOverridden("goerli");
}

@Test
public void ropstenValuesCanBeOverridden() throws Exception {
networkValuesCanBeOverridden("ropsten");
}

public void shandongValuesCanBeOverridden() throws Exception {
networkValuesCanBeOverridden("shandong");
}

@Test
public void devValuesCanBeOverridden() throws Exception {
networkValuesCanBeOverridden("dev");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class NetworkDeprecationMessageTest {
@ParameterizedTest
@EnumSource(
value = NetworkName.class,
names = {"RINKEBY", "ROPSTEN", "KILN"})
names = {"RINKEBY"})
void shouldGenerateDeprecationMessageForDeprecatedNetworks(final NetworkName network) {
assertThat(NetworkDeprecationMessage.generate(network))
.contains(network.normalize() + " is deprecated and will be shutdown");
Expand All @@ -37,16 +37,7 @@ void shouldGenerateDeprecationMessageForDeprecatedNetworks(final NetworkName net
@EnumSource(
value = NetworkName.class,
names = {
"MAINNET",
"SEPOLIA",
"GOERLI",
"SHANDONG",
"DEV",
"CLASSIC",
"KOTTI",
"MORDOR",
"ECIP1049_DEV",
"ASTOR"
"MAINNET", "SEPOLIA", "GOERLI", "DEV", "CLASSIC", "KOTTI", "MORDOR",
})
void shouldThrowErrorForNonDeprecatedNetworks(final NetworkName network) {
assertThatThrownBy(() -> NetworkDeprecationMessage.generate(network))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import static org.hyperledger.besu.ethereum.p2p.config.DefaultDiscoveryConfiguration.MAINNET_DISCOVERY_URL;
import static org.hyperledger.besu.ethereum.p2p.config.DefaultDiscoveryConfiguration.RINKEBY_BOOTSTRAP_NODES;
import static org.hyperledger.besu.ethereum.p2p.config.DefaultDiscoveryConfiguration.RINKEBY_DISCOVERY_URL;
import static org.hyperledger.besu.ethereum.p2p.config.DefaultDiscoveryConfiguration.SHANDONG_BOOTSTRAP_NODES;

import java.math.BigInteger;

Expand Down Expand Up @@ -57,14 +56,6 @@ public void testDefaultGoerliConfig() {
assertThat(config.getNetworkId()).isEqualTo(BigInteger.valueOf(5));
}

@Test
public void testDefaultShandongConfig() {
EthNetworkConfig config = EthNetworkConfig.getNetworkConfig(NetworkName.SHANDONG);
assertThat(config.getDnsDiscoveryUrl()).isNull();
assertThat(config.getBootNodes()).isEqualTo(SHANDONG_BOOTSTRAP_NODES);
assertThat(config.getNetworkId()).isEqualTo(BigInteger.valueOf(1337903));
}

@Test
public void testDefaultDevConfig() {
EthNetworkConfig config = EthNetworkConfig.getNetworkConfig(NetworkName.DEV);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ public class DefaultDiscoveryConfiguration {
"enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.mainnet.ethdisco.net";
public static final String RINKEBY_DISCOVERY_URL =
"enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.rinkeby.ethdisco.net";
public static final String ROPSTEN_DISCOVERY_URL =
"enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.ropsten.ethdisco.net";
public static final List<EnodeURL> MAINNET_BOOTSTRAP_NODES =
Collections.unmodifiableList(
Stream.of(
Expand Down Expand Up @@ -65,15 +63,6 @@ public class DefaultDiscoveryConfiguration {
"enode://b6b28890b006743680c52e64e0d16db57f28124885595fa03a562be1d2bf0f3a1da297d56b13da25fb992888fd556d4c1a27b1f39d531bde7de1921c90061cc6@159.89.28.211:30303")
.map(EnodeURLImpl::fromString)
.collect(toList()));
public static final List<EnodeURL> ROPSTEN_BOOTSTRAP_NODES =
Collections.unmodifiableList(
Stream.of(
"enode://6332792c4a00e3e4ee0926ed89e0d27ef985424d97b6a45bf0f23e51f0dcb5e66b875777506458aea7af6f9e4ffb69f43f3778ee73c81ed9d34c51c4b16b0b0f@52.232.243.152:30303",
"enode://94c15d1b9e2fe7ce56e458b9a3b672ef11894ddedd0c6f247e0f1d3487f52b66208fb4aeb8179fce6e3a749ea93ed147c37976d67af557508d199d9594c35f09@192.81.208.223:30303",
"enode://30b7ab30a01c124a6cceca36863ece12c4f5fa68e3ba9b0b51407ccc002eeed3b3102d20a88f1c1d3c3154e2449317b8ef95090e77b312d5cc39354f86d5d606@52.176.7.10:30303",
"enode://865a63255b3bb68023b6bffd5095118fcc13e79dcf014fe4e47e065c350c7cc72af2e53eff895f11ba1bbb6a2b33271c1116ee870f266618eadfc2e78aa7349c@52.176.100.77:30303")
.map(EnodeURLImpl::fromString)
.collect(toList()));
public static final List<EnodeURL> GOERLI_BOOTSTRAP_NODES =
Collections.unmodifiableList(
Stream.of(
Expand All @@ -93,16 +82,8 @@ public class DefaultDiscoveryConfiguration {
public static final List<EnodeURL> SEPOLIA_BOOTSTRAP_NODES =
Collections.unmodifiableList(
Stream.of(
"enode://9246d00bc8fd1742e5ad2428b80fc4dc45d786283e05ef6edbd9002cbc335d40998444732fbe921cb88e1d2c73d1b1de53bae6a2237996e9bfe14f871baf7066@18.168.182.86:30303")
.map(EnodeURLImpl::fromString)
.collect(toList()));
public static final List<EnodeURL> SHANDONG_BOOTSTRAP_NODES =
Collections.unmodifiableList(
Stream.of(
"enode://15c459fb9cd636f9f7640dfc0f4a6445467205fc6731063acdee9befa2ab35ad690a7240fdddef5da9d088c29a52029ceaf9ef1aea889927ced972d4b19b8edc@46.101.126.45:30303",
"enode://a37852e9193aa15b41c207c9718c938c2b0c970c32dc91205f1206530271b1fcc6a5876f4e2db288528aaa44bf27f4c5eb0c0eaeb29c18c9e735023e892c3ccc@178.128.203.243:30303",
"enode://d2b77d96763ae59ad1ca6206cff48da5c40b9f289bd501db4df589b72cb877193280f8f79111aebb4cefec32b07ccfab8646821d8a29ecae8ea0124c8f23bdd3@142.93.173.170:30303",
"enode://87f7d55159c662bf8e9d1246386a75175ecefc3c2b19275afeeda95126a3a31e2a46d22894a3357aa964efdfd5d6144885ce525fc53fc9edbe7cd71cfa3ac4a4@164.92.174.56:30303")
"enode://9246d00bc8fd1742e5ad2428b80fc4dc45d786283e05ef6edbd9002cbc335d40998444732fbe921cb88e1d2c73d1b1de53bae6a2237996e9bfe14f871baf7066@18.168.182.86:30303",
"enode://ec66ddcf1a974950bd4c782789a7e04f8aa7110a72569b6e65fcd51e937e74eed303b1ea734e4d19cfaec9fbff9b6ee65bf31dcb50ba79acce9dd63a6aca61c7@52.14.151.177:30303")
.map(EnodeURLImpl::fromString)
.collect(toList()));
public static final List<EnodeURL> CLASSIC_BOOTSTRAP_NODES =
Expand Down Expand Up @@ -201,10 +182,4 @@ public class DefaultDiscoveryConfiguration {
)
.map(EnodeURLImpl::fromString)
.collect(toList()));
public static final List<EnodeURL> ASTOR_BOOTSTRAP_NODES =
Collections.unmodifiableList(
Stream.of(
"enode://b638fc3dca6181ae97fac2ea0157e8330f5ac8a20c0d4c63aa6f98dcbac4e35b4e023f656757b58c1da7a7b2be9ffad9342e0f769b8cf0f5e35ff73116ff7dfd@3.16.171.213:30303")
.map(EnodeURLImpl::fromString)
.collect(toList()));
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,21 +41,21 @@
@RunWith(MockitoJUnitRunner.class)
public class LocalPermissioningConfigurationValidatorTest {

static final String PERMISSIONING_CONFIG_ROPSTEN_BOOTNODES =
"/permissioning_config_ropsten_bootnodes.toml";
static final String PERMISSIONING_CONFIG_SEPOLIA_BOOTNODES =
"/permissioning_config_sepolia_bootnodes.toml";
static final String PERMISSIONING_CONFIG = "/permissioning_config.toml";
static final String PERMISSIONING_CONFIG_VALID_HOSTNAME =
"/permissioning_config_valid_hostname.toml";
static final String PERMISSIONING_CONFIG_UNKNOWN_HOSTNAME =
"/permissioning_config_unknown_hostname.toml";

@Test
public void ropstenWithNodesAllowlistOptionWhichDoesIncludeRopstenBootnodesMustNotError()
public void spoliaWithNodesAllowlistOptionWhichDoesIncludeRopstenBootnodesMustNotError()
throws Exception {

EthNetworkConfig ethNetworkConfig = EthNetworkConfig.getNetworkConfig(NetworkName.ROPSTEN);
EthNetworkConfig ethNetworkConfig = EthNetworkConfig.getNetworkConfig(NetworkName.SEPOLIA);

final URL configFile = this.getClass().getResource(PERMISSIONING_CONFIG_ROPSTEN_BOOTNODES);
final URL configFile = this.getClass().getResource(PERMISSIONING_CONFIG_SEPOLIA_BOOTNODES);
final Path toml = Files.createTempFile("toml", "");
Files.write(toml, Resources.toByteArray(configFile));

Expand All @@ -75,7 +75,7 @@ public void ropstenWithNodesAllowlistOptionWhichDoesIncludeRopstenBootnodesMustN
@Test
public void nodesAllowlistOptionWhichDoesNotIncludeBootnodesMustError() throws Exception {

EthNetworkConfig ethNetworkConfig = EthNetworkConfig.getNetworkConfig(NetworkName.ROPSTEN);
EthNetworkConfig ethNetworkConfig = EthNetworkConfig.getNetworkConfig(NetworkName.SEPOLIA);

final URL configFile = this.getClass().getResource(PERMISSIONING_CONFIG);
final Path toml = Files.createTempFile("toml", "");
Expand All @@ -94,15 +94,15 @@ public void nodesAllowlistOptionWhichDoesNotIncludeBootnodesMustError() throws E
final List<EnodeURL> enodeURIs = ethNetworkConfig.getBootNodes();
PermissioningConfigurationValidator.areAllNodesAreInAllowlist(
enodeURIs, permissioningConfiguration);
fail("expected exception because ropsten bootnodes are not in node-allowlist");
fail("expected exception because sepolia bootnodes are not in node-allowlist");
} catch (Exception e) {
assertThat(e.getMessage()).startsWith("Specified node(s) not in nodes-allowlist");
assertThat(e.getMessage())
.contains(
"enode://6332792c4a00e3e4ee0926ed89e0d27ef985424d97b6a45bf0f23e51f0dcb5e66b875777506458aea7af6f9e4ffb69f43f3778ee73c81ed9d34c51c4b16b0b0f@52.232.243.152:30303");
"enode://9246d00bc8fd1742e5ad2428b80fc4dc45d786283e05ef6edbd9002cbc335d40998444732fbe921cb88e1d2c73d1b1de53bae6a2237996e9bfe14f871baf7066@18.168.182.86:30303");
assertThat(e.getMessage())
.contains(
"enode://94c15d1b9e2fe7ce56e458b9a3b672ef11894ddedd0c6f247e0f1d3487f52b66208fb4aeb8179fce6e3a749ea93ed147c37976d67af557508d199d9594c35f09@192.81.208.223:30303");
"enode://ec66ddcf1a974950bd4c782789a7e04f8aa7110a72569b6e65fcd51e937e74eed303b1ea734e4d19cfaec9fbff9b6ee65bf31dcb50ba79acce9dd63a6aca61c7@52.14.151.177:30303");
}
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Permissioning TOML file

accounts-allowlist = ["0x0000000000000000000000000000000000000009"]
nodes-allowlist = [
"enode://9246d00bc8fd1742e5ad2428b80fc4dc45d786283e05ef6edbd9002cbc335d40998444732fbe921cb88e1d2c73d1b1de53bae6a2237996e9bfe14f871baf7066@18.168.182.86:30303",
"enode://ec66ddcf1a974950bd4c782789a7e04f8aa7110a72569b6e65fcd51e937e74eed303b1ea734e4d19cfaec9fbff9b6ee65bf31dcb50ba79acce9dd63a6aca61c7@52.14.151.177:30303"]
Loading