An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client https://wiki.hyperledger.org/display/besu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
besu/ethereum/core/build.gradle

136 lines
5.0 KiB

/*
* Copyright ConsenSys AG.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*
* SPDX-License-Identifier: Apache-2.0
*/
apply plugin: 'java-library'
jar {
archiveBaseName = 'besu-core'
manifest {
attributes(
'Specification-Title': archiveBaseName,
'Specification-Version': project.version,
'Implementation-Title': archiveBaseName,
'Implementation-Version': calculateVersion()
)
}
}
dependencies {
api 'org.slf4j:slf4j-api'
api 'org.web3j:core'
annotationProcessor 'org.openjdk.jmh:jmh-generator-annprocess'
annotationProcessor 'org.hyperledger.besu:besu-errorprone-checks'
implementation project(':config')
implementation project(':crypto:algorithms')
implementation project(':datatypes')
implementation project(':enclave')
implementation project(':ethereum:rlp')
implementation project(':ethereum:trie')
implementation project(':evm')
implementation project(':metrics:core')
implementation project(':plugin-api')
implementation project(':services:kvstore')
implementation 'com.fasterxml.jackson.core:jackson-databind'
implementation 'com.google.guava:guava'
implementation 'com.github.ben-manes.caffeine:caffeine'
implementation 'com.google.dagger:dagger'
Restrict downgrade (#6307) * Add Besu version to DB metadata. Check for downgrades and reject if version < version recorded in DB metadata. Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * Add --allow-downgrade CLI arg. If set it allows the downgrade and updates the Besu version in the metadata file to the downgraded version. Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * Update gradle verification XML Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * Add and update tests Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * Refactoring Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * Remove versioning from RocksDB, now in separate VERSION_DATADATA.json Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * Tidy up and tests for the new class Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * Move downgrade logic into VersionMetadata as BesuCommand is already very big Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * Add more tests Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * Refactor the naming of the option to version-compatibility-protection Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * Remove remaining references to allow-downgrade Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * Rename test Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * Update comments Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * Metadata verification update Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * gradle fix Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * Enable version downgrade protection by default for non-named networks Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * Fix default logic Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> * Update ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/VersionMetadata.java Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net> Signed-off-by: Matt Whitehead <matthew1001@hotmail.com> * Update ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/VersionMetadata.java Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net> Signed-off-by: Matt Whitehead <matthew1001@hotmail.com> * mock-maker-inline no longer needed Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> --------- Signed-off-by: Matthew Whitehead <matthew1001@gmail.com> Signed-off-by: Matt Whitehead <matthew.whitehead@kaleido.io> Signed-off-by: Matt Whitehead <matthew1001@hotmail.com> Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net>
9 months ago
implementation 'org.apache.maven:maven-artifact'
annotationProcessor 'com.google.dagger:dagger-compiler'
implementation 'io.opentelemetry:opentelemetry-api'
implementation 'io.vertx:vertx-core'
implementation 'net.java.dev.jna:jna'
implementation 'org.apache.commons:commons-lang3'
implementation 'io.tmio:tuweni-bytes'
implementation 'io.tmio:tuweni-concurrent'
implementation 'io.tmio:tuweni-units'
implementation 'io.tmio:tuweni-rlp'
implementation 'org.hyperledger.besu:bls12-381'
implementation 'org.immutables:value-annotations'
Consolidated EIP-4844 (#5724) * Implements EIP-4844. * introduces a Hardfork class to the protocol schedule system * new Engine APIs required for CL to work on 4844 * new DataGas type for tracking block cost for 4844 data * new VersionedHash type to reflect that a versioned hash is not quite a pure sha256 * incorporates wrapped jc-kzg library for KZG point evaluations * New transaction type, and domain objects for constituent parts to represent the Blobs, KZGCommitments, and Proofs used for 4844 * RLP encoders and decoders to support new transaction type * gas pricing calculators for the new type of gas * plugin-api version was changed Signed-off-by: Justin Florentine <justin+github@florentine.us> Co-authored-by: Jiri Peinlich <jiri.peinlich@gmail.com> Co-authored-by: Jason Frame <jason.frame@consensys.net> Co-authored-by: garyschulte <garyschulte@gmail.com> Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net> Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com> Co-authored-by: Gabriel Fukushima <gabrielfukushima@gmail.com> Co-authored-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net> Co-authored-by: Stefan <stefan.pingel@consensys.net> Co-authored-by: spencer-tb <spencer@spencertaylorbrown.uk> * junit5 updates Signed-off-by: Justin Florentine <justin+github@florentine.us> * update t8n test Cancun gas claculator was inheriting from london, should have been shanghai. Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com> --------- Signed-off-by: Justin Florentine <justin+github@florentine.us> Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com> Co-authored-by: Jiri Peinlich <jiri.peinlich@gmail.com> Co-authored-by: Jason Frame <jason.frame@consensys.net> Co-authored-by: garyschulte <garyschulte@gmail.com> Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net> Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com> Co-authored-by: Gabriel Fukushima <gabrielfukushima@gmail.com> Co-authored-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net> Co-authored-by: Stefan <stefan.pingel@consensys.net> Co-authored-by: spencer-tb <spencer@spencertaylorbrown.uk> Co-authored-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
1 year ago
implementation 'tech.pegasys:jc-kzg-4844'
implementation 'io.prometheus:simpleclient_guava'
implementation 'org.xerial.snappy:snappy-java'
annotationProcessor 'org.immutables:value'
testImplementation project(path: ':config', configuration: 'testSupportArtifacts')
testImplementation project(path: ':ethereum:api')
testImplementation project(path: ':ethereum:blockcreation')
testImplementation project(path: ':ethereum:referencetests')
testImplementation project(path: ':ethereum:eth')
testImplementation project(':testutil')
testImplementation project(path: ':plugins:rocksdb')
testImplementation 'org.apache.logging.log4j:log4j-core'
testImplementation 'io.tmio:tuweni-bytes'
testImplementation 'io.tmio:tuweni-io'
testImplementation 'io.tmio:tuweni-units'
testImplementation 'org.assertj:assertj-core'
testImplementation 'org.junit.jupiter:junit-jupiter'
testImplementation 'org.junit.jupiter:junit-jupiter-params'
testImplementation 'org.mockito:mockito-core'
testImplementation 'org.mockito:mockito-junit-jupiter'
testImplementation 'org.awaitility:awaitility'
integrationTestImplementation project(path: ':config', configuration: 'testSupportArtifacts')
integrationTestImplementation project(':testutil')
integrationTestImplementation 'org.assertj:assertj-core'
integrationTestImplementation 'org.junit.jupiter:junit-jupiter-api'
integrationTestImplementation 'org.mockito:mockito-core'
Vert.x upgrade (with tests) (#3135) * compile issues sorted, some tests failing Signed-off-by: Justin Florentine <justin+github@florentine.us> * closing runnerBehind closes the vertx shared with runnerAhead, which now throws an exception Signed-off-by: Justin Florentine <justin+github@florentine.us> * checkpoint when 4/5 websocket login tests pass Signed-off-by: Justin Florentine <justin+github@florentine.us> * exp moved to attribute from principal Signed-off-by: Justin Florentine <justin+github@florentine.us> * fixed more tests Signed-off-by: Justin Florentine <justin+github@florentine.us> * fixed more tests Signed-off-by: Justin Florentine <justin+github@florentine.us> * exception handling test improvement Signed-off-by: Justin Florentine <justin+github@florentine.us> * exception handling test improvement Signed-off-by: Justin Florentine <justin+github@florentine.us> * static renamed Signed-off-by: Justin Florentine <justin+github@florentine.us> * We want old implementation of the host() Newly vertex handles the forward headers and modifies host(). In the process vert.x loses track of port from Host header in case the port was not a string. Signed-off-by: Jiri Peinlich <jiri.peinlich@gmail.com> * adding dependency on jackson-databind for tests Signed-off-by: Jiri Peinlich <jiri.peinlich@gmail.com> * making sure changes are spotless Signed-off-by: Jiri Peinlich <jiri.peinlich@gmail.com> * Dealing with regression Signed-off-by: Jiri Peinlich <jiri.peinlich@gmail.com> * fixing last failing vert.x test hopefully Signed-off-by: Jiri Peinlich <jiri.peinlich@gmail.com> * removed commented out code Signed-off-by: Justin Florentine <justin+github@florentine.us> * reverts debugging adjustment Signed-off-by: Justin Florentine <justin+github@florentine.us> * removed commented out code Signed-off-by: Justin Florentine <justin+github@florentine.us> * minor whitespace cleanup Signed-off-by: Justin Florentine <justin+github@florentine.us> * (internal) Refactor 'onchain' to 'flexible' where applicable (#3075) * CLI option name change Signed-off-by: Frank Li <b439988l@gmail.com> * refactor privacyparameters.java and add deprecation warning Signed-off-by: Frank Li <b439988l@gmail.com> * more refactoring Signed-off-by: Frank Li <b439988l@gmail.com> * add to everything.toml Signed-off-by: Frank Li <b439988l@gmail.com> * bugs Signed-off-by: Frank Li <b439988l@gmail.com> * more missing variable names Signed-off-by: Frank Li <b439988l@gmail.com> * more classes Signed-off-by: Frank Li <b439988l@gmail.com> * more classes Signed-off-by: Frank Li <b439988l@gmail.com> * fix compile error Signed-off-by: Frank Li <b439988l@gmail.com> * add new test to invalidate passing both commands Signed-off-by: Frank Li <b439988l@gmail.com> * more refactoring + more tests Signed-off-by: Frank Li <b439988l@gmail.com> * new batch Signed-off-by: Frank Li <b439988l@gmail.com> * final batch? Signed-off-by: Frank Li <b439988l@gmail.com> * failing unit test Signed-off-by: Frank Li <b439988l@gmail.com> * revert incorrect refactoring back to onchain Signed-off-by: Frank Li <b439988l@gmail.com> * fix unit test Signed-off-by: Frank Li <b439988l@gmail.com> * comment Signed-off-by: Frank Li <b439988l@gmail.com> * comment Signed-off-by: Frank Li <b439988l@gmail.com> * support both privx methods Signed-off-by: Frank Li <b439988l@gmail.com> * add to changelog Signed-off-by: Frank Li <b439988l@gmail.com> * address comment Signed-off-by: Frank Li <b439988l@gmail.com> * add plugin privacy Signed-off-by: Frank Li <b439988l@gmail.com> Signed-off-by: Justin Florentine <justin+github@florentine.us> * checkpoint when 4/5 websocket login tests pass Signed-off-by: Justin Florentine <justin+github@florentine.us> * trying to figure out how to decouple this test Signed-off-by: Justin Florentine <justin+github@florentine.us> * spotless Signed-off-by: Justin Florentine <justin+github@florentine.us> * removes Orion from integration test Signed-off-by: Justin Florentine <justin+github@florentine.us> * spotless Signed-off-by: Justin Florentine <justin+github@florentine.us> * Add jackson dependency to merge module Signed-off-by: Diego López León <dieguitoll@gmail.com> * Migrate JWTAuthOptions creations for public keys Signed-off-by: Diego López León <dieguitoll@gmail.com> * Check http client response status Signed-off-by: Diego López León <dieguitoll@gmail.com> * Replace Orian with Tessera in tests Signed-off-by: Diego López León <dieguitoll@gmail.com> * Change Tessera expected error messages in tests Signed-off-by: Diego López León <dieguitoll@gmail.com> * Change executor of integrationTests to allow spanning Docker processes Signed-off-by: Diego López León <dieguitoll@gmail.com> Co-authored-by: Justin Florentine <justin+github@florentine.us> Co-authored-by: Jiri Peinlich <jiri.peinlich@gmail.com> Co-authored-by: Frank Li <39414003+frankisawesome@users.noreply.github.com> Co-authored-by: Sally MacFarlane <sally.macfarlane@consensys.net>
3 years ago
integrationTestImplementation 'org.testcontainers:testcontainers'
Consolidated EIP-4844 (#5724) * Implements EIP-4844. * introduces a Hardfork class to the protocol schedule system * new Engine APIs required for CL to work on 4844 * new DataGas type for tracking block cost for 4844 data * new VersionedHash type to reflect that a versioned hash is not quite a pure sha256 * incorporates wrapped jc-kzg library for KZG point evaluations * New transaction type, and domain objects for constituent parts to represent the Blobs, KZGCommitments, and Proofs used for 4844 * RLP encoders and decoders to support new transaction type * gas pricing calculators for the new type of gas * plugin-api version was changed Signed-off-by: Justin Florentine <justin+github@florentine.us> Co-authored-by: Jiri Peinlich <jiri.peinlich@gmail.com> Co-authored-by: Jason Frame <jason.frame@consensys.net> Co-authored-by: garyschulte <garyschulte@gmail.com> Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net> Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com> Co-authored-by: Gabriel Fukushima <gabrielfukushima@gmail.com> Co-authored-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net> Co-authored-by: Stefan <stefan.pingel@consensys.net> Co-authored-by: spencer-tb <spencer@spencertaylorbrown.uk> * junit5 updates Signed-off-by: Justin Florentine <justin+github@florentine.us> * update t8n test Cancun gas claculator was inheriting from london, should have been shanghai. Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com> --------- Signed-off-by: Justin Florentine <justin+github@florentine.us> Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com> Co-authored-by: Jiri Peinlich <jiri.peinlich@gmail.com> Co-authored-by: Jason Frame <jason.frame@consensys.net> Co-authored-by: garyschulte <garyschulte@gmail.com> Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net> Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com> Co-authored-by: Gabriel Fukushima <gabrielfukushima@gmail.com> Co-authored-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net> Co-authored-by: Stefan <stefan.pingel@consensys.net> Co-authored-by: spencer-tb <spencer@spencertaylorbrown.uk> Co-authored-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
1 year ago
integrationTestImplementation 'io.tmio:tuweni-bytes'
integrationTestRuntimeOnly 'org.junit.jupiter:junit-jupiter'
testSupportImplementation project(path: ':config', configuration: 'testSupportArtifacts')
testSupportImplementation project(':ethereum:eth')
testSupportImplementation project(':testutil')
testSupportImplementation 'org.junit.jupiter:junit-jupiter'
testSupportImplementation 'org.assertj:assertj-core'
testSupportImplementation 'org.mockito:mockito-core'
jmhImplementation project(path: ':config', configuration: 'testSupportArtifacts')
jmhImplementation project(':crypto:algorithms')
jmhImplementation project(path: ':ethereum:core', configuration: 'testSupportArtifacts')
jmhImplementation project(':ethereum:rlp')
jmhImplementation project(':ethereum:trie')
jmhImplementation project(':metrics:core')
jmhImplementation project(':plugin-api')
jmhImplementation project(':plugins:rocksdb')
jmhImplementation project(':services:kvstore')
jmhImplementation project(':util')
jmhImplementation 'com.google.guava:guava'
}
configurations { testArtifacts }
task testJar(type: Jar) {
archiveBaseName = "${project.name}-test"
from sourceSets.test.output
}
artifacts {
testArtifacts testJar
testSupportArtifacts testSupportJar
}