From b0a80267e4fa9afbda4072b8e9d4b145cea289f1 Mon Sep 17 00:00:00 2001 From: David Pearce Date: Thu, 23 Jan 2025 22:43:41 +1300 Subject: [PATCH 1/4] update `go-corset` to latest version (#1732) This version includes a small number of optimisations which may improve overall performance. --- .github/actions/setup-go-corset/action.yml | 2 +- .github/workflows/reference-blockchain-tests.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/setup-go-corset/action.yml b/.github/actions/setup-go-corset/action.yml index 35871c393..e009396e3 100644 --- a/.github/actions/setup-go-corset/action.yml +++ b/.github/actions/setup-go-corset/action.yml @@ -12,4 +12,4 @@ runs: - name: Install Go Corset shell: bash - run: go install github.com/consensys/go-corset/cmd/go-corset@77d304f + run: go install github.com/consensys/go-corset/cmd/go-corset@fe70003 diff --git a/.github/workflows/reference-blockchain-tests.yml b/.github/workflows/reference-blockchain-tests.yml index 23c81569e..4775c9e74 100644 --- a/.github/workflows/reference-blockchain-tests.yml +++ b/.github/workflows/reference-blockchain-tests.yml @@ -71,7 +71,7 @@ jobs: REFERENCE_TESTS_PARALLELISM: 2 JAVA_OPTS: -Dorg.gradle.daemon=false CORSET_FLAGS: disable - GOCORSET_FLAGS: -vw --ansi-escapes=false --report --air + GOCORSET_FLAGS: -b1024 -vw --ansi-escapes=false --report --air ZKEVM_BIN: "zkevm_for_reference_tests.go.bin" FAILED_TEST_JSON_DIRECTORY: ${{ github.workspace }}/tmp/${{ steps.extract_branch.outputs.branch }}/ FAILED_MODULE: ${{ inputs.failed_module || '' }} From 40d16080ea15737ec77bec4dfb54eb5b370125e3 Mon Sep 17 00:00:00 2001 From: amkCha <29160563+amkCha@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:30:04 +0100 Subject: [PATCH 2/4] Fix/refacto blockdata files (#1724) * fix(blockdata): update gradle trace file * fix(blockdata): add global constants in traces eth and linea generation * fix(blockdata): update constraints * fix(blockdata): fix unit test import --- .../linea/zktracer/module/blockdata/GasLimitTest.java | 3 ++- gradle/trace-files.gradle | 10 +++++----- linea-constraints | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/arithmetization/src/test/java/net/consensys/linea/zktracer/module/blockdata/GasLimitTest.java b/arithmetization/src/test/java/net/consensys/linea/zktracer/module/blockdata/GasLimitTest.java index 7a7e160af..93e2d3eb4 100644 --- a/arithmetization/src/test/java/net/consensys/linea/zktracer/module/blockdata/GasLimitTest.java +++ b/arithmetization/src/test/java/net/consensys/linea/zktracer/module/blockdata/GasLimitTest.java @@ -16,7 +16,8 @@ import static net.consensys.linea.zktracer.MultiBlockUtils.multiBlocksTest; import static net.consensys.linea.zktracer.module.blockdata.NextGasLimitScenario.*; -import static net.consensys.linea.zktracer.module.blockdata.Trace.*; +import static net.consensys.linea.zktracer.module.blockdata.Trace.GAS_LIMIT_MAXIMUM; +import static net.consensys.linea.zktracer.module.blockdata.Trace.GAS_LIMIT_MINIMUM; import static net.consensys.linea.zktracer.module.constants.GlobalConstants.*; import java.util.ArrayList; diff --git a/gradle/trace-files.gradle b/gradle/trace-files.gradle index e089ccbb7..6dbd1ad6f 100644 --- a/gradle/trace-files.gradle +++ b/gradle/trace-files.gradle @@ -41,14 +41,14 @@ tasks.register("blockdataEthereum", TraceFilesTask) { group "Trace files generation" dependsOn corsetExists module = 'blockdata' - files = ['blockdata/constants.lisp', 'blockdata/columns.lisp', 'blockdata/processing/gaslimit/constants-ethereum.lisp'] + files = ['constants/constants.lisp', 'blockdata/constants.lisp', 'blockdata/columns.lisp', 'blockdata/processing/gaslimit/ethereum.lisp'] } tasks.register("blockdataLinea", TraceFilesTask) { group "Trace files generation" dependsOn corsetExists module = 'blockdata' - files = ['blockdata/constants.lisp', 'blockdata/columns.lisp', 'blockdata/processing/gaslimit/constants-linea.lisp'] + files = ['constants/constants.lisp', 'blockdata/constants.lisp', 'blockdata/columns.lisp', 'blockdata/processing/gaslimit/linea.lisp'] } // @@ -145,15 +145,15 @@ tasks.register('buildTracer') { dependsOn 'mmu', 'blake2fmodexpdata', 'oob', 'exp', 'rlptxrcpt', 'rlpaddr', 'shakiradata', 'mxp', 'ecdata' dependsOn 'txndata' dependsOn 'constants' - + def chain = System.getProperty('blockchain') // Conditional dependsOn if(chain == null || chain == "Linea") { print("Building for Linea...\n") - dependsOn 'blockdataLinea' + dependsOn 'blockdataLinea' } else if(chain == "Ethereum") { dependsOn 'blockdataEthereum' - print("Building for Ethereum...\n") + print("Building for Ethereum...\n") } else { // Force build failure if unknown chain. println("*** unknown target chain. Try '-Dblockchain=Linea' or '-Dblockchain=Ethereum'\n\n") diff --git a/linea-constraints b/linea-constraints index 24c71a551..e0a8b82ef 160000 --- a/linea-constraints +++ b/linea-constraints @@ -1 +1 @@ -Subproject commit 24c71a551721e588aefe774850aec50f7702ecc5 +Subproject commit e0a8b82ef8c43bff72c9924224b764398cc6ec3d From 6b7248e1b42170b2ef7ec9ec78d4c9b56d367dd4 Mon Sep 17 00:00:00 2001 From: Luis Pinto Date: Fri, 24 Jan 2025 15:02:32 +0000 Subject: [PATCH 3/4] Use both traceStartBlock method calls wherever suitable (#1711) --- .../consensys/linea/blockcapture/BlockCapturer.java | 2 +- .../zktracer/ConflationAwareOperationTracer.java | 6 ++++++ .../java/net/consensys/linea/zktracer/ZkTracer.java | 11 +++++++++++ .../consensys/linea/zktracer/module/DebugMode.java | 6 +++++- .../linea/GeneralStateReferenceTestTools.java | 2 +- .../linea/testing/GeneralStateReferenceTestTools.java | 2 +- .../linea/testing/ReplayExecutionEnvironment.java | 2 +- 7 files changed, 26 insertions(+), 5 deletions(-) diff --git a/arithmetization/src/main/java/net/consensys/linea/blockcapture/BlockCapturer.java b/arithmetization/src/main/java/net/consensys/linea/blockcapture/BlockCapturer.java index f3fde8172..ea5fb4912 100644 --- a/arithmetization/src/main/java/net/consensys/linea/blockcapture/BlockCapturer.java +++ b/arithmetization/src/main/java/net/consensys/linea/blockcapture/BlockCapturer.java @@ -70,7 +70,7 @@ public void traceEndConflation(WorldView state) {} @Override public void traceStartBlock( - BlockHeader blockHeader, BlockBody blockBody, Address miningBeneficiary) { + BlockHeader blockHeader, BlockBody blockBody, final Address miningBeneficiary) { this.reaper.enterBlock(blockHeader, blockBody, miningBeneficiary); } diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/ConflationAwareOperationTracer.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/ConflationAwareOperationTracer.java index 01fc47f79..913592431 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/ConflationAwareOperationTracer.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/ConflationAwareOperationTracer.java @@ -80,6 +80,12 @@ public void traceEndConflation(WorldView state) { this.tracers.forEach(tracer -> tracer.traceEndConflation(state)); } + public void traceStartBlock( + final BlockHeader blockHeader, final BlockBody blockBody, final Address miningBeneficiary) { + this.tracers.forEach( + tracer -> tracer.traceStartBlock(blockHeader, blockBody, miningBeneficiary)); + } + public void traceStartBlock( final ProcessableBlockHeader processableBlockHeader, final Address miningBeneficiary) { this.tracers.forEach( diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/ZkTracer.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/ZkTracer.java index 0edc2be74..d89766c53 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/ZkTracer.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/ZkTracer.java @@ -183,6 +183,17 @@ public void traceStartBlock( } } + @Override + public void traceStartBlock( + final BlockHeader blockHeader, final BlockBody blockBody, final Address miningBeneficiary) { + try { + this.hub.traceStartBlock(blockHeader, miningBeneficiary); + this.debugMode.ifPresent(x -> x.traceStartBlock(blockHeader, blockBody, miningBeneficiary)); + } catch (final Exception e) { + this.tracingExceptions.add(e); + } + } + @Override public void traceEndBlock(final BlockHeader blockHeader, final BlockBody blockBody) { try { diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/DebugMode.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/DebugMode.java index e4ccf4f63..dc8824163 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/DebugMode.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/DebugMode.java @@ -23,6 +23,7 @@ import net.consensys.linea.zktracer.opcode.OpCode; import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.DelegatingBytes; +import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Quantity; import org.hyperledger.besu.datatypes.Transaction; import org.hyperledger.besu.evm.frame.MessageFrame; @@ -159,7 +160,10 @@ public void traceEndConflation() { log.info("=== Stop conflation ==="); } - public void traceStartBlock(ProcessableBlockHeader processableBlockHeader, final BlockBody body) { + public void traceStartBlock( + ProcessableBlockHeader processableBlockHeader, + final BlockBody body, + final Address miningBeneficiary) { if (!this.l.doBlock()) { return; } diff --git a/reference-tests/src/test/java/net/consensys/linea/GeneralStateReferenceTestTools.java b/reference-tests/src/test/java/net/consensys/linea/GeneralStateReferenceTestTools.java index c3e9058b2..6098bf4e9 100644 --- a/reference-tests/src/test/java/net/consensys/linea/GeneralStateReferenceTestTools.java +++ b/reference-tests/src/test/java/net/consensys/linea/GeneralStateReferenceTestTools.java @@ -178,7 +178,7 @@ public static void executeTest(final GeneralStateTestCaseEipSpec spec) { final ZkTracer zkTracer = new ZkTracer(); zkTracer.traceStartConflation(1); - zkTracer.traceStartBlock(blockHeader, blockHeader.getCoinbase()); + zkTracer.traceStartBlock(blockHeader, blockBody, blockHeader.getCoinbase()); final TransactionProcessingResult result = processor.processTransaction( diff --git a/testing/src/main/java/net/consensys/linea/testing/GeneralStateReferenceTestTools.java b/testing/src/main/java/net/consensys/linea/testing/GeneralStateReferenceTestTools.java index 772a816b0..cf913ff50 100644 --- a/testing/src/main/java/net/consensys/linea/testing/GeneralStateReferenceTestTools.java +++ b/testing/src/main/java/net/consensys/linea/testing/GeneralStateReferenceTestTools.java @@ -93,7 +93,7 @@ public static void executeTest( .blobGasPricePerGas(blockHeader.getExcessBlobGas().orElse(BlobGas.ZERO)); tracer.traceStartConflation(1); - tracer.traceStartBlock(blockHeader, blockHeader.getCoinbase()); + tracer.traceStartBlock(blockHeader, blockBody, blockHeader.getCoinbase()); TransactionProcessingResult result = null; for (Transaction transaction : blockBody.getTransactions()) { // Several of the GeneralStateTests check if the transaction could potentially diff --git a/testing/src/main/java/net/consensys/linea/testing/ReplayExecutionEnvironment.java b/testing/src/main/java/net/consensys/linea/testing/ReplayExecutionEnvironment.java index f2c3cdfa0..f0f95267d 100644 --- a/testing/src/main/java/net/consensys/linea/testing/ReplayExecutionEnvironment.java +++ b/testing/src/main/java/net/consensys/linea/testing/ReplayExecutionEnvironment.java @@ -207,7 +207,7 @@ private static void executeFrom( useCoinbaseAddressFromBlockHeader ? header.getCoinbase() : CliqueHelpers.getProposerOfBlock(header); - tracer.traceStartBlock(header, miningBeneficiary); + tracer.traceStartBlock(header, body, miningBeneficiary); for (TransactionSnapshot txs : blockSnapshot.txs()) { final Transaction tx = txs.toTransaction(); From c23befcbcc60c464fb3824a8cf8503375dcc84c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20B=C3=A9gassat?= <38285177+OlivierBBB@users.noreply.github.com> Date: Fri, 24 Jan 2025 19:16:04 +0100 Subject: [PATCH 4/4] release: bump version to beta-v1.2.0-rc2 and update changelog (#1735) --- CHANGELOG.md | 17 +++++++++++++++++ gradle.properties | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6e77c165..39fb0fa82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## beta-v1-2.0-rc2 +* Use both traceStartBlock method calls wherever suitable (#1711) +* Fix/refacto blockdata files (#1724) +* update `go-corset` to latest version (#1732) +* Update Linea Besu to 25.1-develop-448d1a9 (#1722) +* fix: update `go-corset` to latest (#1726) +* feat: go-corset front end integration (#1689) +* Improve the copy local Besu distribution archive when the download fails (#1720) +* Fix Java jars publication and remove redundant upload to Cloudsmith (#1716) +* Update actions/upload-artifact to v4 since v3 is deprecated and breaks CI (#1718) +* Tweak publish task (#1713) +* fix cloudsmith publish +* fix location of distribution for release (#1710) +* Add actions/checkout to release.yml (#1708) +* update `release` action to install `corset` (#1706) + + ## beta-v1.2.0-rc0 * Fix: ignore `Trace.java` files and `GlobalConstants.java` + recognize 'beta*' as release tag (#1703) * init chain id in zktracer. (#1702) diff --git a/gradle.properties b/gradle.properties index 8c7d78b9b..a592e7c08 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -releaseVersion=beta-v1.2.0-rc0 +releaseVersion=beta-v1.2.0-rc2 besuVersion=25.1-develop-448d1a9 besuArtifactGroup=io.consensys.linea-besu distributionIdentifier=linea-tracer