feat: removed all tracing-v1 related codes from github workflow (#932)

* feat: removed all tracing-v1 related codes from github workflow

* feat: removed all tracing-v1 related codes from makefile, test files, and docker yml files

* feat: removed all old prover, geth traces node, and traces-api in docker files

* feat: removed traces-api-facade related codes from workflow

* feat: update image tag of coordinator and others
This commit is contained in:
jonesho
2025-05-06 01:19:33 +08:00
committed by GitHub
parent 19880cd8a9
commit 1b874b45fb
24 changed files with 14 additions and 762 deletions

View File

@@ -22,9 +22,6 @@ on:
prover_changed:
required: true
type: string
traces_api_facade_changed:
required: true
type: string
transaction_exclusion_api_changed:
required: true
type: string
@@ -37,9 +34,6 @@ on:
postman_image_tagged:
required: true
type: string
traces_api_facade_image_tagged:
required: true
type: string
transaction_exclusion_api_image_tagged:
required: true
type: string
@@ -80,16 +74,6 @@ jobs:
push_image: ${{ inputs.push_image }}
secrets: inherit
traces-api-facade:
uses: ./.github/workflows/traces-api-facade-build-and-publish.yml
if: ${{ always() && (inputs.traces_api_facade_changed == 'true' || inputs.traces_api_facade_image_tagged != 'true') }}
with:
commit_tag: ${{ inputs.commit_tag }}
develop_tag: ${{ inputs.develop_tag }}
image_name: consensys/linea-traces-api-facade
push_image: ${{ inputs.push_image }}
secrets: inherit
transaction_exclusion_api:
uses: ./.github/workflows/transaction-exclusion-api-build-and-publish.yml
if: ${{ always() && (inputs.transaction_exclusion_api_changed == 'true' || inputs.transaction_exclusion_api_image_tagged != 'true') }}

View File

@@ -19,7 +19,6 @@ jobs:
staterecovery: ${{ steps.filter.outputs.staterecovery }}
postman: ${{ steps.filter.outputs.postman }}
prover: ${{ steps.filter.outputs.prover }}
traces-api-facade: ${{ steps.filter.outputs.traces-api-facade }}
transaction-exclusion-api: ${{ steps.filter.outputs.transaction-exclusion-api }}
has-changes-requiring-build: ${{ steps.exclusion-filter.outputs.has-changes-requiring-build }}
contracts-excluding-local-deployment-artifacts: ${{ steps.exclusion-filter.outputs.contracts-excluding-local-deployment-artifacts }}
@@ -82,26 +81,6 @@ jobs:
- '.github/workflows/main.yml'
- '.github/workflows/reuse-*.yml'
- 'constraints'
traces-api-facade:
- 'traces-api-facade/**'
- 'jvm-libs/linea/core/domain-models/**'
- 'jvm-libs/linea/core/traces/**'
- 'jvm-libs/linea/core/metrics/**'
- 'jvm-libs/generic/json-rpc/**'
- 'jvm-libs/generic/extensions/kotlin/**'
- 'jvm-libs/generic/extensions/futures/**'
- 'jvm-libs/generic/vertx-helper/**'
- 'jvm-libs/linea/metrics/**'
- 'config/common/traces-limits-v1.toml'
- '.github/workflows/traces-api-facade-*.yml'
- '.github/workflows/build-and-publish.yml'
- '.github/workflows/main.yml'
- '.github/workflows/reuse-*.yml'
- 'buildSrc/**'
- 'gradle/**'
- 'build.gradle'
- 'gradle.properties'
- 'settings.gradle'
transaction-exclusion-api:
- 'transaction-exclusion-api/**'
- 'jvm-libs/generic/extensions/futures/**'
@@ -159,7 +138,6 @@ jobs:
coordinator_changed: ${{ needs.filter-commit-changes.outputs.coordinator }}
postman_changed: ${{ needs.filter-commit-changes.outputs.postman }}
prover_changed: ${{ needs.filter-commit-changes.outputs.prover }}
traces_api_facade_changed: ${{ needs.filter-commit-changes.outputs.traces-api-facade }}
transaction_exclusion_api_changed: ${{ needs.filter-commit-changes.outputs.transaction-exclusion-api }}
secrets: inherit
@@ -174,7 +152,6 @@ jobs:
prover_changed: ${{ needs.filter-commit-changes.outputs.prover }}
smart_contracts_changed: ${{ needs.filter-commit-changes.outputs.smart-contracts }}
staterecovery_changed: ${{ needs.filter-commit-changes.outputs.staterecovery }}
traces_api_facade_changed: ${{ needs.filter-commit-changes.outputs.traces-api-facade }}
transaction_exclusion_api_changed: ${{ needs.filter-commit-changes.outputs.transaction-exclusion-api }}
secrets: inherit
@@ -209,30 +186,13 @@ jobs:
coordinator_changed: ${{ needs.filter-commit-changes.outputs.coordinator }}
postman_changed: ${{ needs.filter-commit-changes.outputs.postman }}
prover_changed: ${{ needs.filter-commit-changes.outputs.prover }}
traces_api_facade_changed: ${{ needs.filter-commit-changes.outputs.traces-api-facade }}
transaction_exclusion_api_changed: ${{ needs.filter-commit-changes.outputs.transaction-exclusion-api }}
coordinator_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_coordinator }}
postman_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_postman }}
prover_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_prover }}
traces_api_facade_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_traces_api_facade }}
transaction_exclusion_api_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_transaction_exclusion_api }}
secrets: inherit
run-e2e-tests-geth-tracing:
needs: [ store-image-name-and-tags, docker-build, get-has-changes-requiring-e2e-testing, manual-docker-build-and-e2e-tests ]
# Make this execute for has-changes-requiring-e2e-testing == 'false' so that we can get to the required job @ which is in reuse-run-e2e-tests.yml
if: ${{ always() && needs.get-has-changes-requiring-e2e-testing.outputs.has-changes-requiring-e2e-testing == 'false' || needs.docker-build.result == 'success' }}
concurrency:
group: run-e2e-tests-geth-tracing-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
uses: ./.github/workflows/reuse-run-e2e-tests.yml
with:
commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }}
tracing-engine: 'geth'
e2e-tests-logs-dump: true
has-changes-requiring-e2e-testing: ${{ needs.get-has-changes-requiring-e2e-testing.outputs.has-changes-requiring-e2e-testing }}
secrets: inherit
run-e2e-tests:
needs: [ store-image-name-and-tags, docker-build, get-has-changes-requiring-e2e-testing, manual-docker-build-and-e2e-tests ]
# Make this execute for has-changes-requiring-e2e-testing == 'false' so that we can get to the required job @ which is in reuse-run-e2e-tests.yml
@@ -243,14 +203,13 @@ jobs:
uses: ./.github/workflows/reuse-run-e2e-tests.yml
with:
commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }}
tracing-engine: 'besu'
e2e-tests-logs-dump: true
has-changes-requiring-e2e-testing: ${{ needs.get-has-changes-requiring-e2e-testing.outputs.has-changes-requiring-e2e-testing }}
secrets: inherit
publish-images-after-run-tests-success-on-main:
needs: [ store-image-name-and-tags, testing, run-e2e-tests, run-e2e-tests-geth-tracing ]
if: ${{ always() && github.ref == 'refs/heads/main' && needs.testing.result == 'success' && needs.run-e2e-tests.outputs.tests_outcome == 'success' && needs.run-e2e-tests-geth-tracing.outputs.tests_outcome == 'success' }}
needs: [ store-image-name-and-tags, testing, run-e2e-tests ]
if: ${{ always() && github.ref == 'refs/heads/main' && needs.testing.result == 'success' && needs.run-e2e-tests.outputs.tests_outcome == 'success' }}
uses: ./.github/workflows/build-and-publish.yml
with:
push_image: true
@@ -259,17 +218,15 @@ jobs:
coordinator_changed: ${{ needs.filter-commit-changes.outputs.coordinator }}
postman_changed: ${{ needs.filter-commit-changes.outputs.postman }}
prover_changed: ${{ needs.filter-commit-changes.outputs.prover }}
traces_api_facade_changed: ${{ needs.filter-commit-changes.outputs.traces-api-facade }}
transaction_exclusion_api_changed: ${{ needs.filter-commit-changes.outputs.transaction-exclusion-api }}
coordinator_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_coordinator }}
postman_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_postman }}
prover_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_prover }}
traces_api_facade_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_traces_api_facade }}
transaction_exclusion_api_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_transaction_exclusion_api }}
secrets: inherit
cleanup-deployments:
needs: [ run-e2e-tests, run-e2e-tests-geth-tracing ]
needs: [ run-e2e-tests ]
if: ${{ always() }}
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-small
steps:

