Files
linea-monorepo/coordinator/app/build.gradle
jonesho fad0db4fc6 3822 rejected transaction api service (#101)
* feat: first commit for transaction exclusion api service

* feat: removed debug logs and improved params error handling

* fix: jacocoRootReport error

* feat: improved json request param parsings

* feat: added docker container and github workflow pipeline for transaction exclusion api

* feat: added rejection stage in response and use txHash and rejectReason as primary key of tables

* feat: separate database into read and write config and each with dedicated connection

* fix: e2e testing error

* feat: removed redundant commands in Makefile

* feat: updated transaction exclusion api default image tag in compose file

* feat: added metric and change param name from reasonMessage to reason

* feat: added integration and unit tests and use reasonMessage for both request and response

* fix: transaction-exclusion-api unit test

* feat: added e2e tests and remove reasonMessage from get response and redundant codes

* feat: updated README.md and removed abi file

* feat: updated image version of transaction exclusion api service in compose file

* feat: updated README and added more test cases

* feat: updated transaction exclusion api default image tag in compose file

* feat: decoupled transaction exclusion api from coordinator package

* feat: removed unnecessary dependencies to prover client

* feat: moved persistence:db package to jvm-libs

* feat: removed migration file dir location config from transaction exclusion api

* fix: db migration location for fee history integration test

* changed db column name timestamp to reject_timestamp and add dto for ModuleOverflow to remove all jackson dependencies in core module

* feat: rejected transaction dao and config refactoring

* feat: removed repository service and using persistence retryer

* feat: updated transaction exclusion api default image tag in compose file

* feat: updated log and increase retry backoff delay to avoid repetitive error logs

* feat: added support of list request on save method and added dto for RejectedTransaction

* feat: revised gradle.build dependencies

* feat: switch from shadow jar to zipped jar

* feat: updated transaction exclusion api default image tag in compose file

* feat: updated sql and tables and changes for PR comments

* feat: improved log message for duplicate key error

* feat: updated transaction exclusion api default image tag in compose file

* feat: avoid redundant logs on periodic db cleanup

* feat: revised request handlers plus better test assertions on insertion

* fix: test case

* feat: parse save method json request with jackson

* feat: extracted db migrations from the coordinator and transaction-exclusion app

* feat: decoupled coordinator modules from jvm-libs persistence db test module

* feat: updated dockerfile of transaction-exclusion-api

* feat: removed the find check before metric increment on save rejected transaction

* feat: updated docker base image for tx-exclusion-api image buid and queryable window config

* feat: skip migration scripts on read db instance

* feat: updated more percise jvm-libs change filtering on transaction-exclusion-api

* feat: updated coordinator config for geth node l2 gas pricing recipients

* feat: update runners with specific version and removed the use of retry for transaction exclusion api testing

* feat: add integration test for transaction exclusion app

* feat: update local stack docker compose and workflow for transaction exclusion

* feat: add e2e test for transaction exclusion

* feat: skip the sequencer test in transaction exclusion e2e test

* feat: revert sequencer config poa-block-txs-selection-max-time

* feat: remove incorrect comment

* feat: added explicitly assertion if tx exclusion is not defined and simplify the localStackPostgresDbOnly in build.gradle

* feat: remove beforeAll in test suite with it.concurrent

* feat: set coordinator config blob-compressor-version as V1_0_1 explicitly for traces-v2

* feat: update coordinator config test

* feat: change default prefix not to be coordinator specific

* feat: place persistence:db under jvm-libs:generic and fixed conflicts from latest main

* fix: remove dependency to resolve circular dependency issue

* test: switch from localStackPostgresDbOnlyComposeUp to localStackComposeUp

* feat: replace GITHUB_SHA with github.event.pull_request.head.sha in computing commit tag

* feat: update filter change file lists for transaction exclusion api
2024-10-22 15:50:44 +08:00

100 lines
4.8 KiB
Groovy

plugins {
id 'net.consensys.zkevm.kotlin-application-conventions'
}
configurations.configureEach {
exclude group: "org.rocksdb", module: "rocksdbjni"
exclude group: "it.unimi.dsi", module: "fastutil"
exclude group: "org.hyperledger.besu", module: "bls12-381"
exclude group: "org.hyperledger.besu", module: "secp256r1"
}
dependencies {
implementation project(':jvm-libs:generic:json-rpc')
implementation project(':jvm-libs:generic:http-rest')
implementation project(':jvm-libs:generic:vertx-helper')
implementation project(':jvm-libs:generic:extensions:futures')
implementation project(':jvm-libs:generic:persistence:db')
implementation project(':jvm-libs:linea:web3j-extensions')
implementation project(':jvm-libs:linea:core:metrics')
implementation project(':jvm-libs:linea:metrics:micrometer')
implementation project(':jvm-libs:linea:core:domain-models')
implementation project(':coordinator:utilities')
implementation project(':coordinator:core')
implementation project(':coordinator:clients:shomei-client')
implementation project(':coordinator:clients:traces-generator-api-client')
implementation project(':coordinator:clients:type2-state-manager-client')
implementation project(':coordinator:clients:prover-client:file-based-client')
implementation project(':coordinator:clients:smart-contract-client')
implementation project(':coordinator:ethereum:finalization-monitor')
implementation project(':coordinator:ethereum:common')
implementation project(':coordinator:ethereum:models-helper')
implementation project(':coordinator:ethereum:blob-submitter')
implementation project(':coordinator:ethereum:message-anchoring')
implementation project(':coordinator:clients:web3signer-client')
implementation project(':coordinator:persistence:blob')
implementation project(':coordinator:persistence:aggregation')
implementation project(':coordinator:persistence:batch')
implementation project(':coordinator:persistence:feehistory')
implementation project(':coordinator:persistence:db-common')
implementation project(":jvm-libs:linea:teku-execution-client")
implementation "tech.pegasys.teku.internal:bytes:${libs.versions.teku.get()}"
implementation project(':coordinator:ethereum:gas-pricing:static-cap')
implementation project(':coordinator:ethereum:gas-pricing:dynamic-cap')
implementation project(':coordinator:ethereum:gas-pricing')
implementation "info.picocli:picocli:${libs.versions.picoli.get()}"
implementation "io.vertx:vertx-web-client"
implementation "com.sksamuel.hoplite:hoplite-core:${libs.versions.hoplite.get()}"
implementation "com.sksamuel.hoplite:hoplite-toml:${libs.versions.hoplite.get()}"
api("io.netty:netty-transport-native-epoll:${libs.versions.netty.get()}:linux-x86_64") {
because "It enables native transport for Linux."
// Note that its version should match netty version used in Vertx
}
api("io.netty:netty-transport-native-kqueue:${libs.versions.netty.get()}:osx-x86_64") {
because "It enables native transport for Mac OSX."
// Note that its version should match netty version used in Vertx
}
implementation "com.fasterxml.jackson.core:jackson-annotations:${libs.versions.jackson.get()}"
implementation "com.fasterxml.jackson.core:jackson-databind:${libs.versions.jackson.get()}"
implementation "com.fasterxml.jackson.module:jackson-module-kotlin:${libs.versions.jackson.get()}"
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:${libs.versions.jackson.get()}")
testImplementation "org.apache.logging.log4j:log4j-slf4j2-impl:${libs.versions.log4j.get()}"
testImplementation project(':coordinator:ethereum:test-utils')
testImplementation "io.vertx:vertx-junit5"
}
application {
mainClass = 'net.consensys.zkevm.coordinator.app.CoordinatorAppMain'
}
jar {
archiveBaseName = 'coordinator'
manifest {
attributes(
'Class-Path': project.configurations.runtimeClasspath.collect { it.getName() }.findAll { it.endsWith('jar') }.join(' '),
'Main-Class': 'net.consensys.zkevm.coordinator.app.CoordinatorAppMain',
'Multi-Release': 'true'
)
}
}
distributions {
main {
distributionBaseName = 'coordinator'
}
}
run {
workingDir = rootProject.projectDir
jvmArgs = [
"-Dvertx.configurationFile=config/coordinator/vertx-options.json",
"-Dlog4j2.configurationFile=config/coordinator/log4j2-dev.xml"
] + System.properties.entrySet()
.findAll { it.key.startsWith("config") }
.collect { "-D${it.key}=${it.value}" }
args = ["--traces-limits", "config/common/traces-limits-v1.toml", "--smart-contract-errors", "config/common/smart-contract-errors.toml", "--gas-price-cap-time-of-day-multipliers", "config/common/gas-price-cap-time-of-day-multipliers.toml", "config/coordinator/coordinator-docker.config.toml", "config/coordinator/coordinator-local-dev.config.overrides.toml"]
}