Skip to content

Commit

Permalink
fix: blockdata line counting & traceEndBlock trigger in ref tests (#1751
Browse files Browse the repository at this point in the history
)

* blockdata fix: missing one count for traxce limit

Signed-off-by: F Bojarski <[email protected]>

* update blockdata constraints

Signed-off-by: F Bojarski <[email protected]>

* fix: calling twice traceEndBlock for ref tests

Signed-off-by: F Bojarski <[email protected]>

---------

Signed-off-by: F Bojarski <[email protected]>
  • Loading branch information
letypequividelespoubelles authored Jan 31, 2025
1 parent 29b18f3 commit dadff1e
Show file tree
Hide file tree
Showing 10 changed files with 21 additions and 183 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import static net.consensys.linea.zktracer.module.blockdata.Trace.nROWS_DEPTH;
import static net.consensys.linea.zktracer.module.constants.GlobalConstants.LLARGE;

import java.math.BigInteger;
import java.nio.MappedByteBuffer;
import java.util.*;

Expand All @@ -30,8 +29,8 @@
import net.consensys.linea.zktracer.module.txndata.TxnData;
import net.consensys.linea.zktracer.module.wcp.Wcp;
import net.consensys.linea.zktracer.opcode.OpCode;
import net.consensys.linea.zktracer.types.EWord;
import org.apache.tuweni.bytes.Bytes;
import org.hyperledger.besu.evm.worldstate.WorldView;
import org.hyperledger.besu.plugin.data.BlockBody;
import org.hyperledger.besu.plugin.data.BlockHeader;

Expand All @@ -40,12 +39,14 @@ public class Blockdata implements Module {
private final Wcp wcp;
private final Euc euc;
private final TxnData txnData;
private final Bytes chainId;

private final Deque<BlockdataOperation> operations = new ArrayDeque<>();
private final List<BlockdataOperation> operations = new ArrayList<>();
private long firstBlockNumber;
private Bytes chainId;

final OpCode[] opCodes = {
private boolean conflationFinished = false;

private static final OpCode[] opCodes = {
OpCode.COINBASE,
OpCode.TIMESTAMP,
OpCode.NUMBER,
Expand All @@ -55,10 +56,6 @@ public class Blockdata implements Module {
OpCode.BASEFEE
};

public void setChainId(BigInteger chainId) {
this.chainId = EWord.of(chainId).lo();
}

@Override
public String moduleKey() {
return "BLOCK_DATA";
Expand All @@ -81,6 +78,11 @@ public void traceStartConflation(final long blockCount) {
euc.additionalRows.add(8);
}

@Override
public void traceEndConflation(final WorldView state) {
conflationFinished = true;
}

@Override
public void traceEndBlock(final BlockHeader blockHeader, final BlockBody blockBody) {
final long blockNumber = blockHeader.getNumber();
Expand Down Expand Up @@ -113,7 +115,7 @@ public void popTransaction() {}

@Override
public int lineCount() {
final int numberOfBlock = (operations.size() / opCodes.length);
final int numberOfBlock = (operations.size() / opCodes.length) + (conflationFinished ? 0 : 1);
return numberOfBlock * nROWS_DEPTH;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@
import net.consensys.linea.zktracer.runtime.stack.StackContext;
import net.consensys.linea.zktracer.runtime.stack.StackLine;
import net.consensys.linea.zktracer.types.Bytecode;
import net.consensys.linea.zktracer.types.EWord;
import net.consensys.linea.zktracer.types.MemoryRange;
import net.consensys.linea.zktracer.types.TransactionProcessingMetadata;
import org.apache.tuweni.bytes.Bytes;
Expand Down Expand Up @@ -388,8 +389,7 @@ public Hub(final Address l2l1ContractAddress, final Bytes l2l1Topic, final BigIn
l2L1Logs = new L2L1Logs(l2Block);
keccak = new Keccak(ecRecoverEffectiveCall, l2Block);
shakiraData = new ShakiraData(wcp, sha256Blocks, keccak, ripemdBlocks);
blockdata = new Blockdata(wcp, euc, txnData);
blockdata.setChainId(chainId);
blockdata = new Blockdata(wcp, euc, txnData, EWord.of(chainId));
mmu = new Mmu(euc, wcp);
mmio = new Mmio(mmu);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
*
* SPDX-License-Identifier: Apache-2.0
*/
package net.consensys.linea.zktracer.instructionprocessing.ContextFamilyTests;
package net.consensys.linea.zktracer.instructionprocessing.contextFamily;

import static net.consensys.linea.zktracer.instructionprocessing.utilities.Calls.appendCall;
import static net.consensys.linea.zktracer.instructionprocessing.utilities.MonoOpCodeSmcs.keyPair;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
*
* SPDX-License-Identifier: Apache-2.0
*/
package net.consensys.linea.zktracer.instructionprocessing.ContextFamilyTests;
package net.consensys.linea.zktracer.instructionprocessing.contextFamily;

import static net.consensys.linea.zktracer.instructionprocessing.utilities.MultiOpCodeSmcs.allContextOpCodes;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
*
* SPDX-License-Identifier: Apache-2.0
*/
package net.consensys.linea.zktracer.instructionprocessing.ZeroSizeTests;
package net.consensys.linea.zktracer.instructionprocessing.zeroSize;

import static net.consensys.linea.zktracer.instructionprocessing.utilities.Calls.*;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
*
* SPDX-License-Identifier: Apache-2.0
*/
package net.consensys.linea.zktracer.instructionprocessing.ZeroSizeTests;
package net.consensys.linea.zktracer.instructionprocessing.zeroSize;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
*
* SPDX-License-Identifier: Apache-2.0
*/
package net.consensys.linea.zktracer.instructionprocessing.ZeroSizeTests;
package net.consensys.linea.zktracer.instructionprocessing.zeroSize;

import static com.google.common.base.Preconditions.checkArgument;
import static net.consensys.linea.zktracer.instructionprocessing.utilities.MonoOpCodeSmcs.keyPair;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -412,6 +412,8 @@ public static void executeTest(final BlockchainReferenceTestCaseSpec spec) {
? HeaderValidationMode.LIGHT
: HeaderValidationMode.FULL;

// Note: somehow this function is calling traceEndBlock through
// blockValidator.validateAndProcessBlock
final BlockImportResult importResult =
blockImporter.importBlock(context, block, validationMode, validationMode);
log.info(
Expand All @@ -425,7 +427,6 @@ public static void executeTest(final BlockchainReferenceTestCaseSpec spec) {
importResult.isImported(),
candidateBlock.isValid());

zkTracer.traceEndBlock(block.getHeader(), block.getBody());
} catch (final RLPException e) {
log.info("caught RLP exception, checking it's invalid {}", candidateBlock.isValid());
assertThat(candidateBlock.isValid()).isFalse();
Expand Down

0 comments on commit dadff1e

Please sign in to comment.