View File

@@ -20,9 +20,6 @@ on:
prover_changed:
required: true
type: string
traces_api_facade_changed:
required: true
type: string
transaction_exclusion_api_changed:
required: true
type: string
@@ -33,8 +30,6 @@ on:
value: ${{ jobs.image_tag_push.outputs.image_tagged_prover }}
image_tagged_postman:
value: ${{ jobs.image_tag_push.outputs.image_tagged_postman }}
image_tagged_traces_api_facade:
value: ${{ jobs.image_tag_push.outputs.image_tagged_traces_api_facade }}
image_tagged_transaction_exclusion_api:
value: ${{ jobs.image_tag_push.outputs.image_tagged_transaction_exclusion_api }}
secrets:
@@ -55,7 +50,6 @@ jobs:
last_commit_tag_exists_coordinator: ${{ steps.check_image_tags_exist_coordinator.outputs.last_commit_tag_exists }}
last_commit_tag_exists_postman: ${{ steps.check_image_tags_exist_postman.outputs.last_commit_tag_exists }}
last_commit_tag_exists_prover: ${{ steps.check_image_tags_exist_prover.outputs.last_commit_tag_exists }}
last_commit_tag_exists_traces_api_facade: ${{ steps.check_image_tags_exist_traces_api_facade.outputs.last_commit_tag_exists }}
last_commit_tag_exists_transaction_exclusion_api: ${{ steps.check_image_tags_exist_transaction_exclusion_api.outputs.last_commit_tag_exists }}
steps:
- name: Checkout
@@ -85,14 +79,6 @@ jobs:
last_commit_tag: ${{ inputs.last_commit_tag }}
image_name: consensys/linea-prover
- name: Check image tags exist for traces-api-facade
uses: ./.github/actions/check-image-tags-exist
if: ${{ inputs.traces_api_facade_changed == 'false' }}
id: check_image_tags_exist_traces_api_facade
with:
last_commit_tag: ${{ inputs.last_commit_tag }}
image_name: consensys/linea-traces-api-facade
- name: Check image tags exist for transaction-exclusion-api
uses: ./.github/actions/check-image-tags-exist
if: ${{ inputs.transaction_exclusion_api_changed == 'false' }}
@@ -110,7 +96,6 @@ jobs:
image_tagged_coordinator: ${{ steps.image_tag_push_coordinator.outputs.image_tagged }}
image_tagged_prover: ${{ steps.image_tag_push_prover.outputs.image_tagged }}
image_tagged_postman: ${{ steps.image_tag_push_postman.outputs.image_tagged }}
image_tagged_traces_api_facade: ${{ steps.image_tag_push_traces_api_facade.outputs.image_tagged }}
image_tagged_transaction_exclusion_api: ${{ steps.image_tag_push_transaction_exclusion_api.outputs.image_tagged }}
steps:
- name: Checkout
@@ -155,19 +140,6 @@ jobs:
docker_username: ${{ secrets.DOCKERHUB_USERNAME }}
docker_password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Tag and push traces api facade image
id: image_tag_push_traces_api_facade
uses: ./.github/actions/image-tag-and-push
if: ${{ inputs.traces_api_facade_changed == 'false' }}
with:
commit_tag: ${{ inputs.commit_tag }}
last_commit_tag: ${{ inputs.last_commit_tag }}
develop_tag: ${{ inputs.develop_tag }}
image_name: consensys/linea-traces-api-facade
last_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.last_commit_tag_exists_traces_api_facade }}
docker_username: ${{ secrets.DOCKERHUB_USERNAME }}
docker_password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Tag and push transaction exclusion api image
id: image_tag_push_transaction_exclusion_api
uses: ./.github/actions/image-tag-and-push

