300 Commits

Author SHA1 Message Date
Justin Florentine
5542730c55 update version for snapshot (#6154)
Signed-off-by: Justin Florentine <justin+github@florentine.us>
2023-11-10 15:02:10 -05:00
Fabio Di Fabio
5681aa24a9 Merge branch 'main' into zkbesu 2023-11-06 14:04:04 +01:00
Danno Ferrin
094c8416df Journaled world state (#6023)
Introduce a new Journaled World State Updater. Within a transaction it
keeps one copy of account and storage state, restoring previous 
revisions on reverts and exceptional halts. This updater only supports 
post-merge semantics with regard to empty accounts, namely that they do
not exist in world state.

Adds an EvmConfiguration option for stacked vs journaled updater, and
wire it in where needed. The staked updater is default mode, which is
the current behavior prior to this patch.

Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
2023-10-31 10:10:48 -06:00
Stefan Pingel
ae2651a03b Merge branch 'hyperledger:main' into zkbesu 2023-10-13 10:53:04 +10:00
Fabio Di Fabio
e5c9f55f8b Force the use of jdk18 version of Bouncy Castle library (#5748)
This avoid that any dependency can include the jdk15 version in the distribution.
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
2023-10-12 12:43:41 +02:00
Fabio Di Fabio
90bdd3cb6d Upload distributions to Cloudsmith (#15)
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
2023-10-05 15:55:41 +02:00
Fabio Di Fabio
4aa2e475f3 Fix artifacts groupId
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
2023-10-05 10:11:14 +02:00
Fabio Di Fabio
c1d89e8f18 Fix build
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
2023-10-04 19:13:31 +02:00
Fabio Di Fabio
5ff9889efc Rename artifacts group it to linea-besu and remove uneeded stuff
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
2023-10-04 18:27:18 +02:00
Fabio Di Fabio
908a6c6301 Publish java artifacts to Cloudsmith (#14)
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
2023-10-04 12:22:10 +02:00
Fabio Di Fabio
7c5c2bfbcb Tune G1GC to reduce Besu memory footprint (#5879)
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
2023-09-19 21:06:42 +02:00
Fabio Di Fabio
bab9c1d111 Make checkSpdxHeader task cross platform (#5794)
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
2023-08-24 15:52:33 +02:00
Danno Ferrin
03ff688043 Changes to allow evmtool t8n-server to work with execution-spec-tests (#5701)
An omnibus of minor changes needed for t8n-server to work with the EFs
new execution-spec-tests framework

* Reduce logging output
* Fix json library mismatch between t8n and t8n-server
* Add hook to enumerate supported forks
* temporarily map Shanghai+6780 to Cancun
* add to main distro under 'evmtool' name
* No longer support the "protected" attribute in TXes

Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
2023-07-18 17:47:54 -06:00
Simon Dudley
d81abd66bd Add --amend to docker manifest create to fix docker latest tag (#5661)
We need to replace previous release's latest tag. Might be broken due to a recent change in the docker command implementation
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
2023-06-30 14:49:39 +10:00
Danno Ferrin
fcdb20296a Update evmtool graalvm build (#5639)
* add new class to reflection config
* move CLI output to be system-err oriented
* make logger in evmtool nop
* exclude some problematic jars from compilation
  - mixed versions of bouncy castle
  - netty initializations of log4j
* Standardize JSON ObjectMapper Construction
* Add some manual mappings
* Directly instantiate crypto algorithms where appropriate

Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
2023-06-27 23:46:15 -06:00
Simon Dudley
890e8cde14 Make docker commands easier to debug during upload and manifest creation (#5522)
- Print docker commands during upload and manifest creation
- Separate out docker push and docker manifest push commands for release

Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
2023-06-01 14:39:12 +10:00
Sally MacFarlane
78f8efff7a Remove quorum-mainnet-launcher (#5355)
* remove launcher from besucommand

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
2023-04-19 05:51:41 +10:00
Fabio Di Fabio
557c568c18 Update most dependecies to latest version (#5269)
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
2023-04-04 16:52:25 +02:00
garyschulte
b0e441e32e openj9 docker build (#5217)
* openj9 and fix for swt metadata

Signed-off-by: garyschulte <garyschulte@gmail.com>

---------

Signed-off-by: garyschulte <garyschulte@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
2023-03-20 09:25:58 +10:00
Justin Florentine
249a6f363e Sonarcloud Analysis once a week. (#5137)
* fixing the sonarcloud building in gha
* update to temurin 17
* adds checksums on sonarqube plugins
* ignore generated for spdx
* runs at midnight Tuesday mornings UTC

---------

Signed-off-by: Joshua Fernandes <joshua.fernandes@consensys.net>
Signed-off-by: Justin Florentine <justin+github@florentine.us>
Co-authored-by: Joshua Fernandes <joshua.fernandes@consensys.net>
2023-03-07 13:11:23 +10:00
Usman Saleem
b0daf14813 Add Withdrawls execution tests to reference test (#5143)
Added Ethereum execution spec test to be generated and executed by reference tests gradle task. Add `https://github.com/ethereum/execution-spec-tests/releases` as custom ivy repository to easily download and cache the test specs. Updated the reference test gradle file to generate the test Java classes.

Signed-off-by: Usman Saleem <usman@usmans.info>
2023-03-01 15:32:12 +10:00
Jason Frame
01b16bd900 Fix manifest docker not skipping interim builds for RCs (#5068)
Signed-off-by: Jason Frame <jason.frame@consensys.net>
2023-02-09 17:23:13 +10:00
Usman Saleem
e18e407c4e Use Java 17 to build and run Besu (#4977)
Update following sections:
Gradle build, CircleCI, GitHub Actions, Docker

The devp2p TLS mutual authentication unit tests dealing with PKCS11+nss and QBFT+PKCS11+nss ATs were failing on Java 17 when dealing with RSA keys. The unit tests and AT are updated to use EC keys instead. The keystores, truststores, CRL etc. involved in those ATs are regenerated and detailed instructions are provided on how they are created.

Signed-off-by: Usman Saleem <usman@usmans.info>
2023-02-03 10:17:54 +10:00
Justin Florentine
f8a0f87405 KZG point eval precompile (#4860)
* KZG implementation

Signed-off-by: Justin Florentine <justin+github@florentine.us>
2023-01-23 09:01:39 -05:00
Fabio Di Fabio
679ea46e6f Exclude Dagger generated sources from ErrorProne (#4963)
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
2023-01-19 15:11:30 +01:00
Usman Saleem
9eb32836b7 Fix javadocs to allow build to pass in JDK 17 (#4834)
- Added missing javadocs so that javadoc doclint passes against JDK 17 (invoke by Besu gradle build).
- Exclude following packages from javadoc lint:
org.hyperledger.besu.privacy.contracts.generated
org.hyperledger.besu.tests.acceptance.*
- Temporarily exclude ethereum and evm submodule for doc lint checks.
- Run the javadoc task using GitHub actions (use Java 17) to report any javadoc errors during the PR builds
- Updating plugin-api build.gradle with new hash as javadoc comments caused it to change

Signed-off-by: Usman Saleem <usman@usmans.info>
2023-01-18 22:51:00 +10:00
Jiri Peinlich
fbe4ba571f Allow -Pdocker-platform during distDocker (#4828)
As an example of usecase - this should make it easier to build linux/amd64 images on M1.

Signed-off-by: Jiri Peinlich <jiri.peinlich@gmail.com>

Signed-off-by: Jiri Peinlich <jiri.peinlich@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
2023-01-04 12:22:48 +10:00
Danno Ferrin
9dbf12058a Re-enable integration tests (#4871)
When Integration tests were migrated to JUnit 5 the gradle configuration was not added.
Fix various tests that had broken in the meantime:
 - NPEs when EnclaveEncryptorType was introduced
 - Account for new future nonce restrictions in the txpool

Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Co-authored-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Co-authored-by: Simon Dudley <simon.dudley@consensys.net>
2023-01-03 18:30:28 +10:00
Sally MacFarlane
4b160e5daa Deprecation notice for GoQuorum-compatible privacy and IBFT 1.0 (#4839)
* remove quorum ats task

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

* add deprecation notice

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

* typo

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
2022-12-20 06:57:16 +10:00
Jason Frame
1c59bdc7d8 Docker release task for latest tags (#4810)
Signed-off-by: Jason Frame <jason.frame@consensys.net>
2022-12-16 11:41:49 +10:00
Jason Frame
1205e3a6f0 Docker release builds to no longer add latest tag (#4791)
Signed-off-by: Jason Frame <jason.frame@consensys.net>
Co-authored-by: Justin Florentine <justin+github@florentine.us>
2022-12-10 06:22:13 +10:00
lukelee-sl
609904e509 gradle modifications to support java 19 (#4797)
* gradle modifications to support java 19

Signed-off-by: lukelee-sl <luke.lee@swirldslabs.com>
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Co-authored-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
2022-12-08 21:40:42 -07:00
Sally MacFarlane
d95cea338f docker upload task - check for alpha and RC (#4675)
* check for alpha and RC

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
2022-11-15 13:17:43 +10:00
Daniel Lehrner
78c68064c1 Ignore .idea directory in spotless checks (#4657) 2022-11-14 16:57:20 +01:00
Pedro Novais
85357889f5 allow setting docker variables through gradle arguments (#4559)
* allow setting dockerVariant, dockerImagesName through project properties arguments

Signed-off-by: Pedro Novais <jpvnovais@gmail.com>
2022-11-01 11:08:25 +10:00
Danno Ferrin
79ff26ec83 Update spotless config (#4366)
Update the greclipse version in spotless as directed by build errors
to reduce random formatting errors.

Also, update formatting to new version

Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
2022-09-08 16:57:46 +01:00
Sally MacFarlane
4622cf6820 update Tessera version and ubuntu for xl-machine-executor (#4305)
* latest ubuntu for xl-machine-ex

* tessera docker image version

Signed-off-by: Sally MacFarlane <sally.macfarlane@consensys.net>
2022-08-25 09:46:01 +10:00
Danno Ferrin
60b806cc5f Gradle repository maintenance (#4273)
Cleanup repository references and limit scope of non-mavenCentral
repositories.

Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
2022-08-17 22:40:26 -06:00
Antoine Toulme
049d234c0e upgrade spotless to 6.8.0 (#4195)
Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>
2022-07-28 22:56:29 -03:00
Danno Ferrin
d0c71c3bdc Remove Sonar Integration (#4135)
Sonar has been removed from the build workflow. This PR removes all
configuration and code markings that were used to facilitate it.

Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
2022-07-21 23:28:20 +01:00
Danno Ferrin
755771d22c Dependency Version Updates for 22.7.0-RC1 (#4004)
Update dependency versions.

Dependencies skipped because they require compatibility work
 * vertx
 * JMH
 * Prometheus
 * RocksDB
 * Web3j
 * Gradle

Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
2022-06-23 11:03:07 -03:00
Sally MacFarlane
12a0ba9c6d fixed manifest generation for latest docker tag (#3880)
Signed-off-by: Sally MacFarlane <sally.macfarlane@consensys.net>
2022-05-19 23:38:58 -07:00
garyschulte
d3c7268eda Fix for multi-arch docker develop and latest tags (#3816)
* fix and test docker manifest step for develop and latest tags

Signed-off-by: garyschulte <garyschulte@gmail.com>
2022-05-11 07:42:24 -07:00
garyschulte
1efe1f01a5 Build arm64 besu docker images (#2954)
* first pass at building arm64 besu docker images
* add arch to docker publish
* add architecture envars to executors
* first pass at manifest docker
* setup docker in manifest step
* add base image to manifestDocker
* add changelog

Signed-off-by: garyschulte <garyschulte@gmail.com>
2022-05-09 19:49:29 +02:00
Danno Ferrin
b4027d6e39 Use JUnit 5 for unit test execution (#3620)
Change the unit test execution to use the Junit5 JUnitPlatform. This
allows for a mix of junit 4 and junit 5 tests and for a gradual
migration to junit 5 instead of a big bang. One class depended on
junit 4 exceptions and was updated. Two tests depending on 
native libraries fail gracefully on mac (and only mac).

Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
2022-04-02 00:34:48 +10:00
Sally MacFarlane
abf9b0d057 quorum ats does not depend on building docker image (#3606)
Signed-off-by: Sally MacFarlane <sally.macfarlane@consensys.net>
2022-03-28 14:32:51 +10:00
Sally MacFarlane
7a83f74fb9 Updated netty (#3538)
* updated netty

Signed-off-by: Sally MacFarlane <sally.macfarlane@consensys.net>
2022-03-09 05:21:08 +01:00
Danno Ferrin
f868ee5965 Migrate JumpDestCache to CodeCache (#3472)
Migrate the jump dest analysis cache into a more generic code cache that
lives inside the EVM.

This is in preparation for Ethereum Object Formats where a string of
code may be treated differently depending on what EVM version is
executing the code. Newer versions will also have difference analyses to
run that will need different backing data structures.

Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
2022-02-21 11:35:58 -07:00
Danno Ferrin
5040533b88 EIP-3436 - Expanded Clique Block Choice Rule (#2084)
Add block choice rule to Clique

1. Choose the block with the most total difficulty.
2. Then choose the block with the lowest block number.
3. Then choose the block whose validator had the least recent in-turn block assignment.
4. Then choose the block with the lowest hash.

Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
Co-authored-by: Sally MacFarlane <sally.macfarlane@consensys.net>
2022-01-27 01:18:10 -05:00
Diego López León
ed1329cf84 Introduce SLF4J for logging (#3285)
* Bump SLF4J version

Signed-off-by: Diego López León <dieguitoll@gmail.com>

* Replace log4j2 API with SLF4j API

Signed-off-by: Diego López León <dieguitoll@gmail.com>

* Replace usage of LogManager#getFormatterLogger

This is for keeping compatibility with SLF4J. If neccesary, a specific formatter can be created for the RlpBlockImporter class

Signed-off-by: Diego López León <dieguitoll@gmail.com>

* Unset the default logging value for the retesteth

This is because it's not possible to resolve the root logger level into a Log4J2 field

Signed-off-by: Diego López León <dieguitoll@gmail.com>

* Prevent creation of Logger context outside SLF4J

org.hyperledger.besu.cli.BesuCommand#setAllLevels was taken from
https://github.com/apache/logging-log4j2/blob/rel%2F2.17.1/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java#L309

Signed-off-by: Diego López León <dieguitoll@gmail.com>

* Add FATAL level deprecation message

Signed-off-by: Diego López León <dieguitoll@gmail.com>

* [Sonar] Fix java:S2139

Exceptions should be either logged or rethrown but not both

Signed-off-by: Diego López León <dieguitoll@gmail.com>

* [Sonar] Fix java:S3457

Printf-style format strings should be used correctly

Signed-off-by: Diego López León <dieguitoll@gmail.com>

* Add changelog

Signed-off-by: Diego López León <dieguitoll@gmail.com>
2022-01-25 20:14:54 -03:00