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

135 lines
4.9 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(),
'Commit-Hash': getGitCommitDetails(40).hash
)
}
}
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.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'
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
}