View File

@@ -6,10 +6,6 @@ on:
description: 'The commit tag to use'
required: true
type: string
tracing-engine:
description: Variable option for running tests against [besu] or [geth] stack
required: true
type: string
e2e-tests-with-ssh:
description: Run end to end tests with ability to ssh into environment
required: false
@@ -30,10 +26,6 @@ on:
commit_tag:
required: true
type: string
tracing-engine:
description: Variable option for running tests against [besu] or [geth] stack
required: true
type: string
e2e-tests-with-ssh:
description: Run end to end tests with ability to ssh into environment
required: false
@@ -69,7 +61,6 @@ jobs:
COORDINATOR_TAG: ${{ inputs.commit_tag }}
POSTMAN_TAG: ${{ inputs.commit_tag }}
PROVER_TAG: ${{ inputs.commit_tag }}
TRACES_API_TAG: ${{ inputs.commit_tag }}
TRANSACTION_EXCLUSION_API_TAG: ${{ inputs.commit_tag }}
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -116,23 +107,9 @@ jobs:
gunzip -c $GITHUB_WORKSPACE/linea-coordinator/linea-coordinator-docker-image.tar.gz | docker load &&
gunzip -c $GITHUB_WORKSPACE/linea-postman/linea-postman-docker-image.tar.gz | docker load &&
gunzip -c $GITHUB_WORKSPACE/linea-prover/linea-prover-docker-image.tar.gz | docker load &&
gunzip -c $GITHUB_WORKSPACE/linea-traces-api-facade/linea-traces-api-facade-docker-image.tar.gz | docker load &&
gunzip -c $GITHUB_WORKSPACE/linea-transaction-exclusion-api/linea-transaction-exclusion-api-docker-image.tar.gz | docker load
shell: bash
- name: Spin up fresh environment with geth tracing with retry
if: ${{ inputs.tracing-engine == 'geth' }}
uses: nick-fields/retry@v3
with:
max_attempts: 10
retry_on: error
retry_wait_seconds: 30
timeout_minutes: 10
command: |
make start-env-with-tracing-v1-ci CLEAN_PREVIOUS_ENV=false
on_retry_command: |
make clean-environment
- name: Spin up fresh environment with besu tracing with retry
if: ${{ inputs.tracing-engine == 'besu' }}
uses: nick-fields/retry@v3
with:
max_attempts: 10
@@ -165,13 +142,11 @@ jobs:
find tmp/local/ >> docker_logs/files_in_shared_dir.txt || true
docker ps -a >> docker_logs/docker_ps.txt || true
docker logs coordinator --since 1h &>> docker_logs/coordinator.txt || true
docker logs prover --since 1h &>> docker_logs/prover.txt || true
docker logs prover-v3 --since 1h &>> docker_logs/prover-v3.txt || true
docker logs shomei --since 1h &>> docker_logs/shomei.txt || true
docker logs zkbesu-shomei --since 1h &>> docker_logs/zkbesu-shomei.txt || true
docker logs shomei-frontend --since 1h &>> docker_logs/shomei-frontend.txt || true
docker logs postman --since 1h &>> docker_logs/postman.txt || true
docker logs traces-node --since 1h &>> docker_logs/traces-node.txt || true
docker logs traces-node-v2 --since 1h &>> docker_logs/traces-node-v2.txt || true
docker logs l2-node-besu --since 1h &>> docker_logs/l2-node-besu.txt || true
docker logs transaction-exclusion-api --since 1h &>> docker_logs/transaction-exclusion-api.txt || true
@@ -180,7 +155,7 @@ jobs:
uses: actions/upload-artifact@v4
if: ${{ failure() && inputs.e2e-tests-logs-dump }}
with:
name: end-2-end-debug-logs-${{ inputs.tracing-engine }}
name: end-2-end-debug-logs
if-no-files-found: error
path: |
docker_logs/**/*

