diff --git a/config/src/main/java/org/hyperledger/besu/config/GenesisConfigOptions.java b/config/src/main/java/org/hyperledger/besu/config/GenesisConfigOptions.java
index 4e4088788cf..ab49d1aaea6 100644
--- a/config/src/main/java/org/hyperledger/besu/config/GenesisConfigOptions.java
+++ b/config/src/main/java/org/hyperledger/besu/config/GenesisConfigOptions.java
@@ -139,16 +139,15 @@ public interface GenesisConfigOptions {
OptionalLong getAghartaBlockNumber();
/**
- * Block number for Aztlán fork on Classic network. Aztlán EVM and Protocol Upgrades (Yingchun
- * Edition) Enable the outstanding Ethereum Foundation Istanbul network protocol upgrades on the
- * Ethereum Classic network without any gas-cost assumptions in a hard-fork code-named Aztlán
- * (Yingchun Edition) to enable maximum compatibility across these networks.
+ * Block number for Phoenix fork on Classic networks. Enable the outstanding Ethereum Foundation
+ * Istanbul network protocol upgrades on the Ethereum Classic network in a hard-fork code-named
+ * Phoenix to enable maximum compatibility across these networks.
*
* @see https://ecips.ethereumclassic.org/ECIPs/ecip-1061
- * @return block number for Atzlan fork on Classic network
+ * href="https://ecips.ethereumclassic.org/ECIPs/ecip-1088">https://ecips.ethereumclassic.org/ECIPs/ecip-1088
+ * @return block number of Phoenix fork on Classic networks
*/
- OptionalLong getAztlanBlockNumber();
+ OptionalLong getPhoenixBlockNumber();
Optional getChainId();
diff --git a/config/src/main/java/org/hyperledger/besu/config/JsonGenesisConfigOptions.java b/config/src/main/java/org/hyperledger/besu/config/JsonGenesisConfigOptions.java
index 149f127c9e2..e90604f6992 100644
--- a/config/src/main/java/org/hyperledger/besu/config/JsonGenesisConfigOptions.java
+++ b/config/src/main/java/org/hyperledger/besu/config/JsonGenesisConfigOptions.java
@@ -236,8 +236,8 @@ public OptionalLong getAghartaBlockNumber() {
}
@Override
- public OptionalLong getAztlanBlockNumber() {
- return getOptionalLong("aztlanblock");
+ public OptionalLong getPhoenixBlockNumber() {
+ return getOptionalLong("phoenixblock");
}
@Override
diff --git a/config/src/main/java/org/hyperledger/besu/config/StubGenesisConfigOptions.java b/config/src/main/java/org/hyperledger/besu/config/StubGenesisConfigOptions.java
index a01b429c66f..a14329827c2 100644
--- a/config/src/main/java/org/hyperledger/besu/config/StubGenesisConfigOptions.java
+++ b/config/src/main/java/org/hyperledger/besu/config/StubGenesisConfigOptions.java
@@ -40,7 +40,7 @@ public class StubGenesisConfigOptions implements GenesisConfigOptions {
private final OptionalLong defuseDifficultyBombBlockNumber = OptionalLong.empty();
private final OptionalLong atlantisBlockNumber = OptionalLong.empty();
private final OptionalLong aghartaBlockNumber = OptionalLong.empty();
- private final OptionalLong aztlanBlockNumber = OptionalLong.empty();
+ private final OptionalLong phoenixBlockNumber = OptionalLong.empty();
private Optional chainId = Optional.empty();
private OptionalInt contractSizeLimit = OptionalInt.empty();
private OptionalInt stackSizeLimit = OptionalInt.empty();
@@ -171,8 +171,8 @@ public OptionalLong getAghartaBlockNumber() {
}
@Override
- public OptionalLong getAztlanBlockNumber() {
- return aztlanBlockNumber;
+ public OptionalLong getPhoenixBlockNumber() {
+ return phoenixBlockNumber;
}
@Override
diff --git a/config/src/main/resources/classic.json b/config/src/main/resources/classic.json
index 545eee4b140..712bbc0acbc 100644
--- a/config/src/main/resources/classic.json
+++ b/config/src/main/resources/classic.json
@@ -9,7 +9,7 @@
"ecip1041Block": 5900000,
"atlantisBlock": 8772000,
"aghartaBlock": 9573000,
- "aztlanBlock": 10500839,
+ "phoenixBlock": 10500839,
"ethash": {
}
diff --git a/config/src/main/resources/kotti.json b/config/src/main/resources/kotti.json
index 9439a9d7833..d809428702e 100644
--- a/config/src/main/resources/kotti.json
+++ b/config/src/main/resources/kotti.json
@@ -4,7 +4,7 @@
"ecip1041Block": 0,
"atlantisBlock": 716617,
"aghartaBlock": 1705549,
- "aztlanBlock": 2058191,
+ "phoenixBlock": 2200013,
"clique":{
"blockperiodseconds":15,
"epochlength":30000
diff --git a/config/src/main/resources/mordor.json b/config/src/main/resources/mordor.json
index 8baae7d311e..83e527bcdb0 100644
--- a/config/src/main/resources/mordor.json
+++ b/config/src/main/resources/mordor.json
@@ -3,7 +3,7 @@
"chainId": 63,
"atlantisBlock": 0,
"aghartaBlock": 301243,
- "aztlanBlock": 778507,
+ "phoenixBlock": 999983,
"ethash": {}
},
"nonce": "0x0000000000000000",
diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/AztlanGasCalculator.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/AztlanGasCalculator.java
deleted file mode 100644
index 0c7db03a9dc..00000000000
--- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/AztlanGasCalculator.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright ConsenSys AG.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
- * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- */
-package org.hyperledger.besu.ethereum.mainnet;
-
-import org.hyperledger.besu.ethereum.core.Gas;
-
-/*
- * This class implements changes to gas calculation for ECIP-1061 https://ecips.ethereumclassic.org/ECIPs/ecip-1061
- * ECIP-1061 is EIP-1679 without EIP-1884 implemented, this class reverses the changes made in EIP-1884.
- */
-public class AztlanGasCalculator extends IstanbulGasCalculator {
- private static final Gas BALANCE_OPERATION_GAS_COST = Gas.of(400);
- private static final Gas EXTCODE_HASH_COST = Gas.of(400);
- private static final Gas SLOAD_GAS = Gas.of(200);
-
- @Override
- // As per https://eips.ethereum.org/EIPS/eip-1884
- public Gas getSloadOperationGasCost() {
- return SLOAD_GAS;
- }
-
- @Override
- public Gas getBalanceOperationGasCost() {
- return BALANCE_OPERATION_GAS_COST;
- }
-
- @Override
- public Gas extCodeHashOperationGasCost() {
- return EXTCODE_HASH_COST;
- }
-}
diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ClassicProtocolSpecs.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ClassicProtocolSpecs.java
index 351cdc62a73..eb82751e68d 100644
--- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ClassicProtocolSpecs.java
+++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ClassicProtocolSpecs.java
@@ -149,19 +149,19 @@ public static ProtocolSpecBuilder aghartaDefinition(
.name("Agharta");
}
- public static ProtocolSpecBuilder aztlanDefinition(
+ public static ProtocolSpecBuilder phoenixDefinition(
final Optional chainId,
final OptionalInt configContractSizeLimit,
final OptionalInt configStackSizeLimit,
final boolean enableRevertReason) {
return aghartaDefinition(
chainId, configContractSizeLimit, configStackSizeLimit, enableRevertReason)
- .gasCalculator(AztlanGasCalculator::new)
+ .gasCalculator(IstanbulGasCalculator::new)
.evmBuilder(
gasCalculator ->
- MainnetEvmRegistries.aztlan(gasCalculator, chainId.orElse(BigInteger.ZERO)))
+ MainnetEvmRegistries.istanbul(gasCalculator, chainId.orElse(BigInteger.ZERO)))
.precompileContractRegistryBuilder(MainnetPrecompiledContractRegistries::istanbul)
- .name("Aztlan");
+ .name("Phoenix");
}
private static TransactionReceipt byzantiumTransactionReceiptFactory(
diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/MainnetEvmRegistries.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/MainnetEvmRegistries.java
index b975deddbb0..2f96675ca2a 100644
--- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/MainnetEvmRegistries.java
+++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/MainnetEvmRegistries.java
@@ -144,14 +144,6 @@ static EVM istanbul(final GasCalculator gasCalculator, final BigInteger chainId)
return new EVM(registry, gasCalculator);
}
- static EVM aztlan(final GasCalculator gasCalculator, final BigInteger chainId) {
- final OperationRegistry registry = new OperationRegistry();
-
- registerAztlanOpcodes(registry, gasCalculator, Account.DEFAULT_VERSION, chainId);
-
- return new EVM(registry, gasCalculator);
- }
-
private static void registerFrontierOpcodes(
final OperationRegistry registry,
final GasCalculator gasCalculator,
@@ -286,18 +278,4 @@ private static void registerIstanbulOpcodes(
new SStoreOperation(gasCalculator, SStoreOperation.EIP_1706_MINIMUM),
Account.DEFAULT_VERSION);
}
-
- private static void registerAztlanOpcodes(
- final OperationRegistry registry,
- final GasCalculator gasCalculator,
- final int accountVersion,
- final BigInteger chainId) {
- registerConstantinopleOpcodes(registry, gasCalculator, accountVersion);
- registry.put(
- new ChainIdOperation(gasCalculator, Bytes32.leftPad(Bytes.of(chainId.toByteArray()))),
- Account.DEFAULT_VERSION);
- registry.put(
- new SStoreOperation(gasCalculator, SStoreOperation.EIP_1706_MINIMUM),
- Account.DEFAULT_VERSION);
- }
}
diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ProtocolScheduleBuilder.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ProtocolScheduleBuilder.java
index 20d7e24d666..039b1464f70 100644
--- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ProtocolScheduleBuilder.java
+++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ProtocolScheduleBuilder.java
@@ -213,8 +213,8 @@ public ProtocolSchedule createProtocolSchedule() {
isRevertReasonEnabled));
addProtocolSpec(
protocolSchedule,
- config.getAztlanBlockNumber(),
- ClassicProtocolSpecs.aztlanDefinition(
+ config.getPhoenixBlockNumber(),
+ ClassicProtocolSpecs.phoenixDefinition(
chainId,
config.getContractSizeLimit(),
config.getEvmStackSize(),
@@ -294,7 +294,7 @@ private void validateClassicForkOrdering() {
"DefuseDifficultyBomb", config.getDefuseDifficultyBombBlockNumber(), lastForkBlock);
lastForkBlock = validateForkOrder("Atlantis", config.getAtlantisBlockNumber(), lastForkBlock);
lastForkBlock = validateForkOrder("Agharta", config.getAghartaBlockNumber(), lastForkBlock);
- lastForkBlock = validateForkOrder("Aztlan", config.getAztlanBlockNumber(), lastForkBlock);
+ lastForkBlock = validateForkOrder("Phoenix", config.getPhoenixBlockNumber(), lastForkBlock);
assert (lastForkBlock >= 0);
}
}
diff --git a/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/config/DiscoveryConfiguration.java b/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/config/DiscoveryConfiguration.java
index aae9da327ae..26db577b84f 100644
--- a/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/config/DiscoveryConfiguration.java
+++ b/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/config/DiscoveryConfiguration.java
@@ -116,16 +116,32 @@ public class DiscoveryConfiguration {
public static List MORDOR_BOOTSTRAP_NODES =
Collections.unmodifiableList(
Stream.of(
- "enode://2b69a3926f36a7748c9021c34050be5e0b64346225e477fe7377070f6289bd363b2be73a06010fd516e6ea3ee90778dd0399bc007bb1281923a79374f842675a@51.15.116.226:30303",
- "enode://a59e33ccd2b3e52d578f1fbd70c6f9babda2650f0760d6ff3b37742fdcdfdb3defba5d56d315b40c46b70198c7621e63ffa3f987389c7118634b0fefbbdfa7fd@51.158.191.43:38556",
- "enode://5a1399e6ba3268721dd7656530cd81230dbeb950570c6e3ec2a45effc50c032f66633c5eaaa1a49c51ba1849db37a7bef6e402779ad12dc9943f117e058d7760@34.69.121.227:30303",
+ "enode://642cf9650dd8869d42525dbf6858012e3b4d64f475e733847ab6f7742341a4397414865d953874e8f5ed91b0e4e1c533dee14ad1d6bb276a5459b2471460ff0d@157.230.152.87:30303",
+ "enode://651b484b652c07c72adebfaaf8bc2bd95b420b16952ef3de76a9c00ef63f07cca02a20bd2363426f9e6fe372cef96a42b0fec3c747d118f79fd5e02f2a4ebd4e@51.158.190.99:45678",
+ "enode://859ed8c19ea04eaea41f1cf17c8d2710e2e0affb97328c8392a79f1764118edf2344f1941299f0d676772fa6054447e6f9b3af96444e350b417442bfd7cc832b@34.68.243.226:30303",
+ "enode://9b1bf9613d859ac2071d88509ab40a111b75c1cfc51f4ad78a1fdbb429ff2405de0dc5ea8ae75e6ac88e03e51a465f0b27b517e78517f7220ae163a2e0692991@51.158.190.99:30426",
+ "enode://534d18fd46c5cd5ba48a68250c47cea27a1376869755ed631c94b91386328039eb607cf10dd8d0aa173f5ec21e3fb45c5d7a7aa904f97bc2557e9cb4ccc703f1@51.158.190.99:30303",
+ "enode://0d70715514674189792de4ad294b658c96d0ec40fe517fbe9cb7949d3792f25f82357ec77d1bd8bed6ec719ca0c1d608bb34cc702bf3d4bb4507f7280f835452@154.5.137.161:61410",
+ "enode://f50f52b5fe18fd281748905bf5dad5439471f32cc02d99fecf960a983c1f4eba701ffca96afd2f2a68dcf6f97c5d02b566bafce1f361b51717e1a03c1dd9a836@157.230.42.102:30303",
+ "enode://111bd28d5b2c1378d748383fd83ff59572967c317c3063a9f475a26ad3f1517642a164338fb5268d4e32ea1cc48e663bd627dec572f1d201c7198518e5a506b1@88.99.216.30:45834",
+ "enode://07fa944c83597d5e935a2abe6194ed40fc7239e86111c971a43537a33d0184d1cd1b3f1291b8dd3bcfaebfbb802de77c843465a00065b39120c338fdd877ca4a@35.238.126.60:51240",
+ "enode://4ca79bbff7491fed82221259e3f27492e27b95b600594e2f8d5f1fa011123ea267e71873a0db3993e5109845d519d8b849ba2c7e4b48b09bedebb99e1c2ce304@35.238.132.8:30303",
+ "enode://06fdbeb591d26f53b2e7250025fe955ca013431ded930920cf1e3cd1f0c920e9a5e727949d209bc25a07288327b525279b11c5551315c50ff0db483e69fc159b@34.218.225.178:32000",
"enode://03b133f731049e3f7be827339c3759be92778c05e54a1847d178c0fdb56fa168aa1e7e61fc77791a7afdd0328a00318f73c01212eb3f3bbe919f5ce8f5b4a314@192.227.105.4:32000",
- "enode://621e28e529146fd501709194885f50540c494f1a2985d1fb4ec8769226b5cb0b0d1a11545926077821474c2767cdd87888ead8a2509a2c9069dd5584e4b1c3b8@10.28.223.8:30000",
"enode://2592745efd35b4be443b8ee25fd2099de132e037951f9f6d3e8805e0a78f213537f71264b973f1a83a57372f57bbe6acac8d6ae678f39393221c045ccbe3b18c@51.15.116.226:30304",
- "enode://a59e33ccd2b3e52d578f1fbd70c6f9babda2650f0760d6ff3b37742fdcdfdb3defba5d56d315b40c46b70198c7621e63ffa3f987389c7118634b0fefbbdfa7fd@51.15.116.226:30303",
+ "enode://c0afb552bfe932c72598caa245aef82d55c23555622c5ab946d4e49bb0ab694e46086dcff6793a606527f323ef94d0eb499d01ceb26aefb6fa3f8977105d7dd8@157.230.152.87:52138",
+ "enode://5a1399e6ba3268721dd7656530cd81230dbeb950570c6e3ec2a45effc50c032f66633c5eaaa1a49c51ba1849db37a7bef6e402779ad12dc9943f117e058d7760@35.225.124.17:39306",
+ "enode://15b6ae4e9e18772f297c90d83645b0fbdb56667ce2d747d6d575b21d7b60c2d3cd52b11dec24e418438caf80ddc433232b3685320ed5d0e768e3972596385bfc@51.158.191.43:41235",
+ "enode://5a1399e6ba3268721dd7656530cd81230dbeb950570c6e3ec2a45effc50c032f66633c5eaaa1a49c51ba1849db37a7bef6e402779ad12dc9943f117e058d7760@34.69.121.227:30303",
+ "enode://f840b007500f50c98ea6f9c9e56dabf4690bbbbb7036d43682c531204341aff8315013547e5bee54117eb22bd3603585ae6bf713d9fa710659533fcab65d5b84@34.69.50.155:42078",
+ "enode://b45f008ab8ad73966d0c8c0c923c50f47c0ae50c37a9ea05cc28b00cb94802145a4158412a526fdadd7e539db5eaab72f06a9046a34576ecf5a68efc41ba9d01@34.68.40.145:30303",
+ "enode://014ebf612cd362d87215d8668bd34a6db6c009a5b77c01e05fe638948054ebe91684ce05f1baf384ae9964316b9ac0eaf87dc43edd7e63467fb0b34db0f2c1d7@51.158.190.99:34567",
+ "enode://1f378945c9b2eeb292d910f461911fd99520a23beda1bc5c8aea12be09e249f8d92615aa3d4d75c938004db5281dabad4a9cf7a0f07ec7c1fc8e7721addc7c85@34.205.41.164:40218",
+ "enode://2b69a3926f36a7748c9021c34050be5e0b64346225e477fe7377070f6289bd363b2be73a06010fd516e6ea3ee90778dd0399bc007bb1281923a79374f842675a@51.15.116.226:30303",
+ "enode://a59e33ccd2b3e52d578f1fbd70c6f9babda2650f0760d6ff3b37742fdcdfdb3defba5d56d315b40c46b70198c7621e63ffa3f987389c7118634b0fefbbdfa7fd@51.158.191.43:38556",
"enode://f840b007500f50c98ea6f9c9e56dabf4690bbbbb7036d43682c531204341aff8315013547e5bee54117eb22bd3603585ae6bf713d9fa710659533fcab65d5b84@35.238.101.58:30303",
- "enode://1813e90a0afdd7c1e4892c5376960e3577a9e6c5a4f86fa405a405c7421a4a1608248d77cc90333842f13d8954d82113dec480cfb76b4fef8cb475157cf4d5f2@10.28.224.3:30000",
- "enode://06fdbeb591d26f53b2e7250025fe955ca013431ded930920cf1e3cd1f0c920e9a5e727949d209bc25a07288327b525279b11c5551315c50ff0db483e69fc159b@34.218.225.178:32000")
+ "enode://07fa944c83597d5e935a2abe6194ed40fc7239e86111c971a43537a33d0184d1cd1b3f1291b8dd3bcfaebfbb802de77c843465a00065b39120c338fdd877ca4a@35.238.126.60:30000",
+ "enode://617a2009783a09085ed0d5d5e7250e2e3c142f73448bf28200284bf4825c5926a80f3e9fb481edf38b89ade2aa0ad5a2f14cc935f3150e36e648eddda674fd70@35.225.5.185:51320")
.map(EnodeURL::fromString)
.collect(toList()));