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

Burn in candidate for 23.7.3 #5906

Merged
merged 34 commits into from
Sep 20, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
d584aab
Drop Kotti Network support (ETC) (#5816)
diega Aug 28, 2023
dd2ad35
fix ForkId if there are no Forks and the starting timestamp is not 0 …
pinges Aug 29, 2023
fdeae23
enforce that BlobTransactions have at least one blob (#5826)
pinges Aug 30, 2023
474250c
Do not create ignorable segments on `revert storage-variables` (#5830)
garyschulte Aug 31, 2023
1b2fbce
add versioned hashes and number of blobs to toString() (#5831)
pinges Sep 1, 2023
827abdc
add parent beacon block root to payload id calculation (#5843)
pinges Sep 5, 2023
c42873b
bump version to 23.7.3-SNAPSHOT (#5854)
daniellehrner Sep 6, 2023
9b37763
set the beacon root address to the correct value (#5853)
pinges Sep 6, 2023
476617c
docs(readme): fix broken link to installation of binaries page (#5859)
petermetz Sep 7, 2023
0d5a643
Update RocksDB version from 8.0.0 to 8.3.2 (#5832)
ahamlat Sep 7, 2023
486eaad
use non-deprecated authenticate methods (#5852)
macfarla Sep 7, 2023
2326df4
move to Hyperledger shared runners for current github actions (#5860)
garyschulte Sep 7, 2023
d4ae08f
Add range tracing with worldstate (#5844)
matkt Sep 8, 2023
2412379
Layered txpool by default and txpool options hoverhaul (#5772)
fab-10 Sep 11, 2023
832f02e
Fix issue 5824 - Duplicate key errors in EthScheduler-Transactions (#…
ahamlat Sep 11, 2023
5032e73
updated gradle verification metadata (#5870)
macfarla Sep 13, 2023
951b09d
[4844] Add encodingContext to TransactionEncoder and TransactionDecod…
Gabriel-Trintinalia Sep 13, 2023
880914b
#5868: fix beacon root address and modulus for devnet 9 (#5871)
pinges Sep 13, 2023
eb2c430
payload attributes: fix wrong warning and fail if beacon root is avai…
pinges Sep 13, 2023
9ec9fcb
Merge MutableAccount and EVMAccount (#5863)
shemnon Sep 13, 2023
4ea60b2
Add world context to transaction tracing API (#5836)
delehef Sep 14, 2023
e4dd06e
Bonsai based reference test worldstate (#5686)
garyschulte Sep 14, 2023
32c8e2b
Don't start BFT mining coordinators until initial sync has completed …
matthew1001 Sep 15, 2023
5770fd9
display only peers ready for requets on ethstats (#5880)
matkt Sep 15, 2023
ec846e2
[MINOR] test RLP used for encode/decode blob tx should contain to fie…
macfarla Sep 15, 2023
36df90a
Fix: correctly convert percentage options in TOML configuration file …
fab-10 Sep 17, 2023
8f31b77
EIP7516 - Add BlobBaseFee opcode to Cancun EVM (#5884)
Gabriel-Trintinalia Sep 18, 2023
cc2904d
Fix snapsync heal (#5838)
matkt Sep 18, 2023
ea9a6d6
Upgrade besu-native (#5893)
shemnon Sep 19, 2023
c8bb644
Tune G1GC to reduce Besu memory footprint (#5879)
fab-10 Sep 19, 2023
d4aeaea
Add updated storage to evmtool json trace (#5892)
shemnon Sep 19, 2023
fd499a3
Update holesky with fixed extraData, genesis time, shanghaiTime (#5890)
siladu Sep 20, 2023
7c1acf7
[CHANGELOG] removed duplicated line (#5904)
macfarla Sep 20, 2023
7372e74
add 23.7.2 release SHAs and bump to 23.7.3-23.7.3-23.7.3-23.7.3-23.7.…
garyschulte Sep 20, 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
Prev Previous commit
Next Next commit
EIP7516 - Add BlobBaseFee opcode to Cancun EVM (#5884)
Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Signed-off-by: garyschulte <garyschulte@gmail.com>
  • Loading branch information
Gabriel-Trintinalia authored and garyschulte committed Sep 20, 2023
commit 8f31b77f6b2f15038427e402622db529546f8059
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,7 @@ public TransactionProcessingResult processTransaction(
.initialGas(gasAvailable)
.originator(senderAddress)
.gasPrice(transactionGasPrice)
.blobGasPrice(blobGasPrice)
.sender(senderAddress)
.value(transaction.getValue())
.apparentValue(transaction.getValue())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ public class MessageFrameTestFixture {
private Address originator = DEFAUT_ADDRESS;
private Address contract = DEFAUT_ADDRESS;
private Wei gasPrice = Wei.ZERO;
private Wei blobGasPrice = Wei.ZERO;
private Wei value = Wei.ZERO;
private Bytes inputData = Bytes.EMPTY;
private Code code = CodeV0.EMPTY_CODE;
Expand Down Expand Up @@ -117,6 +118,11 @@ public MessageFrameTestFixture gasPrice(final Wei gasPrice) {
return this;
}

public MessageFrameTestFixture blobGasPrice(final Wei blobGasPrice) {
this.blobGasPrice = blobGasPrice;
return this;
}

public MessageFrameTestFixture value(final Wei value) {
this.value = value;
return this;
Expand Down Expand Up @@ -160,6 +166,7 @@ public MessageFrame build() {
.address(address)
.originator(originator)
.gasPrice(gasPrice)
.blobGasPrice(blobGasPrice)
.inputData(inputData)
.sender(sender)
.value(value)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,12 @@ void setBytes(final String optionValue) {
paramLabel = "<int>")
private final Wei gasPriceGWei = Wei.ZERO;

@Option(
names = {"--blob-price"},
description = "Price of blob gas for this invocation",
paramLabel = "<int>")
private final Wei blobGasPrice = Wei.ZERO;

@Option(
names = {"--sender"},
paramLabel = "<address>",
Expand Down Expand Up @@ -376,6 +382,7 @@ public void run() {
.originator(sender)
.sender(sender)
.gasPrice(gasPriceGWei)
.blobGasPrice(blobGasPrice)
.inputData(callData)
.value(ethValue)
.apparentValue(ethValue)
Expand Down
4 changes: 4 additions & 0 deletions evm/src/main/java/org/hyperledger/besu/evm/MainnetEVMs.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import org.hyperledger.besu.evm.operation.AndOperation;
import org.hyperledger.besu.evm.operation.BalanceOperation;
import org.hyperledger.besu.evm.operation.BaseFeeOperation;
import org.hyperledger.besu.evm.operation.BlobBaseFeeOperation;
import org.hyperledger.besu.evm.operation.BlobHashOperation;
import org.hyperledger.besu.evm.operation.BlockHashOperation;
import org.hyperledger.besu.evm.operation.ByteOperation;
Expand Down Expand Up @@ -856,6 +857,9 @@ public static void registerCancunOperations(

// EIP-6780 nerf self destruct
registry.put(new SelfDestructOperation(gasCalculator, true));

// EIP-7516 BLOBBASEFEE
registry.put(new BlobBaseFeeOperation(gasCalculator));
}

/**
Expand Down
13 changes: 13 additions & 0 deletions evm/src/main/java/org/hyperledger/besu/evm/fluent/EVMExecutor.java
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ public class EVMExecutor {
private Address receiver = Address.ZERO;
private Address sender = Address.ZERO;
private Wei gasPriceGWei = Wei.ZERO;
private Wei blobGasPrice = Wei.ZERO;
private Bytes callData = Bytes.EMPTY;
private Wei ethValue = Wei.ZERO;
private Code code = CodeV0.EMPTY_CODE;
Expand Down Expand Up @@ -354,6 +355,7 @@ public Bytes execute() {
.originator(sender)
.sender(sender)
.gasPrice(gasPriceGWei)
.blobGasPrice(blobGasPrice)
.inputData(callData)
.value(ethValue)
.apparentValue(ethValue)
Expand Down Expand Up @@ -457,6 +459,17 @@ public EVMExecutor gasPriceGWei(final Wei gasPriceGWei) {
return this;
}

/**
* Sets Blob Gas price.
*
* @param blobGasPrice the blob gas price g wei
* @return the evm executor
*/
public EVMExecutor blobGasPrice(final Wei blobGasPrice) {
this.blobGasPrice = blobGasPrice;
return this;
}

/**
* Sets Call data.
*
Expand Down
23 changes: 23 additions & 0 deletions evm/src/main/java/org/hyperledger/besu/evm/frame/MessageFrame.java
Original file line number Diff line number Diff line change
Expand Up @@ -1134,6 +1134,15 @@ public Wei getGasPrice() {
return txValues.gasPrice();
}

/**
* Returns the current blob gas price.
*
* @return the current blob gas price
*/
public Wei getBlobGasPrice() {
return txValues.blobGasPrice();
}

/**
* Returns the recipient of the sender.
*
Expand Down Expand Up @@ -1365,6 +1374,7 @@ public static class Builder {
private Address originator;
private Address contract;
private Wei gasPrice;
private Wei blobGasPrice = Wei.ZERO;
private Bytes inputData;
private Address sender;
private Wei value;
Expand Down Expand Up @@ -1472,6 +1482,17 @@ public Builder gasPrice(final Wei gasPrice) {
return this;
}

/**
* Sets Blob Gas price.
*
* @param blobGasPrice the blob gas price
* @return the builder
*/
public Builder blobGasPrice(final Wei blobGasPrice) {
this.blobGasPrice = blobGasPrice;
return this;
}

/**
* Sets Input data.
*
Expand Down Expand Up @@ -1653,6 +1674,7 @@ private void validate() {
checkState(worldUpdater != null, "Missing message frame world updater");
checkState(originator != null, "Missing message frame originator");
checkState(gasPrice != null, "Missing message frame getGasRemaining price");
checkState(blobGasPrice != null, "Missing message frame blob gas price");
checkState(blockValues != null, "Missing message frame block header");
checkState(miningBeneficiary != null, "Missing mining beneficiary");
checkState(blockHashLookup != null, "Missing block hash lookup");
Expand Down Expand Up @@ -1689,6 +1711,7 @@ public MessageFrame build() {
UndoTable.of(HashBasedTable.create()),
originator,
gasPrice,
blobGasPrice,
blockValues,
new ArrayDeque<>(),
miningBeneficiary,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public record TxValues(
UndoTable<Address, Bytes32, Boolean> warmedUpStorage,
Address originator,
Wei gasPrice,
Wei blobGasPrice,
BlockValues blockValues,
Deque<MessageFrame> messageFrameStack,
Address miningBeneficiary,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*
* Copyright contributors to Hyperledger Besu
*
* 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.evm.operation;

import org.hyperledger.besu.datatypes.Wei;
import org.hyperledger.besu.evm.EVM;
import org.hyperledger.besu.evm.frame.MessageFrame;
import org.hyperledger.besu.evm.gascalculator.GasCalculator;

/** The Blob Base fee operation. */
public class BlobBaseFeeOperation extends AbstractFixedCostOperation {

/**
* Instantiates a new Blob Base fee operation.
*
* @param gasCalculator the gas calculator
*/
public BlobBaseFeeOperation(final GasCalculator gasCalculator) {
super(0x4a, "BLOBBASEFEE", 0, 1, gasCalculator, gasCalculator.getBaseTierGasCost());
}

@Override
public OperationResult executeFixedCostOperation(final MessageFrame frame, final EVM evm) {

final Wei blobGasPrice = frame.getBlobGasPrice();
frame.pushStackItem(blobGasPrice.toBytes());
return successResponse;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ public class TestMessageFrameBuilder {
private Address originator = DEFAUT_ADDRESS;
private Address contract = DEFAUT_ADDRESS;
private Wei gasPrice = Wei.ZERO;
private Wei blobGasPrice = Wei.ZERO;
private Wei value = Wei.ZERO;
private Bytes inputData = Bytes.EMPTY;
private Code code = CodeV0.EMPTY_CODE;
Expand Down Expand Up @@ -91,6 +92,11 @@ public TestMessageFrameBuilder gasPrice(final Wei gasPrice) {
return this;
}

public TestMessageFrameBuilder blobGasPrice(final Wei blobGasPrice) {
this.blobGasPrice = blobGasPrice;
return this;
}

public TestMessageFrameBuilder value(final Wei value) {
this.value = value;
return this;
Expand Down Expand Up @@ -145,6 +151,7 @@ public MessageFrame build() {
.address(address)
.originator(originator)
.gasPrice(gasPrice)
.blobGasPrice(blobGasPrice)
.inputData(inputData)
.sender(sender)
.value(value)
Expand Down