From 35911fb5c74ec58bd5f92e586b28dfa025d78b1a Mon Sep 17 00:00:00 2001 From: Aere Network Date: Sat, 15 Aug 2026 13:26:35 +0300 Subject: [PATCH] The three patches apply again with plain git apply, proven on a pristine checkout The licence-note edits had normalized whitespace inside hunks, so the recipe this repository tells its reader to run failed at step one with 'patch does not apply'; only --ignore-whitespace passed, and the README nowhere says to use it. Each patch was re-applied to pristine d2032017 with whitespace tolerance, then regenerated from the resulting tree with its prose header kept, and the full sequence 0001, 0003, 0004 was applied with PLAIN git apply on a fresh pristine checkout before this commit was made. --- .../0001-aere-pqc-precompiles-mainnet.patch | 16 +-- patches/0003-aere-pq-anchor.patch | 3 - patches/0004-aere-basefee-floor.patch | 99 ++----------------- 3 files changed, 14 insertions(+), 104 deletions(-) diff --git a/patches/0001-aere-pqc-precompiles-mainnet.patch b/patches/0001-aere-pqc-precompiles-mainnet.patch index 4ed4ef1..d0c8e7f 100644 --- a/patches/0001-aere-pqc-precompiles-mainnet.patch +++ b/patches/0001-aere-pqc-precompiles-mainnet.patch @@ -61,7 +61,7 @@ header. create mode 100644 evm/src/main/java/org/hyperledger/besu/evm/precompile/SLHDSA128sPrecompiledContract.java diff --git a/datatypes/src/main/java/org/hyperledger/besu/datatypes/Address.java b/datatypes/src/main/java/org/hyperledger/besu/datatypes/Address.java -index 950cd59..51397dc 100644 +index 950cd59e3..51397dc38 100644 --- a/datatypes/src/main/java/org/hyperledger/besu/datatypes/Address.java +++ b/datatypes/src/main/java/org/hyperledger/besu/datatypes/Address.java @@ -12,6 +12,21 @@ @@ -110,7 +110,7 @@ index 950cd59..51397dc 100644 diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/AereFalconSupport.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/AereFalconSupport.java new file mode 100644 -index 0000000..1dbb2b8 +index 000000000..011fc2164 --- /dev/null +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/AereFalconSupport.java @@ -0,0 +1,94 @@ @@ -210,7 +210,7 @@ index 0000000..1dbb2b8 +} diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/Falcon1024PrecompiledContract.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/Falcon1024PrecompiledContract.java new file mode 100644 -index 0000000..80aca57 +index 000000000..e383b1f8f --- /dev/null +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/Falcon1024PrecompiledContract.java @@ -0,0 +1,62 @@ @@ -278,7 +278,7 @@ index 0000000..80aca57 +} diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/Falcon512PrecompiledContract.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/Falcon512PrecompiledContract.java new file mode 100644 -index 0000000..5df074c +index 000000000..8c0a07ee6 --- /dev/null +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/Falcon512PrecompiledContract.java @@ -0,0 +1,62 @@ @@ -346,7 +346,7 @@ index 0000000..5df074c +} diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/MLDSA44PrecompiledContract.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/MLDSA44PrecompiledContract.java new file mode 100644 -index 0000000..f25be64 +index 000000000..8c41a2fb1 --- /dev/null +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/MLDSA44PrecompiledContract.java @@ -0,0 +1,84 @@ @@ -435,7 +435,7 @@ index 0000000..f25be64 + } +} diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/MainnetPrecompiledContracts.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/MainnetPrecompiledContracts.java -index 28d84ab..60e55af 100644 +index 28d84abf1..d75afaf57 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/precompile/MainnetPrecompiledContracts.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/MainnetPrecompiledContracts.java @@ -12,6 +12,20 @@ @@ -478,7 +478,7 @@ index 28d84ab..60e55af 100644 } diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/SHAKE256PrecompiledContract.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/SHAKE256PrecompiledContract.java new file mode 100644 -index 0000000..0c20e6a +index 000000000..fe0f0cf32 --- /dev/null +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/SHAKE256PrecompiledContract.java @@ -0,0 +1,93 @@ @@ -577,7 +577,7 @@ index 0000000..0c20e6a +} diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/SLHDSA128sPrecompiledContract.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/SLHDSA128sPrecompiledContract.java new file mode 100644 -index 0000000..2666602 +index 000000000..5e7527aab --- /dev/null +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/SLHDSA128sPrecompiledContract.java @@ -0,0 +1,84 @@ diff --git a/patches/0003-aere-pq-anchor.patch b/patches/0003-aere-pq-anchor.patch index 3101d43..cfee115 100644 --- a/patches/0003-aere-pq-anchor.patch +++ b/patches/0003-aere-pq-anchor.patch @@ -25433,6 +25433,3 @@ index c8eb53639..76c435677 100644 private RangeHeaders processHeaders( final SyncTargetRange checkpointRange, final List headers) { if (checkpointRange.hasEnd()) { --- -2.43.0 - diff --git a/patches/0004-aere-basefee-floor.patch b/patches/0004-aere-basefee-floor.patch index 2705508..9d81ff3 100644 --- a/patches/0004-aere-basefee-floor.patch +++ b/patches/0004-aere-basefee-floor.patch @@ -43,21 +43,10 @@ holders are named in NOTICE, as Apache License 2.0 section 4(d) requires. 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/feemarket/LondonFeeMarket.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/feemarket/LondonFeeMarket.java -index 0ee4f74..83a639c 100644 +index 0ee4f7409..83a639c1b 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/feemarket/LondonFeeMarket.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/feemarket/LondonFeeMarket.java -@@ -1,56 +1,87 @@ - /* - * 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. +@@ -12,6 +12,24 @@ * * SPDX-License-Identifier: Apache-2.0 */ @@ -82,22 +71,7 @@ index 0ee4f74..83a639c 100644 package org.hyperledger.besu.ethereum.mainnet.feemarket; import org.hyperledger.besu.config.GenesisConfig; - import org.hyperledger.besu.datatypes.Wei; - import org.hyperledger.besu.ethereum.core.Transaction; - import org.hyperledger.besu.ethereum.core.feemarket.TransactionPriceCalculator; - - import java.util.Optional; - - import org.apache.tuweni.units.bigints.UInt256s; - import org.slf4j.Logger; - import org.slf4j.LoggerFactory; - - public class LondonFeeMarket implements BaseFeeMarket { - private static final Logger LOG = LoggerFactory.getLogger(LondonFeeMarket.class); - - static final Wei DEFAULT_BASEFEE_INITIAL_VALUE = GenesisConfig.BASEFEE_AT_GENESIS_DEFAULT_VALUE; - static final long DEFAULT_BASEFEE_MAX_CHANGE_DENOMINATOR = 8L; - static final long DEFAULT_SLACK_COEFFICIENT = 2L; +@@ -34,6 +52,19 @@ public class LondonFeeMarket implements BaseFeeMarket { private static final Wei DEFAULT_BASEFEE_FLOOR = Wei.of(7L); @@ -117,41 +91,7 @@ index 0ee4f74..83a639c 100644 protected final Wei baseFeeInitialValue; private final long londonForkBlockNumber; private final TransactionPriceCalculator txPriceCalculator; - private final Wei baseFeeFloor; - - LondonFeeMarket(final long londonForkBlockNumber, final Optional baseFeePerGasOverride) { - this(TransactionPriceCalculator.eip1559(), londonForkBlockNumber, baseFeePerGasOverride); - } - - LondonFeeMarket( - final TransactionPriceCalculator txPriceCalculator, - final long londonForkBlockNumber, - final Optional baseFeePerGasOverride) { - this.txPriceCalculator = txPriceCalculator; - this.londonForkBlockNumber = londonForkBlockNumber; - this.baseFeeInitialValue = baseFeePerGasOverride.orElse(DEFAULT_BASEFEE_INITIAL_VALUE); - this.baseFeeFloor = baseFeeInitialValue.isZero() ? Wei.ZERO : DEFAULT_BASEFEE_FLOOR; - } - - @Override -@@ -66,72 +97,83 @@ public class LondonFeeMarket implements BaseFeeMarket { - @Override - public long getSlackCoefficient() { - return DEFAULT_SLACK_COEFFICIENT; - } - - @Override - public TransactionPriceCalculator getTransactionPriceCalculator() { - return txPriceCalculator; - } - - @Override - public boolean satisfiesFloorTxFee(final Transaction txn) { - // ensure effective baseFee is at least above floor - return txn.getGasPrice() - .map(Optional::of) - .orElse(txn.getMaxFeePerGas()) - .filter(fee -> fee.greaterOrEqualThan(baseFeeFloor)) +@@ -83,6 +114,17 @@ public class LondonFeeMarket implements BaseFeeMarket { .isPresent(); } @@ -169,7 +109,7 @@ index 0ee4f74..83a639c 100644 @Override public Wei computeBaseFee( final long blockNumber, - final Wei parentBaseFee, +@@ -90,13 +132,13 @@ public class LondonFeeMarket implements BaseFeeMarket { final long parentBlockGasUsed, final long targetGasUsed) { if (londonForkBlockNumber == blockNumber) { @@ -185,20 +125,7 @@ index 0ee4f74..83a639c 100644 } else if (parentBlockGasUsed > targetGasUsed) { gasDelta = parentBlockGasUsed - targetGasUsed; final long denominator = getBasefeeMaxChangeDenominator(); - feeDelta = - UInt256s.max( - parentBaseFee.multiply(gasDelta).divide(targetGasUsed).divide(denominator), Wei.ONE); - baseFee = parentBaseFee.add(feeDelta); - } else { - gasDelta = targetGasUsed - parentBlockGasUsed; - final long denominator = getBasefeeMaxChangeDenominator(); - feeDelta = parentBaseFee.multiply(gasDelta).divide(targetGasUsed).divide(denominator); - baseFee = parentBaseFee.subtract(feeDelta); - } - LOG.trace( - "block #{} parentBaseFee: {} parentGasUsed: {} parentGasTarget: {} baseFee: {}", - blockNumber, - parentBaseFee, +@@ -117,7 +159,7 @@ public class LondonFeeMarket implements BaseFeeMarket { parentBlockGasUsed, targetGasUsed, baseFee); @@ -207,17 +134,3 @@ index 0ee4f74..83a639c 100644 } @Override - public ValidationMode baseFeeValidationMode(final long blockNumber) { - return londonForkBlockNumber == blockNumber ? ValidationMode.INITIAL : ValidationMode.ONGOING; - } - - @Override - public ValidationMode gasLimitValidationMode(final long blockNumber) { - return londonForkBlockNumber == blockNumber ? ValidationMode.INITIAL : ValidationMode.ONGOING; - } - - @Override - public boolean isBeforeForkBlock(final long blockNumber) { - return londonForkBlockNumber > blockNumber; - } - }