View File

@@ -18,9 +18,6 @@ on:
prover_changed:
required: true
type: string
traces_api_facade_changed:
required: true
type: string
transaction_exclusion_api_changed:
required: true
type: string
@@ -47,10 +44,6 @@ jobs:
if: ${{ inputs.postman_changed == 'true' }}
secrets: inherit
traces-api-facade:
uses: ./.github/workflows/traces-api-facade-testing.yml
if: ${{ inputs.traces_api_facade_changed == 'true' }}
transaction-exclusion-api:
uses: ./.github/workflows/transaction-exclusion-api-testing.yml
if: ${{ inputs.transaction_exclusion_api_changed == 'true' }}
@@ -71,7 +64,7 @@ jobs:
# If all jobs are skipped, the workflow will still succeed.
always_succeed:
runs-on: ubuntu-24.04
if: ${{ inputs.coordinator_changed == 'false' && inputs.prover_changed == 'false' && inputs.postman_changed == 'false' && inputs.traces_api_facade_changed == 'false' && inputs.transaction_exclusion_api_changed == 'false' }}
if: ${{ inputs.coordinator_changed == 'false' && inputs.prover_changed == 'false' && inputs.postman_changed == 'false' && inputs.transaction_exclusion_api_changed == 'false' }}
steps:
- name: Ensure Workflow Success
run: echo "All jobs were skipped, but workflow succeeds."

View File

@@ -1,130 +0,0 @@
name: Traces-api-facade build and publish CI
on:
workflow_call:
inputs:
commit_tag:
required: true
type: string
develop_tag:
required: true
type: string
image_name:
required: true
type: string
push_image:
required: false
type: boolean
default: false
secrets:
DOCKERHUB_USERNAME:
required: false
DOCKERHUB_TOKEN:
required: false
workflow_dispatch:
inputs:
commit_tag:
description: 'Image tag'
required: true
type: string
develop_tag:
description: 'Image tag will be "develop" if target branch is main'
required: true
type: choice
options:
- develop
default: 'develop'
image_name:
description: 'Image name'
required: true
type: string
default: 'consensys/linea-traces-api-facade'
push_image:
description: 'Toggle whether to push image to docker registry'
required: false
type: boolean
default: true
concurrency:
group: traces-api-facade-build-and-publish-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
build-and-publish:
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-med
name: Traces api facade build
env:
COMMIT_TAG: ${{ inputs.commit_tag }}
DEVELOP_TAG: ${{ inputs.develop_tag }}
IMAGE_NAME: ${{ inputs.image_name }}
PUSH_IMAGE: ${{ inputs.push_image }}
TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }}
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
steps:
- name: Set develop tag if main branch
if: ${{ github.ref == 'refs/heads/main' }}
run: |
echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Build dist
run: |
./gradlew traces-api-facade:app:shadowJar
echo ${{ github.workspace }}
- name: Login to Docker Hub
if: ${{ env.DOCKERHUB_USERNAME != '' && env.DOCKERHUB_TOKEN != '' }}
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: traces-api-facade
uses: docker/metadata-action@v5
with:
images: consensys/linea-traces-api-facade
- name: Build for testing
uses: docker/build-push-action@v6
if: ${{ env.PUSH_IMAGE == 'false' }}
with:
context: .
build-contexts: jar=./traces-api-facade/app/build/libs/
file: ./traces-api-facade/Dockerfile
platforms: linux/amd64
load: true
push: false
tags: ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }}
- name: Save Docker image as artifact
if: ${{ env.PUSH_IMAGE == 'false' }}
run: |
docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-traces-api-facade-docker-image.tar.gz
shell: bash
- name: Upload Docker image artifact
if: ${{ env.PUSH_IMAGE == 'false' }}
uses: actions/upload-artifact@v4
with:
name: linea-traces-api-facade
path: linea-traces-api-facade-docker-image.tar.gz
- name: Build & push
uses: docker/build-push-action@v6
if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }}
with:
context: .
build-contexts: jar=./traces-api-facade/app/build/libs/
file: ./traces-api-facade/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ env.TAGS }}
cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache
cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max

View File

@@ -1,49 +0,0 @@
name: traces-api-facade-testing
on:
workflow_call:
workflow_dispatch:
inputs:
coverage:
description: To generate test report
required: false
type: boolean
default: false
concurrency:
group: traces-api-facade-testing-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
run-tests:
# ~2 mins saved vs small
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-med
name: Traces api facade tests
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Run tests with coverage
uses: nick-fields/retry@v3
if: ${{ inputs.coverage }}
with:
max_attempts: 2
retry_on: error
timeout_minutes: 20
command: |
./gradlew -V traces-api-facade:app:buildNeeded jacocoRootReport
- name: Run tests without coverage
uses: nick-fields/retry@v3
if: ${{ !inputs.coverage }}
with:
max_attempts: 2
retry_on: error
timeout_minutes: 20
command: |
./gradlew -V traces-api-facade:app:buildNeeded

View File

