Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
152 commits
Select commit Hold shift + click to select a range
ee8945d
Initial commit with legacy IBFT files
Dec 17, 2024
0db1923
Merge branch 'main' into quorum-qbft-sync
Dec 17, 2024
07d683f
changes to match block hash
Dec 24, 2024
21640e0
add testcase for migration using block import
Jan 21, 2025
304446c
IBFT legacy cleanup based on few review comments
Jan 24, 2025
b4857a3
Add back header validations
Jan 24, 2025
0eab2de
Add missing comments and review changes
Jan 29, 2025
0fae5da
remove unused ibft1 config options
Jan 29, 2025
4dd580f
cleanup
Jan 29, 2025
844f49e
Use tempdirs in testcase
Jan 30, 2025
ad0adb3
remove IBFT encode
Jan 30, 2025
d94316b
Increase waitfor timeout and revert an unintended change
Feb 3, 2025
9579639
Fix vote tally checking at transition
Feb 4, 2025
35704e0
Fix sync event subscription in mining coordinator and couple votetall…
Feb 6, 2025
65f1a71
Merge branch 'main' into quorum-qbft-sync
pullurib Feb 6, 2025
64ece63
Initial commit with legacy IBFT files
Dec 17, 2024
566bf7a
Allow frontier simulation when Base Fee is present (#7965)
Gabriel-Trintinalia Dec 6, 2024
ea6b201
Support rpc pending block tag when estimating gas (#7951)
fab-10 Dec 6, 2024
d642674
Update EOFCREATE memory code (#7979)
shemnon Dec 8, 2024
ab8d948
account overrides: parse hex string into nonce long (#7999)
macfarla Dec 9, 2024
8d103c0
Small refactoring - Move UnsignedLongParameter to datatypes (#8001)
Gabriel-Trintinalia Dec 9, 2024
5a8dd47
Update changelog for 24.12.0-RC2 (#8002)
jframe Dec 9, 2024
ee9b4c0
Include mention of 24 hours notice for confirmation of outstanding PR…
jframe Dec 9, 2024
1cc2f7e
Use unsigned long parameter (#8003)
Gabriel-Trintinalia Dec 9, 2024
80819e9
Retrieve all transaction receipts for a block in one request (#6646)
Wetitpig Dec 10, 2024
941bab2
7311 add get headers from peer task (#7781)
Matilda-Clerke Dec 11, 2024
8ceaead
Improve equals performance on Address (#8013)
ahamlat Dec 11, 2024
048bfab
update withdrawal request address (#8016)
macfarla Dec 11, 2024
3a4e012
Chore!: Removed Deprecated `--host-whitelist` option (#8012)
pr9t Dec 11, 2024
aa0ee5e
Estimate the memory size of EIP-7702 transactions (#7984)
fab-10 Dec 11, 2024
b3fb339
Bump besu-native dep to 1.0.0 (#8019)
garyschulte Dec 11, 2024
4d3a75c
Fix BOM pom publication to Artifactory (#8021)
fab-10 Dec 12, 2024
519f6c1
eth_call state override bugfix - movePrecompileToAddress (#8024)
macfarla Dec 13, 2024
a836986
Fix simulate pending block timestamp (#8027)
fab-10 Dec 16, 2024
a173324
Update release-checklist.md (#8033)
siladu Dec 16, 2024
bf93eb3
Precompute authorities when importing blocks (#8017)
fab-10 Dec 16, 2024
012393c
[FLAKE] disable CliqueProposeRpcAcceptanceTests x 2 (#8035)
macfarla Dec 17, 2024
984c7ec
[CHANGELOG] add 24.12.1 and 24.12.2 hotfix release notes (#8025)
macfarla Dec 17, 2024
b38678a
changes to match block hash
Dec 24, 2024
dd437ba
add testcase for migration using block import
Jan 21, 2025
6976276
IBFT legacy cleanup based on few review comments
Jan 24, 2025
06b1371
Add back header validations
Jan 24, 2025
288be95
Add missing comments and review changes
Jan 29, 2025
1420c19
remove unused ibft1 config options
Jan 29, 2025
2fa692a
cleanup
Jan 29, 2025
f7bee54
Use tempdirs in testcase
Jan 30, 2025
0fcf9ec
remove IBFT encode
Jan 30, 2025
7222873
Increase waitfor timeout and revert an unintended change
Feb 3, 2025
c5c170b
Fix vote tally checking at transition
Feb 4, 2025
5ed11fe
Fix sync event subscription in mining coordinator and couple votetall…
Feb 6, 2025
55d047c
Add RPC HTTP options to specify custom truststore and password (#7978)
pullurib Dec 18, 2024
31d298b
Revise the approach for setting level_compaction_dynamic_level_bytes …
ahamlat Dec 18, 2024
f61208f
Pectra Devnet-5: 7702 & 7251: address & code changes (#8029)
daniellehrner Dec 18, 2024
776c410
rename GenesisConfigFile because it's not a file at all (#8050)
jflo Dec 18, 2024
925fac4
Replace waitforpeertask with ethpeers method (#8009)
Matilda-Clerke Dec 18, 2024
ca8d156
[CHANGELOG] clarify breaking changes (#8052)
macfarla Dec 19, 2024
f980d64
eth_simulateV1 - Add BlockSimulator feature (#7941)
Gabriel-Trintinalia Dec 19, 2024
56f0aea
Revert "update trace logique to fix journal updater issue (#7758)" (#…
matkt Dec 19, 2024
48bcd9c
Fix possible incomplete txpool restore from dump file (#7991)
fab-10 Dec 19, 2024
81fcd68
Clean up pivot selector from peers and unit test (#8020)
Matilda-Clerke Dec 19, 2024
51c229e
EIP-7840 Implementation (#8042)
siladu Dec 20, 2024
657d052
Move the core of qbft into a qbft core module (#8043)
jframe Dec 20, 2024
b017d7d
Ignore gasPrice if 1559 gas params are specified (#8059)
macfarla Dec 20, 2024
d38d079
eip-7709 implement BLOCKHASH opcode from system contract state (#7971)
lu-pinto Dec 20, 2024
cbc10b6
prague fee market for blob gas (#8064)
garyschulte Dec 21, 2024
8e0b351
Remove EIP-7742 (#8083)
siladu Jan 7, 2025
490c712
Reimplement EthereumNodeRecord for DNS discovery (#7989)
usmansaleem Jan 7, 2025
7fb8983
Update EIP-2935 (#8066)
siladu Jan 7, 2025
8c922e4
Add GetBodiesFromPeerTask (#8040)
Matilda-Clerke Jan 9, 2025
03cc6f0
Fix guess type for delegate code transactions (#8090)
Gabriel-Trintinalia Jan 9, 2025
6cb80eb
implement the proposed gas changes for bls / eip-2537 (#8008)
garyschulte Jan 10, 2025
c89db64
Support code delegations when purging confirmed blocks in the layered…
fab-10 Jan 10, 2025
cef79b4
Pass miningBeneficiary address to BlockAwareOperationTracer::traceSta…
lu-pinto Jan 10, 2025
94aba6e
add fallback for parallelization (#8084)
matkt Jan 10, 2025
98ef998
Rename accountOverride to stateOverride to match spec (#8111)
Gabriel-Trintinalia Jan 13, 2025
71d5607
Increase the max number of prioritized blob tx in the layered txpool …
fab-10 Jan 13, 2025
47b51fd
Refactor BlockHashOperation block height check into Operation (#8091)
shemnon Jan 13, 2025
45514e5
Add back deprecated traceStartBlock methods to the tracer API (#8112)
lu-pinto Jan 13, 2025
f416ab1
Expose head execution time metric (#8092)
ahamlat Jan 13, 2025
fa272e8
log4j conf: replace status (deprecated) with level (#8087)
macfarla Jan 14, 2025
3074cda
add workflow to verify artifacts (#8056)
joshuafernandes Jan 14, 2025
206eedd
Support authorizationList parsing in reference test txs (#8116)
siladu Jan 14, 2025
2639198
Log calculated world state contents upon state root mismatch (#8099)
siladu Jan 14, 2025
1598e9f
Improve debug_traceBlock calls performance (#8103)
ahamlat Jan 14, 2025
886206b
Exclude empty requests from requests hash (#8036)
daniellehrner Jan 14, 2025
366332c
Move gas refund calculation from MainnetTransactionProcessor to GasCa…
daniellehrner Jan 14, 2025
ab75738
handling IllegalArgumentException caused by Discovery Disabled
vaidikcode Jan 15, 2025
54b8fdd
Add support for movePrecompileToAddress in State Overrides (eth_call)…
Gabriel-Trintinalia Jan 15, 2025
a7063bf
[CHANGELOG] list deprecated bonsai CLI options (#8126)
macfarla Jan 16, 2025
46ca99d
Update EXTCALL creation detection (#8038)
shemnon Jan 16, 2025
43da51f
Pectra devnet 5: 7702 changes (#8118)
daniellehrner Jan 16, 2025
033da75
EIP-7623 (#8093)
daniellehrner Jan 16, 2025
0e0bf6c
default target gas limit for holesky (#8125)
macfarla Jan 16, 2025
b293c21
Unignore Prague ref tests and remove osakaTime from Prague (#8133)
siladu Jan 17, 2025
ef7ee61
Add baseFeeUpdateFraction to blobSchedule genesis config (#8128)
daniellehrner Jan 17, 2025
55614cf
Revert "Add back deprecated traceStartBlock methods to the tracer API…
lu-pinto Jan 18, 2025
f511b8f
Simulation: Add nonce to call parameter (#8139)
Gabriel-Trintinalia Jan 20, 2025
45ecd58
Fix rlp validate to handle lists ending at the start of another list …
Matilda-Clerke Jan 21, 2025
f97896c
Improve error message for Invalid operation (#8141)
matkt Jan 21, 2025
b7d4fe6
8053: Add GetPooledTransactionsFromPeerTask and appropriate usage (#8…
Matilda-Clerke Jan 21, 2025
0223cac
Fix eth_getBlockByNumber with empty params returns (#8134)
iryoung Jan 21, 2025
d392842
Devnet-5: bug fixes for 7702 (#8148)
daniellehrner Jan 22, 2025
e7c27ae
Check existence of hardfork milestone to decide if engine APIs should…
daniellehrner Jan 22, 2025
e91ac35
Use orElseGet for efficiency, address comment of previous PR 8139 (#8…
Gabriel-Trintinalia Jan 23, 2025
3247f80
Move p2p host validation to CLI validation (#8158)
Gabriel-Trintinalia Jan 23, 2025
d32d570
rename methods and variables, clarify comments (#8155)
daniellehrner Jan 23, 2025
391d8ef
fixes syntax errors (#8164)
jflo Jan 23, 2025
666069d
Pectra testnet fork slots (#8163)
jflo Jan 23, 2025
f95b86c
Check if discovery service is running before `admin_addPeer` (#8160)
Gabriel-Trintinalia Jan 23, 2025
7e2da25
update eth_call error message (#8129)
matkt Jan 24, 2025
f1d2799
Refactor the methods for getting mutable states in the WorldState pro…
matkt Jan 27, 2025
04ed02b
Extend simulate transaction on pending block plugin API (#8174)
fab-10 Jan 28, 2025
b29c151
debug_traceBlock use existing block header instead of hash (#8184)
siladu Jan 29, 2025
b436f27
fixes warning on sonar analysis (#8193)
jflo Jan 29, 2025
ce36baa
add spotless to PR checklist (#8185)
macfarla Jan 30, 2025
1f9a60b
Reuse constant INVALID_PARAMS_ERROR_CODE for RpcErrorType.java (#8154)
andrewcoder666 Jan 30, 2025
87a0174
Improve BLOCKHASH Short Circuit (#8171)
shemnon Jan 30, 2025
28f0e70
TransactionResult: add v for blob and pending tx (#8196)
macfarla Jan 30, 2025
887421a
Prague t8n and referenceTests fixes for EEST (#8167)
siladu Jan 30, 2025
40295f0
Fix: Remove System.out.println in BytesTrieSet… (#8172)
brawncode Jan 31, 2025
951d579
Devnet5 Fix requests tests (#8201)
Gabriel-Trintinalia Jan 31, 2025
d480e6b
Fix code delegation issue found in pectra devnet (#8203)
matkt Jan 31, 2025
32f9563
Prague Devnet5 - EIP2935 - Fix edge case when the contract is deploye…
Gabriel-Trintinalia Jan 31, 2025
f5c8650
devnet-6: 7702 changes for EXTCODE* (#8169)
daniellehrner Jan 31, 2025
4869e2d
devnet-6 system contract addresses update (#8209)
macfarla Jan 31, 2025
3f33bd0
Round change upon f+1 RC messages (experimental option) (#7838)
pullurib Jan 31, 2025
d8a1482
Init KZG precompile contract before importing blocks (#8219)
daniellehrner Feb 2, 2025
a51d27c
[MINOR] add newline to beginning of PR template (#8210)
macfarla Feb 2, 2025
55caa94
Simulation: Add `state` to StateOverride (eth_call, eth_simulateV1).…
Gabriel-Trintinalia Feb 2, 2025
e6e1bf0
7582: Add naive RLP caching for BlockHeader, Transaction, and Withdra…
Matilda-Clerke Feb 3, 2025
cdbe5a6
EIP-7702 Skip CodeDelegation processing for invalid recid (#8212)
siladu Feb 3, 2025
5135f75
Treat timestamp as unsigned long in engine api fork validation (#8221)
siladu Feb 3, 2025
f988b9e
Add a tx selector to skip txs from the same sender after the first no…
fab-10 Feb 3, 2025
88a871c
Fix the simulation of txs with future nonce (#8215)
fab-10 Feb 3, 2025
e40eeae
Stop all sub processes spawn by acceptance tests (#8226)
fab-10 Feb 3, 2025
d779b89
disable flaky test classes (#8239)
macfarla Feb 4, 2025
ee9438c
Revert "Stop all sub processes spawn by acceptance tests" (#8236)
macfarla Feb 4, 2025
3426dd7
Qbft block type (#8142)
jframe Feb 4, 2025
502145f
Invalidate engine_newPayloadV3 if it contains executionRequests (#8223)
siladu Feb 4, 2025
1c013a8
Use 9 for max blobs when sizing BlobCache (#8222)
siladu Feb 4, 2025
bfb5ba3
[TESTING] disable flaky fast sync actions test (#8208)
macfarla Feb 4, 2025
c21caf7
Not all invalid transient not selected txs should be penalized (#8231)
fab-10 Feb 4, 2025
ae6f4f5
add Xchain-pruning-blocks-retained must be >= epochlength (#7963) (#8…
philosup Feb 4, 2025
721e00f
Add transaction hash for debug trace responses (#8205)
matkt Feb 4, 2025
f673d2e
[CHANGELOG] add upcoming breaking changes to unreleased (#8235)
macfarla Feb 5, 2025
6e83e67
update rpc gas cap default to 50M (#8251)
macfarla Feb 5, 2025
6e24d2d
EIP2935 - Use system call instead of direct storage modification (#8243)
Gabriel-Trintinalia Feb 5, 2025
34e64f1
Use PendingTransaction interface in block creation classes (#8254)
fab-10 Feb 5, 2025
fe21426
Remove PostMergeContext singleton (#8253)
jframe Feb 6, 2025
31a04b7
Prague times for holesky and sepolia (#8255)
siladu Feb 6, 2025
2a9b4d1
Prague Engine API validation fixes (#8250)
siladu Feb 6, 2025
5c6a5c7
merge main
Feb 6, 2025
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
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

public class WaitUtils {
public static void waitFor(final ThrowingRunnable condition) {
waitFor(30, condition);
waitFor(40, condition);
}

public static void waitFor(final int timeout, final ThrowingRunnable condition) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
/*
* 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.tests.acceptance;

import static org.apache.logging.log4j.util.LoaderUtil.getClassLoader;

import org.hyperledger.besu.tests.acceptance.bft.BftAcceptanceTestParameterization;
import org.hyperledger.besu.tests.acceptance.bft.ParameterizedBftTestBase;
import org.hyperledger.besu.tests.acceptance.dsl.node.BesuNode;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;

import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class QuorumIBFTMigrationTest extends ParameterizedBftTestBase {

private static final Logger LOG = LoggerFactory.getLogger(QuorumIBFTMigrationTest.class);

public static void copyKeyFilesToNodeDataDirs(final BesuNode... nodes) throws IOException {
for (BesuNode node : nodes) {
copyKeyFile(node, "key");
copyKeyFile(node, "key.pub");
}
}

private static void copyKeyFile(final BesuNode node, final String keyFileName)
throws IOException {
String resourceFileName = node.getName() + keyFileName;
try (InputStream keyFileStream = getClassLoader().getResourceAsStream(resourceFileName)) {
if (keyFileStream == null) {
throw new IOException("Resource not found: " + resourceFileName);
}
Path targetPath = node.homeDirectory().resolve(keyFileName);
Files.createDirectories(targetPath.getParent());
Files.copy(keyFileStream, targetPath, StandardCopyOption.REPLACE_EXISTING);
}
}

public static void runBesuCommand(final Path dataPath) throws IOException, InterruptedException {
ProcessBuilder processBuilder =
new ProcessBuilder(
"../../build/install/besu/bin/besu",
"--genesis-file",
"src/test/resources/qbft/qbft.json",
"--data-path",
dataPath.toString(),
"--data-storage-format",
"FOREST",
"blocks",
"import",
"src/test/resources/ibft.blocks");

processBuilder.directory(new File(System.getProperty("user.dir")));
processBuilder.inheritIO(); // This will redirect the output to the console

Process process = processBuilder.start();
int exitCode = process.waitFor();
if (exitCode == 0) {
System.out.println("Import command executed successfully.");
} else {
throw new RuntimeException("Import command execution failed with exit code: " + exitCode);
}
}

@ParameterizedTest(name = "{index}: {0}")
@MethodSource("factoryFunctions")
public void shouldImportIBFTBlocksAndTransitionToQBFT(
final String testName, final BftAcceptanceTestParameterization nodeFactory) throws Exception {

if ("ibft2".equals(testName)) {
LOG.info("Skipping test: " + testName);
return;
}

setUp(testName, nodeFactory);

// Create a mix of Bonsai and Forest DB nodes
final BesuNode minerNode1 = nodeFactory.createForestNodeFixedPort(besu, "miner1");
final BesuNode minerNode2 = nodeFactory.createForestNodeFixedPort(besu, "miner2");
final BesuNode minerNode3 = nodeFactory.createForestNodeFixedPort(besu, "miner3");
final BesuNode minerNode4 = nodeFactory.createForestNodeFixedPort(besu, "miner4");
final BesuNode minerNode5 = nodeFactory.createForestNodeFixedPort(besu, "miner5");

// Copy key files to the node datadirs
// Use the key files saved in resources directory
copyKeyFilesToNodeDataDirs(minerNode1, minerNode2, minerNode3, minerNode4, minerNode5);

// start one node and import blocks from import file
// Use import file, genesis saved in resources directory

runBesuCommand(minerNode1.homeDirectory());

// After the import is done, start the rest of the nodes using the same genesis and respective
// node keys

cluster.start(minerNode1, minerNode2, minerNode3, minerNode4, minerNode5);

// Check that the chain is progressing as expected
cluster.verify(blockchain.reachesHeight(minerNode2, 1, 120));
}

@Override
public void tearDownAcceptanceTestBase() {
cluster.stop();
super.tearDownAcceptanceTestBase();
}
}
Binary file not shown.
1 change: 1 addition & 0 deletions acceptance-tests/tests/src/test/resources/miner1key
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0a46b91fe0c770a4355d1fec9ccd72d39264f46a74ed67a69a12ed4c265aa768
1 change: 1 addition & 0 deletions acceptance-tests/tests/src/test/resources/miner1key.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8093fb3200c783555ed487b8b5210ef3369b062a1f3ce5762d83d7a62205693d1e4f253e840ca48ec98d8f20c5b41bbbd43f34f87a1f68324ab51afe73732b96
1 change: 1 addition & 0 deletions acceptance-tests/tests/src/test/resources/miner2key
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
17c2aacfdf1f6defde20e6ae7132c6d3991e758af3799a307a75b38135678a48
1 change: 1 addition & 0 deletions acceptance-tests/tests/src/test/resources/miner2key.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
d81f65976ccc44c5e7e6ca859c5ede06b0f484f72c52d35dd8f7bd7581a8b7020d9ef45878696b4593daf5575b48dda5259f78f192a3445d5cc97c032660642f
1 change: 1 addition & 0 deletions acceptance-tests/tests/src/test/resources/miner3key
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
917fb1b03034e5d7156b89bc2a3bc2aae1d146d2640d75e095f07110b0871bc1
1 change: 1 addition & 0 deletions acceptance-tests/tests/src/test/resources/miner3key.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
67785a2ac328648d94245abb25bdcfab853d06e68c70026d90f2fd5c8338b65c19235398eac205e4bbdb3fc1de9669ad6309e43ab203c8e7430664cea6451f56
1 change: 1 addition & 0 deletions acceptance-tests/tests/src/test/resources/miner4key
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3b3cbae8c034c4ba2d5f4df44faa013888216a6eabb7fffa0b224003ea770ba7
1 change: 1 addition & 0 deletions acceptance-tests/tests/src/test/resources/miner4key.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ec403552908986b5d9e4def3be9ddcb26d5b03def3b44ef2d5d728bb9a3028603405e7379c3e185cb2bc3e784548fcdd0e7616162029c3f407155b2fb25ba0ca
1 change: 1 addition & 0 deletions acceptance-tests/tests/src/test/resources/miner5key
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
4ddfb30d4fcd6f5a9f959961f734e4c1469af223bc16b217eef0d3796e64973d
1 change: 1 addition & 0 deletions acceptance-tests/tests/src/test/resources/miner5key.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
28c02b375d62b0adef8213b76882dfec264d5dcbb0a8ba73f167bc718a6d02f1833af80ab9f51a5f007e5f3b8320e8fc5ab287d4bd59ad497f8949bf4abb9e80
84 changes: 55 additions & 29 deletions acceptance-tests/tests/src/test/resources/qbft/qbft.json
Original file line number Diff line number Diff line change
@@ -1,39 +1,65 @@
{
"config": {
"chainId": 4,
"berlinBlock": 0,
"qbft": {
"blockperiodseconds": 1,
"epochlength": 30000,
"requesttimeoutseconds": 5,
"blockreward": "5000000000000000000"
}
},
"nonce": "0x0",
"timestamp": "0x58ee40ba",
"extraData": "%extraData%",
"gasLimit": "0x47b760",
"extraData": "0x0000000000000000000000000000000000000000000000000000000000000000f86df86994a18182ee8ca476f2f0fb8170a1d4620edb39c5e194065541903bf3bb8c088a18046b441f5d286288c994d1e106d68cac92668b100f6f43791ddcb2c7588094d156777a1e1539fe654fc82266f41fd5d4aa548494efbbd8900222d7b2f75d081c3e7446a1f4fe10ce80c0",
"gasLimit": "700000000",
"gasUsed": "0x0",
"number": "0x0",
"difficulty": "0x1",
"mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365",
"coinbase": "0x0000000000000000000000000000000000000000",
"mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"config": {
"chainId": 1337,
"homesteadBlock": 10,
"eip150Block": 20,
"eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"eip155Block": 25,
"eip158Block": 30,
"byzantiumBlock": 50,
"constantinopleBlock": 60,
"petersburgBlock": 70,
"istanbulBlock": 80,
"ibft": {
"epochlength": 100,
"blockperiodseconds": 5,
"requesttimeoutseconds": 10,
"policy": 0,
"ceil2Nby3Block": 0,
"validatorcontractaddress": "0x0000000000000000000000000000000000000000"
},
"qbft": {
"epochLength": 30000,
"blockPeriodSeconds" : 1,
"requestTimeoutSeconds": 10,
"startBlock": 101
},
"txnSizeLimit": 64,
"maxCodeSize": 0,
"maxCodeSizeConfig": [
{
"block": 0,
"size": 64
}
],
"isMPS": false

},
"alloc": {
"fe3b557e8fb62b89f4916b721be55ceb828dbd73": {
"privateKey": "8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63",
"comment": "private key and this comment are ignored. In a real chain, the private key should NOT be stored",
"balance": "0xad78ebc5ac6200000"
"0xde8e2ae09f2ee2c6c282c054b2384f8b5f9debee": {
"balance": "1000000000000000000000000000"
},
"0x23bcbca17fc4978909ab44ac82559c7d379aa006": {
"balance": "1000000000000000000000000000"
},
"627306090abaB3A6e1400e9345bC60c78a8BEf57": {
"privateKey": "c87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3",
"comment": "private key and this comment are ignored. In a real chain, the private key should NOT be stored",
"balance": "90000000000000000000000"
"0x870276532cca9f33e66273cfa494cf41e04b5a66": {
"balance": "1000000000000000000000000000"
},
"f17f52151EbEF6C7334FAD080c5704D77216b732": {
"privateKey": "ae6ae8e5ccbfb04590405997ee2d52d2b330726137b875053c36d94e974d162f",
"comment": "private key and this comment are ignored. In a real chain, the private key should NOT be stored",
"balance": "90000000000000000000000"
"0x7d7fc9fdfa49e2db22fc6ebab593dcf3aeffbde8": {
"balance": "1000000000000000000000000000"
},
"0x4df76ad0678513846699056e0070c5f587580eb5": {
"balance": "1000000000000000000000000000"
}
},
"number": "0x0",
"gasUsed": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
}
3 changes: 2 additions & 1 deletion besu/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jar {
'Specification-Version': project.version,
'Implementation-Title': archiveBaseName,
'Implementation-Version': calculateVersion(),
'Commit-Hash': getGitCommitDetails(40).hash
'Commit-Hash': 'UNKNOWN'
)
}
}
Expand All @@ -37,6 +37,7 @@ dependencies {
implementation project(':consensus:clique')
implementation project(':consensus:common')
implementation project(':consensus:ibft')
implementation project(':consensus:ibftlegacy')
implementation project(':consensus:merge')
implementation project(':consensus:qbft')
implementation project(':consensus:qbft-core')
Expand Down
1 change: 1 addition & 0 deletions besu/src/main/java/org/hyperledger/besu/Runner.java
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,7 @@ public void startEthereumMainLoop() {
if (networkRunner.getNetwork().isP2pEnabled()) {
besuController.getSynchronizer().start();
}
besuController.getMiningCoordinator().subscribe();
besuController.getMiningCoordinator().start();
transactionPoolEvictionService.start();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -267,14 +267,19 @@ private void logProgress(final long blockNum) {

private BlockHeader lookupPreviousHeader(
final MutableBlockchain blockchain, final BlockHeader header) {
return blockchain
.getBlockHeader(header.getParentHash())
.orElseThrow(
() ->
new IllegalStateException(
String.format(
"Block %s does not connect to the existing chain. Current chain head %s",
header.getNumber(), blockchain.getChainHeadBlockNumber())));
try {
return blockchain
.getBlockHeader(header.getParentHash())
.orElseThrow(
() ->
new IllegalStateException(
String.format(
"Block %s does not connect to the existing chain. Current chain head %s",
header.getNumber(), blockchain.getChainHeadBlockNumber())));
} catch (IllegalStateException e) {
e.printStackTrace();
throw e;
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -394,8 +394,7 @@ private BesuControllerBuilder createConsensusScheduleBesuControllerBuilder(
if (configOptions.isIbft2()) {
originalControllerBuilder = new IbftBesuControllerBuilder();
} else if (configOptions.isIbftLegacy()) {
throw new IllegalStateException(
"IBFT1 (legacy) is no longer supported. Consider using IBFT2 or QBFT.");
originalControllerBuilder = new IbftLegacyBesuControllerBuilder();
} else {
throw new IllegalStateException(
"Invalid genesis migration config. Migration is supported from IBFT (legacy) or IBFT2 to QBFT)");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ protected ConsensusContext createConsensusContext(
protected PluginServiceFactory createAdditionalPluginServices(
final Blockchain blockchain, final ProtocolContext protocolContext) {
return besuControllerBuilderSchedule
.get(0L)
.get(besuControllerBuilderSchedule.keySet().stream().skip(1).findFirst().orElseThrow())
.createAdditionalPluginServices(blockchain, protocolContext);
}

Expand All @@ -209,7 +209,7 @@ protected JsonRpcMethods createAdditionalJsonRpcMethodFactory(
final ProtocolSchedule protocolSchedule,
final MiningConfiguration miningConfiguration) {
return besuControllerBuilderSchedule
.get(0L)
.get(besuControllerBuilderSchedule.keySet().stream().skip(1).findFirst().orElseThrow())
.createAdditionalJsonRpcMethodFactory(
protocolContext, protocolSchedule, miningConfiguration);
}
Expand All @@ -219,7 +219,7 @@ protected SubProtocolConfiguration createSubProtocolConfiguration(
final EthProtocolManager ethProtocolManager,
final Optional<SnapProtocolManager> maybeSnapProtocolManager) {
return besuControllerBuilderSchedule
.get(0L)
.get(besuControllerBuilderSchedule.keySet().stream().skip(1).findFirst().orElseThrow())
.createSubProtocolConfiguration(ethProtocolManager, maybeSnapProtocolManager);
}

Expand All @@ -242,7 +242,7 @@ protected EthProtocolManager createEthProtocolManager(
final Optional<MergePeerFilter> mergePeerFilter,
final ForkIdManager forkIdManager) {
return besuControllerBuilderSchedule
.get(0L)
.get(besuControllerBuilderSchedule.keySet().stream().skip(1).findFirst().orElseThrow())
.createEthProtocolManager(
protocolContext,
synchronizerConfiguration,
Expand Down
Loading