Skip to content

Commit cf592c4

Browse files
pingesmacfarla
andauthored
implement engine_getBlobsV1 (#7553)
* implement engine_getBlobsV1 Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net> Signed-off-by: Stefan Pingel <16143240+pinges@users.noreply.github.com> Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
1 parent f0d2a66 commit cf592c4

File tree

26 files changed

+532
-21
lines changed

26 files changed

+532
-21
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
### Additions and Improvements
1010
- Update Java and Gradle dependecies [#7571](https://github.com/hyperledger/besu/pull/7571)
1111
- Layered txpool: new options `--tx-pool-min-score` to remove a tx from pool when its score is lower than the specified value [#7576](https://github.com/hyperledger/besu/pull/7576)
12+
- Add `engine_getBlobsV1` method to the Engine API [#7553](https://github.com/hyperledger/besu/pull/7553)
1213

1314
### Bug fixes
1415
- Layered txpool: do not send notifications when moving tx between layers [#7539](https://github.com/hyperledger/besu/pull/7539)
@@ -39,7 +40,7 @@
3940
- Correctly drops messages that exceeds local message size limit [#5455](https://github.com/hyperledger/besu/pull/7507)
4041
- **DebugMetrics**: Fixed a `ClassCastException` occurring in `DebugMetrics` when handling nested metric structures. Previously, `Double` values within these structures were incorrectly cast to `Map` objects, leading to errors. This update allows for proper handling of both direct values and nested structures at the same level. Issue# [#7383](https://github.com/hyperledger/besu/pull/7383)
4142
- `evmtool` was not respecting the `--genesis` setting, resulting in unexpected trace results. [#7433](https://github.com/hyperledger/besu/pull/7433)
42-
- The genesis config override `contractSizeLimit` was not wired into code size limits [#7557](https://github.com/hyperledger/besu/pull/7557)
43+
- The genesis config override `contractSizeLimit`q was not wired into code size limits [#7557](https://github.com/hyperledger/besu/pull/7557)
4344
- Fix incorrect key filtering in LayeredKeyValueStorage stream [#7535](https://github.com/hyperledger/besu/pull/7557)
4445

4546
## 24.8.0

consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/blockcreation/CliqueBlockCreatorTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import org.hyperledger.besu.ethereum.core.Util;
5656
import org.hyperledger.besu.ethereum.eth.manager.EthContext;
5757
import org.hyperledger.besu.ethereum.eth.manager.EthScheduler;
58+
import org.hyperledger.besu.ethereum.eth.transactions.BlobCache;
5859
import org.hyperledger.besu.ethereum.eth.transactions.ImmutableTransactionPoolConfiguration;
5960
import org.hyperledger.besu.ethereum.eth.transactions.TransactionBroadcaster;
6061
import org.hyperledger.besu.ethereum.eth.transactions.TransactionPool;
@@ -245,7 +246,8 @@ private TransactionPool createTransactionPool() {
245246
mock(TransactionBroadcaster.class),
246247
ethContext,
247248
new TransactionPoolMetrics(metricsSystem),
248-
conf);
249+
conf,
250+
new BlobCache());
249251
transactionPool.setEnabled();
250252
return transactionPool;
251253
}

consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/blockcreation/CliqueMinerExecutorTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import org.hyperledger.besu.ethereum.core.Util;
4646
import org.hyperledger.besu.ethereum.eth.manager.EthContext;
4747
import org.hyperledger.besu.ethereum.eth.manager.EthScheduler;
48+
import org.hyperledger.besu.ethereum.eth.transactions.BlobCache;
4849
import org.hyperledger.besu.ethereum.eth.transactions.ImmutableTransactionPoolConfiguration;
4950
import org.hyperledger.besu.ethereum.eth.transactions.TransactionBroadcaster;
5051
import org.hyperledger.besu.ethereum.eth.transactions.TransactionPool;
@@ -233,7 +234,8 @@ private TransactionPool createTransactionPool() {
233234
mock(TransactionBroadcaster.class),
234235
cliqueEthContext,
235236
new TransactionPoolMetrics(metricsSystem),
236-
conf);
237+
conf,
238+
new BlobCache());
237239

238240
transactionPool.setEnabled();
239241
return transactionPool;

consensus/ibft/src/integration-test/java/org/hyperledger/besu/consensus/ibft/support/TestContextBuilder.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484
import org.hyperledger.besu.ethereum.core.Util;
8585
import org.hyperledger.besu.ethereum.eth.manager.EthContext;
8686
import org.hyperledger.besu.ethereum.eth.manager.EthScheduler;
87+
import org.hyperledger.besu.ethereum.eth.transactions.BlobCache;
8788
import org.hyperledger.besu.ethereum.eth.transactions.ImmutableTransactionPoolConfiguration;
8889
import org.hyperledger.besu.ethereum.eth.transactions.TransactionBroadcaster;
8990
import org.hyperledger.besu.ethereum.eth.transactions.TransactionPool;
@@ -371,7 +372,8 @@ private static ControllerAndState createControllerAndFinalState(
371372
mock(TransactionBroadcaster.class),
372373
ethContext,
373374
new TransactionPoolMetrics(metricsSystem),
374-
poolConf);
375+
poolConf,
376+
new BlobCache());
375377

376378
transactionPool.setEnabled();
377379

consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/blockcreation/BftBlockCreatorTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import org.hyperledger.besu.ethereum.core.MiningParameters;
4848
import org.hyperledger.besu.ethereum.core.PrivacyParameters;
4949
import org.hyperledger.besu.ethereum.eth.manager.EthContext;
50+
import org.hyperledger.besu.ethereum.eth.transactions.BlobCache;
5051
import org.hyperledger.besu.ethereum.eth.transactions.ImmutableTransactionPoolConfiguration;
5152
import org.hyperledger.besu.ethereum.eth.transactions.TransactionBroadcaster;
5253
import org.hyperledger.besu.ethereum.eth.transactions.TransactionPool;
@@ -152,7 +153,8 @@ public BlockHeaderValidator.Builder createBlockHeaderRuleset(
152153
mock(TransactionBroadcaster.class),
153154
ethContext,
154155
new TransactionPoolMetrics(metricsSystem),
155-
poolConf);
156+
poolConf,
157+
new BlobCache());
156158

157159
transactionPool.setEnabled();
158160

consensus/merge/src/test/java/org/hyperledger/besu/consensus/merge/blockcreation/MergeCoordinatorTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
import org.hyperledger.besu.ethereum.eth.manager.EthContext;
6464
import org.hyperledger.besu.ethereum.eth.manager.EthScheduler;
6565
import org.hyperledger.besu.ethereum.eth.sync.backwardsync.BackwardSyncContext;
66+
import org.hyperledger.besu.ethereum.eth.transactions.BlobCache;
6667
import org.hyperledger.besu.ethereum.eth.transactions.ImmutableTransactionPoolConfiguration;
6768
import org.hyperledger.besu.ethereum.eth.transactions.PendingTransaction;
6869
import org.hyperledger.besu.ethereum.eth.transactions.TransactionBroadcaster;
@@ -214,7 +215,8 @@ public void setUp() {
214215
mock(TransactionBroadcaster.class),
215216
ethContext,
216217
new TransactionPoolMetrics(metricsSystem),
217-
poolConf);
218+
poolConf,
219+
new BlobCache());
218220

219221
this.transactionPool.setEnabled();
220222

consensus/qbft/src/integration-test/java/org/hyperledger/besu/consensus/qbft/support/TestContextBuilder.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@
9898
import org.hyperledger.besu.ethereum.core.Util;
9999
import org.hyperledger.besu.ethereum.eth.manager.EthContext;
100100
import org.hyperledger.besu.ethereum.eth.manager.EthScheduler;
101+
import org.hyperledger.besu.ethereum.eth.transactions.BlobCache;
101102
import org.hyperledger.besu.ethereum.eth.transactions.ImmutableTransactionPoolConfiguration;
102103
import org.hyperledger.besu.ethereum.eth.transactions.TransactionBroadcaster;
103104
import org.hyperledger.besu.ethereum.eth.transactions.TransactionPool;
@@ -480,7 +481,8 @@ private static ControllerAndState createControllerAndFinalState(
480481
mock(TransactionBroadcaster.class),
481482
ethContext,
482483
new TransactionPoolMetrics(metricsSystem),
483-
poolConf);
484+
poolConf,
485+
new BlobCache());
484486

485487
transactionPool.setEnabled();
486488

ethereum/api/src/integration-test/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/fork/frontier/EthGetFilterChangesIntegrationTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import org.hyperledger.besu.ethereum.core.TransactionReceipt;
5151
import org.hyperledger.besu.ethereum.eth.manager.EthContext;
5252
import org.hyperledger.besu.ethereum.eth.manager.EthPeers;
53+
import org.hyperledger.besu.ethereum.eth.transactions.BlobCache;
5354
import org.hyperledger.besu.ethereum.eth.transactions.ImmutableTransactionPoolConfiguration;
5455
import org.hyperledger.besu.ethereum.eth.transactions.PendingTransaction;
5556
import org.hyperledger.besu.ethereum.eth.transactions.PendingTransactions;
@@ -121,7 +122,8 @@ public void setUp() {
121122
batchAddedListener,
122123
ethContext,
123124
new TransactionPoolMetrics(metricsSystem),
124-
TransactionPoolConfiguration.DEFAULT);
125+
TransactionPoolConfiguration.DEFAULT,
126+
new BlobCache());
125127
transactionPool.setEnabled();
126128
final BlockchainQueries blockchainQueries =
127129
new BlockchainQueries(

ethereum/api/src/integration-test/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/fork/london/EthGetFilterChangesIntegrationTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import org.hyperledger.besu.ethereum.core.TransactionReceipt;
5151
import org.hyperledger.besu.ethereum.eth.manager.EthContext;
5252
import org.hyperledger.besu.ethereum.eth.manager.EthPeers;
53+
import org.hyperledger.besu.ethereum.eth.transactions.BlobCache;
5354
import org.hyperledger.besu.ethereum.eth.transactions.ImmutableTransactionPoolConfiguration;
5455
import org.hyperledger.besu.ethereum.eth.transactions.PendingTransaction;
5556
import org.hyperledger.besu.ethereum.eth.transactions.PendingTransactions;
@@ -121,7 +122,8 @@ public void setUp() {
121122
batchAddedListener,
122123
ethContext,
123124
new TransactionPoolMetrics(metricsSystem),
124-
TransactionPoolConfiguration.DEFAULT);
125+
TransactionPoolConfiguration.DEFAULT,
126+
new BlobCache());
125127
transactionPool.setEnabled();
126128
final BlockchainQueries blockchainQueries =
127129
new BlockchainQueries(

ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/RpcMethod.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public enum RpcMethod {
5151
DEBUG_GET_RAW_BLOCK("debug_getRawBlock"),
5252
DEBUG_GET_RAW_RECEIPTS("debug_getRawReceipts"),
5353
DEBUG_GET_RAW_TRANSACTION("debug_getRawTransaction"),
54+
ENGINE_GET_BLOBS_V1("engine_getBlobsV1"),
5455
ENGINE_GET_PAYLOAD_V1("engine_getPayloadV1"),
5556
ENGINE_GET_PAYLOAD_V2("engine_getPayloadV2"),
5657
ENGINE_GET_PAYLOAD_V3("engine_getPayloadV3"),

0 commit comments

Comments
 (0)