Skip to content

Commit 6c354dd

Browse files
committed
Revert "Persist newpayload without fcu glamsterdam devnet 6 - fix (#10732)"
This reverts commit 10d587c. Signed-off-by: Karim Taam <karim.t2am@gmail.com>
1 parent 9c02ea9 commit 6c354dd

5 files changed

Lines changed: 9 additions & 97 deletions

File tree

consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/blockcreation/MergeCoordinator.java

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -747,27 +747,6 @@ public ForkchoiceResult updateForkChoiceWithoutLegacySkip(
747747
return applyForkChoice(newHead, finalizedBlockHash, safeBlockHash);
748748
}
749749

750-
@Override
751-
public ForkchoiceResult updateHeadForExecution(final BlockHeader newHead) {
752-
final MutableBlockchain blockchain = protocolContext.getBlockchain();
753-
final Optional<Hash> latestValid = getLatestValidAncestor(newHead);
754-
755-
Optional<BlockHeader> parentOfNewHead = blockchain.getBlockHeader(newHead.getParentHash());
756-
if (parentOfNewHead.isPresent()
757-
&& Long.compareUnsigned(newHead.getTimestamp(), parentOfNewHead.get().getTimestamp())
758-
<= 0) {
759-
return ForkchoiceResult.withFailure(
760-
INVALID, "new head timestamp not greater than parent", latestValid);
761-
}
762-
763-
if (!setNewHead(blockchain, newHead)) {
764-
LOG.warn("Failed to move world state to new head {}", newHead.toLogString());
765-
return ForkchoiceResult.withFailure(INVALID, "Failed to set new head", latestValid);
766-
}
767-
768-
return ForkchoiceResult.withResult(Optional.empty(), Optional.of(newHead));
769-
}
770-
771750
private ForkchoiceResult applyForkChoice(
772751
final BlockHeader newHead, final Hash finalizedBlockHash, final Hash safeBlockHash) {
773752
final MutableBlockchain blockchain = protocolContext.getBlockchain();

consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/blockcreation/MergeMiningCoordinator.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -118,18 +118,6 @@ ForkchoiceResult updateForkChoice(
118118
ForkchoiceResult updateForkChoiceWithoutLegacySkip(
119119
final BlockHeader newHead, final Hash finalizedBlockHash, final Hash safeBlockHash);
120120

121-
/**
122-
* Move the canonical chain head without updating forkchoice metadata (finalized or safe).
123-
*
124-
* <p>Use this for pre-execution head advancement during {@code engine_newPayload}, when the
125-
* parent block was previously received via {@code newPayload} but the chain head was not moved
126-
* forward yet.
127-
*
128-
* @param newHead the new head
129-
* @return the update head result
130-
*/
131-
ForkchoiceResult updateHeadForExecution(final BlockHeader newHead);
132-
133121
/**
134122
* Returns true if the given block hash is a strict ancestor of the currently finalized block
135123
* (i.e. an older block on the same chain, not finalized itself). Returns false when no finalized

consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/blockcreation/TransitionCoordinator.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -195,11 +195,6 @@ public ForkchoiceResult updateForkChoiceWithoutLegacySkip(
195195
newHead, finalizedBlockHash, safeBlockHash);
196196
}
197197

198-
@Override
199-
public ForkchoiceResult updateHeadForExecution(final BlockHeader newHead) {
200-
return mergeCoordinator.updateHeadForExecution(newHead);
201-
}
202-
203198
@Override
204199
public boolean isAncestorOfFinalized(final Hash candidateHeadHash) {
205200
return mergeCoordinator.isAncestorOfFinalized(candidateHeadHash);

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

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import static org.mockito.ArgumentMatchers.eq;
2525
import static org.mockito.Mockito.atLeast;
2626
import static org.mockito.Mockito.atLeastOnce;
27-
import static org.mockito.Mockito.clearInvocations;
2827
import static org.mockito.Mockito.doAnswer;
2928
import static org.mockito.Mockito.doCallRealMethod;
3029
import static org.mockito.Mockito.doNothing;
@@ -1112,55 +1111,6 @@ public void forkchoiceUpdateShouldIgnoreAncestorOfChainHead() {
11121111
verify(blockchain, never()).rewindToBlock(any());
11131112
}
11141113

1115-
@Test
1116-
public void updateHeadForExecutionShouldMoveHeadWithoutUpdatingFinalizedOrSafe() {
1117-
BlockHeader terminalHeader = terminalPowBlock();
1118-
sendNewPayloadAndForkchoiceUpdate(
1119-
new Block(terminalHeader, BlockBody.empty()), Optional.empty(), Hash.ZERO);
1120-
1121-
BlockHeader parentHeader = nextBlockHeader(terminalHeader);
1122-
Block parent = new Block(parentHeader, BlockBody.empty());
1123-
coordinator.rememberBlock(parent);
1124-
1125-
BlockHeader childHeader = nextBlockHeader(parentHeader);
1126-
Block child = new Block(childHeader, BlockBody.empty());
1127-
sendNewPayloadAndForkchoiceUpdate(child, Optional.empty(), parent.getHash());
1128-
1129-
clearInvocations(blockchain, mergeContext);
1130-
1131-
ForkchoiceResult result = coordinator.updateHeadForExecution(parentHeader);
1132-
1133-
assertThat(result.shouldNotProceedToPayloadBuildProcess()).isFalse();
1134-
assertThat(result.getNewHead()).contains(parentHeader);
1135-
assertThat(blockchain.getChainHeadHash()).isEqualTo(parentHeader.getHash());
1136-
1137-
verify(blockchain, never()).setFinalized(any());
1138-
verify(mergeContext, never()).setFinalized(any());
1139-
verify(blockchain, never()).setSafeBlock(any());
1140-
verify(mergeContext, never()).setSafeBlock(any());
1141-
}
1142-
1143-
@Test
1144-
public void updateHeadForExecutionShouldNotIgnoreAncestorOfChainHead() {
1145-
BlockHeader terminalHeader = terminalPowBlock();
1146-
sendNewPayloadAndForkchoiceUpdate(
1147-
new Block(terminalHeader, BlockBody.empty()), Optional.empty(), Hash.ZERO);
1148-
1149-
BlockHeader parentHeader = nextBlockHeader(terminalHeader);
1150-
Block parent = new Block(parentHeader, BlockBody.empty());
1151-
sendNewPayloadAndForkchoiceUpdate(parent, Optional.empty(), terminalHeader.getHash());
1152-
1153-
BlockHeader childHeader = nextBlockHeader(parentHeader);
1154-
Block child = new Block(childHeader, BlockBody.empty());
1155-
sendNewPayloadAndForkchoiceUpdate(child, Optional.empty(), parent.getHash());
1156-
1157-
ForkchoiceResult result = coordinator.updateHeadForExecution(parentHeader);
1158-
1159-
assertThat(result.getStatus()).isEqualTo(ForkchoiceResult.Status.VALID);
1160-
assertThat(result.getNewHead()).contains(parentHeader);
1161-
assertThat(blockchain.getChainHeadHash()).isEqualTo(parentHeader.getHash());
1162-
}
1163-
11641114
@ParameterizedTest(name = "{index}: {0}")
11651115
@MethodSource("getGasLimits")
11661116
public void shouldSetCorrectTargetGasLimit(final ArgumentsAccessor argumentsAccessor) {

ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineNewPayload.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@
7272
import java.util.ArrayList;
7373
import java.util.Collections;
7474
import java.util.List;
75-
import java.util.Objects;
7675
import java.util.Optional;
7776
import java.util.stream.Collectors;
7877

@@ -377,14 +376,15 @@ public JsonRpcResponse syncResponse(final JsonRpcRequestContext requestContext)
377376
}
378377

379378
final MutableBlockchain blockchain = protocolContext.getBlockchain();
380-
final Hash chainHeadHash = blockchain.getChainHeadHash();
381-
maybeParentHeader
382-
.filter(
383-
parentHeader ->
384-
chainHeadHash != null
385-
&& !Objects.equals(newBlockHeader.getParentHash(), chainHeadHash)
386-
&& Objects.equals(parentHeader.getParentHash(), chainHeadHash))
387-
.ifPresent(mergeCoordinator::updateHeadForExecution);
379+
if (!newBlockHeader.getParentHash().equals(blockchain.getChainHeadHash())) {
380+
maybeParentHeader.ifPresent(
381+
parentHeader -> {
382+
mergeCoordinator.updateForkChoice(
383+
parentHeader,
384+
blockchain.getFinalized().orElse(Hash.ZERO),
385+
blockchain.getSafeBlock().orElse(Hash.ZERO));
386+
});
387+
}
388388

389389
// execute block and return result response
390390
final long startTimeNs = System.nanoTime();

0 commit comments

Comments
 (0)