@@ -1,7 +1,7 @@
include makefile-contracts.mk
docker-pull-images-external-to-monorepo:
docker compose -f docker/compose-tracing-v1-ci-extension.yml -f docker/compose-tracing-v2-ci-extension.yml --profile external-to-monorepo pull
docker compose -f docker/compose-tracing-v2-ci-extension.yml --profile external-to-monorepo pull
clean-local-folders:
make clean-smc-folders
@@ -12,8 +12,8 @@ clean-testnet-folders:
rm -rf tmp/testnet/* || true # ignore failure if folders do not exist already
clean-environment:
docker compose -f docker/compose-tracing-v1-ci-extension.yml -f docker/compose-tracing-v2-ci-extension.yml -f docker/compose-tracing-v2-staterecovery-extension.yml --profile l1 --profile l2 --profile debug --profile staterecovery kill -s 9 || true;
docker compose -f docker/compose-tracing-v1-ci-extension.yml -f docker/compose-tracing-v2-ci-extension.yml -f docker/compose-tracing-v2-staterecovery-extension.yml --profile l1 --profile l2 --profile debug --profile staterecovery down || true;
docker compose -f docker/compose-tracing-v2-ci-extension.yml -f docker/compose-tracing-v2-staterecovery-extension.yml --profile l1 --profile l2 --profile debug --profile staterecovery kill -s 9 || true;
docker compose -f docker/compose-tracing-v2-ci-extension.yml -f docker/compose-tracing-v2-staterecovery-extension.yml --profile l1 --profile l2 --profile debug --profile staterecovery down || true;
make clean-local-folders;
docker volume rm linea-local-dev linea-logs || true; # ignore failure if volumes do not exist already
docker system prune -f || true;
@@ -60,12 +60,6 @@ fresh-start-l2-blockchain-only:
## Creating new targets to avoid conflicts with existing targets
## Redundant targets above will cleanup once this get's merged
##
start-env-with-tracing-v1:
make start-env COMPOSE_FILE=docker/compose-tracing-v1.yml LINEA_PROTOCOL_CONTRACTS_ONLY=true
start-env-with-tracing-v1-ci:
make start-env COMPOSE_FILE=docker/compose-tracing-v1-ci-extension.yml DISABLE_JSON_RPC_PRICING_PROPAGATION=false
start-env-with-tracing-v2:
make start-env COMPOSE_FILE=docker/compose-tracing-v2.yml LINEA_PROTOCOL_CONTRACTS_ONLY=true

View File

@@ -1,21 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" shutdownHook="disable" monitorInterval="2">
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="net.consensys.linea.jsonrpc" level="TRACE" additivity="false">
<appender-ref ref="console" level="trace"/>
</Logger>
<Logger name="net.consensys.linea" level="DEBUG" additivity="false">
<appender-ref ref="console" level="trace"/>
</Logger>
<Root level="info" additivity="true">
<appender-ref ref="console"/>
</Root>
</Loggers>
</Configuration>

View File

@@ -1,11 +0,0 @@
input_traces_directory = "/data/traces/raw"
output_traces_directory = "/data/traces/v1/conflated"
traces_api_version = "0.2.0"
traces_file_extension = "json.gz"
[api]
port = 8080
path = "/"
# if =0, it will create one verticle per core (or hyperthread if supported)
number_of_verticles = 2
observability_port = 8090

View File

@@ -1,6 +0,0 @@
input_traces_directory = "tmp/local/traces/raw"
output_traces_directory = "tmp/local/traces/v1/conflated"
traces_version = "0.2.0"
[api]
port = 8081

View File

@@ -1,16 +0,0 @@
{
"preferNativeTransport": true,
"logStacktraceThreshold": 500,
"maxEventLoopExecuteTime": 2,
"maxEventLoopExecuteTimeUnit": "MINUTES",
"warnEventLoopBlocked": 5000,
"maxWorkerExecuteTime": 2,
"maxWorkerExecuteTimeUnit": "MINUTES",
"metricsOptions": {
"enabled": true,
"prometheusOptions": {
"enabled": true,
"publishQuantiles": true
}
}
}

View File

@@ -126,39 +126,6 @@ services:
linea:
ipv4_address: 11.11.11.119
traces-node:
container_name: traces-node
hostname: traces-node
image: consensys/linea-geth:${ZKGETH_TAG:-0588665}
platform: linux/amd64
profiles: [ "l2", "l2-bc", "debug", "external-to-monorepo" ]
depends_on:
sequencer:
condition: service_healthy
ports:
- "8645:8545" # http
- "8646:8546" # websockets
- "8651:8551" # engine_ API
environment:
DATA_DIR: "/l2-zkgeth-traces-node/"
NETRESTRICT: "11.11.11.0/24"
# ETHSTATS_URL: "zkgeth-traces-node:${WS_SECRET:-dummy-secret}@l2-ethstats:3000"
BOOTNODES: "enode://14408801a444dafc44afbccce2eb755f902aed3b5743fed787b3c790e021fef28b8c827ed896aa4e8fb46e22bd67c39f994a73768b4b382f8597b0d44370e15d@11.11.11.101:30303"
TRACES_DIR: "/data/traces/raw"
MAX_BLOCK_GAS: 10000000 #10M
MAX_BLOCKDATA_BYTES: 35000 #35 KBytes
MAX_TXDATA_BYTES: 30000 #30 KBytes
VERSION: "0.2.0"
TRACES_FILE_EXTENSION: ".json.gz"
entrypoint: [ "sh", "/scripts/node.sh", "1337", "/genesis.json", "0xa", "0x1C9C380", "0xF4240" ]
volumes:
- ./geth/scripts:/scripts:ro
- ./config/linea-local-dev-genesis-PoA-geth.json:/genesis.json:ro
- ../tmp/local/:/data/
networks:
linea:
ipv4_address: 11.11.11.102
traces-node-v2:
hostname: traces-node-v2
container_name: traces-node-v2
@@ -199,34 +166,10 @@ services:
linea:
ipv4_address: 11.11.11.115
prover:
container_name: prover
hostname: prover
image: consensys/linea-prover:b4550ce-untested
platform: linux/amd64
# to avoid spinning up on CI for now
profiles: [ "l2" ]
environment:
GOMAXPROCS: 16
CONTROLLER_CONFIG: "/opt/linea/prover/config/controller/controller.config.toml"
GOMEMLIMIT: "10GiB"
WORKER_ID: prover-i1 # keep this prover- to mimic prod env prover-aggregation-91
volumes:
- logs:/logs
- ../tmp/local/:/data/
- ./config/prover/v2/prover-controller.config.toml:/opt/linea/prover/config/controller/controller.config.toml
- ./config/prover/v2/prover-execution.config.toml:/opt/linea/prover/config/executor/execution.config.toml
- ./config/prover/v2/prover-decompression.config.toml:/opt/linea/prover/config/executor/decompression.config.toml
- ./config/prover/v2/prover-aggregation.config.toml:/opt/linea/prover/config/executor/aggregation.config.toml
- ../config/common/traces-limits-v1.toml:/opt/linea/prover/config/executor/traces-limits-M.toml
networks:
linea:
ipv4_address: 11.11.11.108
prover-v3: # prover compatible with the traces from zkbesu
container_name: prover-v3
hostname: prover-v3
image: consensys/linea-prover:${PROVER_TAG:-811743b}
image: consensys/linea-prover:${PROVER_TAG:-052958b}
platform: linux/amd64
# to avoid spinning up on CI for now
profiles: [ "l2" ]
@@ -247,7 +190,7 @@ services:
postman:
container_name: postman
hostname: postman
image: consensys/linea-postman:${POSTMAN_TAG:-b021601}
image: consensys/linea-postman:${POSTMAN_TAG:-052958b}
profiles: [ "l2", "debug" ]
platform: linux/amd64
restart: on-failure
@@ -265,31 +208,10 @@ services:
linea:
ipv4_address: 11.11.11.222
traces-api:
hostname: traces-api
container_name: traces-api
image: consensys/linea-traces-api-facade:${TRACES_API_TAG:-811743b}
profiles: [ "l2", "debug" ]
restart: on-failure
depends_on:
traces-node:
condition: service_started
ports:
- "8080:8080"
command: [ 'java', '-Dvertx.configurationFile=config/vertx-options.json', '-Dlog4j2.configurationFile=config/log4j2-dev.xml', '-jar', 'libs/app-all.jar', 'config/traces-app-docker.config.toml', ]
volumes:
- ../config/traces-api/traces-app-docker.config.toml:/opt/consensys/linea/traces-api-facade/config/traces-app-docker.config.toml:ro
- ../config/traces-api/vertx-options.json:/opt/consensys/linea/traces-api-facade/config/vertx-options.json:ro
- ../config/traces-api/log4j2-dev.xml:/opt/consensys/linea/traces-api-facade/config/log4j2-dev.xml:ro
- ../tmp/local/:/data/
networks:
linea:
ipv4_address: 11.11.11.105
coordinator:
hostname: coordinator
container_name: coordinator
image: consensys/linea-coordinator:${COORDINATOR_TAG:-811743b}
image: consensys/linea-coordinator:${COORDINATOR_TAG:-052958b}
platform: linux/amd64
profiles: [ "l2", "debug" ]
depends_on:
@@ -492,7 +414,7 @@ services:
transaction-exclusion-api:
hostname: transaction-exclusion-api
container_name: transaction-exclusion-api
image: consensys/linea-transaction-exclusion-api:${TRANSACTION_EXCLUSION_API_TAG:-811743b}
image: consensys/linea-transaction-exclusion-api:${TRANSACTION_EXCLUSION_API_TAG:-052958b}
profiles: [ "l2", "debug" ]
restart: on-failure
depends_on:

View File

@@ -1,33 +0,0 @@
include:
- compose-tracing-v1.yml
services:
l2-node:
extends:
file: compose-spec-l2-services.yml
service: l2-node
l2-node-besu:
extends:
file: compose-spec-l2-services.yml
service: l2-node-besu
image: consensys/linea-besu-package:${BESU_PACKAGE_TAG:-mainnet-402ebda}
environment:
BESU_PLUGINS: "LineaEstimateGasEndpointPlugin,LineaL1FinalizationTagUpdaterPlugin,LineaExtraDataPlugin,LineaTransactionPoolValidatorPlugin"
volumes:
- ../config/common/traces-limits-besu-v1.toml:/var/lib/besu/traces-limits.toml:ro
shomei-frontend:
extends:
file: compose-spec-l2-services.yml
service: shomei-frontend
postman:
extends:
file: compose-spec-l2-services.yml
service: postman
transaction-exclusion-api:
extends:
file: compose-spec-l2-services.yml
service: transaction-exclusion-api

View File

@@ -1,92 +0,0 @@
volumes:
local-dev:
name: "linea-local-dev"
logs:
name: "linea-logs"
networks:
linea:
driver: bridge
ipam:
config:
- subnet: 11.11.11.0/24
l1network:
driver: bridge
ipam:
config:
- subnet: 10.10.10.0/24
# To debug inside the network and volumes
# docker run --rm -it --network=docker_linea -v=linea-local-dev:/data -v=linea-logs:/logs weibeld/ubuntu-networking bash
services:
l1-el-node:
extends:
file: compose-spec-l1-services.yml
service: l1-el-node
l1-cl-node:
extends:
file: compose-spec-l1-services.yml
service: l1-cl-node
l1-node-genesis-generator:
extends:
file: compose-spec-l1-services.yml
service: l1-node-genesis-generator
sequencer:
extends:
file: compose-spec-l2-services.yml
service: sequencer
image: consensys/linea-besu-package:${BESU_PACKAGE_TAG:-mainnet-402ebda}
environment:
BESU_PLUGINS: "LineaEstimateGasEndpointPlugin,LineaL1FinalizationTagUpdaterPlugin,LineaExtraDataPlugin,LineaTransactionPoolValidatorPlugin"
volumes:
- ../config/common/traces-limits-besu-v1.toml:/var/lib/besu/traces-limits.toml:ro
traces-node:
extends:
file: compose-spec-l2-services.yml
service: traces-node
traces-api:
extends:
file: compose-spec-l2-services.yml
service: traces-api
prover:
extends:
file: compose-spec-l2-services.yml
service: prover
coordinator:
extends:
file: compose-spec-l2-services.yml
service: coordinator
environment:
config__override__l2-network-gas-pricing__json-rpc-pricing-propagation__disabled: ${DISABLE_JSON_RPC_PRICING_PROPAGATION:-true}
config__override__type2-state-proof-provider__endpoints: # leave empty to disable
command: [ 'java', '-Dvertx.configurationFile=/var/lib/coordinator/vertx-options.json', '-Dlog4j2.configurationFile=/var/lib/coordinator/log4j2-dev.xml', '-jar', 'libs/coordinator.jar', '--traces-limits', 'config/traces-limits-v1.toml', '--smart-contract-errors', 'config/smart-contract-errors.toml', '--gas-price-cap-time-of-day-multipliers', 'config/gas-price-cap-time-of-day-multipliers.toml', 'config/coordinator-docker.config.toml', 'config/coordinator-docker-web3signer-override.config.toml' ]
volumes:
- ../config/common/traces-limits-v1.toml:/opt/consensys/linea/coordinator/config/traces-limits-v1.toml:ro
web3signer:
extends:
file: compose-spec-l2-services.yml
service: web3signer
postgres:
extends:
file: compose-spec-l2-services.yml
service: postgres
zkbesu-shomei:
extends:
file: compose-spec-l2-services.yml
service: zkbesu-shomei
shomei:
extends:
file: compose-spec-l2-services.yml
service: shomei

View File

@@ -1,7 +0,0 @@
dev_mode = true
version = "v2.0.0"
exec_proof_dir = "/data/prover/v2/execution/responses"
decompress_proof_dir = "/data/prover/v2/compression/responses"
[bn254_circuit]
verifier_id = 0

View File

@@ -1,120 +0,0 @@
# The version. We used it to generate the filename.
version = "2.0.0"
# Log level of the controller (does not leak to the prover job)
#
# 0 = panic
# 1 = fatal
# 2 = error
# 3 = warn
# 4 = info
# 5 = debug
# 6 = trace
#
# Default to 4
#
log_level = 4
# The directory where we write the logs (stdout/stderr)
dir_logs = "/tmp/logs"
# The maximal return size of ls that we take into account
listing_limit = 100
# The delays at which we retry when we find no files in the queue. If this
# is set to [0, 1, 2, 3, 4, 5]. It will retry after 0 sec the first time it
# cannot find a file in the queue, 1 sec the second time and so on. Once it
# reaches the final value it keeps it as a final retry delay. Here we choose
# a value that works for local deployment because we would have only a single
# prover. But with many provers and a large queue, this can potentially
# overwhelm the EFS.
retry_delays = [0, 1]
# Suffix to add to signify that a file is in progress
inprogress_suffix = "inprogress"
# Suffix to add in case of error. If set to `code`, it will return `code_77` in
# case the job exited with a code 77. The suffix is applied both when the job
# is dropped or when it is defered to the large prover.
fail_suffix = "code"
# Suffix to add to successful job when they are done
success_suffix = "success"
[prometheus]
port = 9090
[execution]
# Path to the executable to run for the command
bin = "/opt/linea/prover/execprover"
# The go template of the command to run. The template should have a go
# template command structure. The template may use the fields:
# - .Bin (or .BinLarge)
# - .InFile
# - .OutFile
# - .ConfFile (or .ConfFileLarge)
command = "{{.Bin}} --in {{.InFile}} --out {{.OutFile}} --config {{.ConfFile}} --traces /opt/linea/prover/config/executor/traces-limits-M.toml"
# The config file to use for the command
conf_file = "/opt/linea/prover/config/executor/execution.config.toml"
# The directory where we read the files to handle
dir_from = "/data/prover/v2/execution/requests"
# The directory where we write the generated file
dir_to = "/data/prover/v2/execution/responses"
# The directory where we move the files when they have been handled.
dir_done = "/data/prover/v2/execution/requests-done"
[compression]
# Path to the executable to run for the command
bin = "/opt/linea/prover/decomprover"
# The go template of the command to run. The template should have a go
# template command structure. The template may use the fields:
# - .Bin (or .BinLarge)
# - .InFile
# - .OutFile
# - .ConfFile (or .ConfFileLarge)
command = "{{.Bin}} --in {{.InFile}} --out {{.OutFile}} --config {{.ConfFile}}"
# the configuration file to use for the command
conf_file = "/opt/linea/prover/config/executor/decompression.config.toml"
# The directory where we read the files to handle
dir_from = "/data/prover/v2/compression/requests"
# The directory where we write the generated file
dir_to = "/data/prover/v2/compression/responses"
# The directory where we move the files when they have been handled.
dir_done = "/data/prover/v2/compression/requests-done"
[aggregation]
# Path to the executable to run for the command
bin = "/opt/linea/prover/aggregprover"
# The go template of the command to run. The template should have a go
# template command structure. The template may use the fields:
# - .Bin (or .BinLarge)
# - .InFile
# - .OutFile
# - .ConfFile (or .ConfFileLarge)
command = "{{.Bin}} --in {{.InFile}} --out {{.OutFile}} --config {{.ConfFile}}"
# the configuration file to use for the command
conf_file = "/opt/linea/prover/config/executor/aggregation.config.toml"
# The directory where we read the files to handle
dir_from = "/data/prover/v2/aggregation/requests"
# The directory where we write the generated file
dir_to = "/data/prover/v2/aggregation/responses"
# The directory where we move the files when they have been handled.
dir_done = "/data/prover/v2/aggregation/requests-done"

View File

@@ -1,5 +0,0 @@
# This file is empty, partly because we have not determined what should be the
# the exact configuration of the prover-compression yet. We leave it as a placeholder.
# NOTE: It will be passed to the prover-compression, but it will not be opened by the
# command.
dev_mode = true

View File

@@ -1,41 +0,0 @@
tolerate_parent_state_root_hash_mismatch = true
[logging]
# level: trace=1|debug=2|info=3|warn=4|error=5|fatal=6
level = 2
file = ""
[monitoring]
profiling = true
tracing = true
[prover]
version = "v2.0.0"
# type: development|partial|full|proofless
type = "development"
# size: medium|large
size = "medium"
[files]
out_folder = "/opt/linea/prover/setup/light/d1624b8"
pkey_file = "proving_key.bin"
vkey_file = "verifying_key.bin"
circuit_file = "circuit.bin"
[verifier_contract]
verifier_id_partial_m = 1
verifier_id_full_m = 2
verifier_id_full_l = 3
[inputs]
# @alex: Hotfix, although the exec prover runs in dev mode. It will still check
# if the conflated traces dir exists.
conflated_traces_dir = "/"
[feature_gates]
with_keccak = true
with_ecdsa = false
[layer2]
message_service_contract = "0xe537D669CA013d86EBeF1D64e40fC74CADC91987"
chain_id = 1337

View File

@@ -59,7 +59,6 @@ export async function isSendBundleMethodNotFound(rpcEndpoint: URL, targetBlockNu
} catch (err) {
if (err instanceof Error) {
if (err.message === "Method not found") {
// Bundle request doesn't support in traces-v1 besu nodes
return true;
}
}

View File

@@ -4,7 +4,6 @@ import { Logger } from "winston";
declare global {
var stopL2TrafficGeneration: () => void;
var shouldSkipBundleTests: boolean;
var logger: Logger;
}

View File

@@ -3,11 +3,7 @@ import { ethers } from "ethers";
import { config } from "../tests-config";
import { deployContract } from "../../common/deployments";
import { DummyContract__factory, TestContract__factory } from "../../typechain";
import {
etherToWei,
isSendBundleMethodNotFound,
sendTransactionsToGenerateTrafficWithInterval,
} from "../../common/utils";
import { etherToWei, sendTransactionsToGenerateTrafficWithInterval } from "../../common/utils";
import { EMPTY_CONTRACT_CODE } from "../../common/constants";
import { createTestLogger } from "../logger";
@@ -22,8 +18,6 @@ export default async (): Promise<void> => {
await configureOnceOffPrerequisities();
}
process.env.SHOULD_SKIP_BUNDLE_TESTS = (await isSendBundleMethodNotFound(config.getL2BesuNodeEndpoint()!)).toString();
logger.info("Generating L2 traffic...");
const pollingAccount = await config.getL2AccountManager().generateAccount(etherToWei("200"));
const stopPolling = await sendTransactionsToGenerateTrafficWithInterval(pollingAccount, 2_000);

View File

@@ -1,4 +1,3 @@
import { createTestLogger } from "../logger";
global.logger = createTestLogger();
global.shouldSkipBundleTests = process.env.SHOULD_SKIP_BUNDLE_TESTS === "true";

View File

@@ -10,12 +10,7 @@ import {
} from "./common/utils";
import { ethers, TransactionRequest } from "ethers";
const describeIf = shouldSkipBundleTests ? describe.skip : describe;
if (shouldSkipBundleTests) {
logger.info("Skip bundle tests due to tracing-v1 besu nodes");
}
describeIf("Send bundle test suite", () => {
describe("Send bundle test suite", () => {
const l2AccountManager = config.getL2AccountManager();
const lineaCancelBundleClient = new LineaBundleClient(config.getSequencerEndpoint()!);
const lineaSendBundleClient = new LineaBundleClient(config.getL2BesuNodeEndpoint()!);