67 Commits

Author SHA1 Message Date
Bhanu Pulluri
2db46e964c Enable Quorum/IBFT1 to Besu migration (#8262)
* Enable Quorum/IBFT1 to Besu migration

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* Fix BftMining acceptance test

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* Introduce delay after London fork update in BFT mining test to prevent timing issues

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* Update besu/src/main/java/org/hyperledger/besu/controller/IbftLegacyBesuControllerBuilder.java

Co-authored-by: Matt Whitehead <matthew1001@hotmail.com>
Signed-off-by: Bhanu Pulluri <59369753+pullurib@users.noreply.github.com>

* Review changes

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* update creating additional JSON RPC methods for all controllerbuidlers in consensus schedule

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* Create ethprotocol manager and plugin factory for both consensus controllers in migration

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* Refactor resource files

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* fix verification metadata

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* fix regression

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* update changelog

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* Fix controller selection at the transition block

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* Review changes

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* Revert BftExtraData changes

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

---------

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>
Signed-off-by: Bhanu Pulluri <59369753+pullurib@users.noreply.github.com>
Co-authored-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>
Co-authored-by: Matt Whitehead <matthew1001@hotmail.com>
Co-authored-by: Matt Whitehead <matthew.whitehead@kaleido.io>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
2025-03-12 14:08:51 +00:00
Fabio Di Fabio
f18aa50815 Remove custom plugin repository needed for previous version of jc-kzg (#8335)
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
2025-02-20 09:05:07 -08:00
Jason Frame
ea8579d63a Move the core of qbft into a qbft core module (#8043)
Move the core of QBFT into a qbft core module so it can be reused outside Besu

Signed-off-by: Jason Frame <jason.frame@consensys.net>
2024-12-20 13:12:06 +10:00
Sally MacFarlane
63496dbc6c Remove P2P TLS (experimental) feature (#7942) 2024-11-29 15:43:50 +10:00
garyschulte
1da0e9f232 remove dangling retesteth references (#7856)
Signed-off-by: garyschulte <garyschulte@gmail.com>
2024-11-05 07:16:36 +10:00
Fabio Di Fabio
9a7744763a Create and publish Besu BOM (Bill of Materials) (#7615)
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
2024-10-18 10:50:55 +00:00
Danno Ferrin
1598e6be67 EOF Differential Layout Fuzzer (#7488)
Differential EOF Layout Fuzzer guided by Besu's layout parser.

Signed-off-by: Danno Ferrin <danno@numisight.com>
2024-08-21 20:01:35 +00:00
Matt Whitehead
b1ac5acd60 Add new acceptance test to soak test BFT chains (#7023)
* Add new acceptance test to soak test BFT chains

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Spotless

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Tidy up a little with re-usable start and stop functions with built in delays

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Add shanghai version of Simple Storage contract

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Put commented gradle code back in. Fix the web3j example commands in .sol files

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Spotless

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Set publication artifacts to avoid clash

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Exclude from regular acceptance tests

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Add shanghai fork to the test. Stall the chain for less time to reduce the time taken to mine new blocks

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Tidy up

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Update acceptance-tests/tests/shanghai/build.gradle

Co-authored-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Matt Whitehead <matthew1001@hotmail.com>

* Tidy up var names

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Fix ports for IBFT2 as well as QBFT

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Remove maven publish spec, disable jar building for shanghai contract project

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* web3j version

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Make fixed port optional when creating a BFT node

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Only check artifact coordinates for those starting 'org.*'

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

---------

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
Signed-off-by: Matt Whitehead <matthew1001@hotmail.com>
Signed-off-by: Matt Whitehead <matthew.whitehead@kaleido.io>
Co-authored-by: Simon Dudley <simon.dudley@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
2024-06-11 11:46:36 +01:00
Fabio Di Fabio
cf5e3dae98 Update Web3j dependencies (#6811)
* Update Web3j dependencies

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>

* Force old version of the solidity compiler to pass AT

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>

---------

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
2024-04-02 15:06:37 +00:00
Usman Saleem
e954537fcc build - Refactor Besu custom error prone dependency (#6692)
Move Besu custom error-prone checks into its own repository and use it as an external dependency. This allows to move to a newer version of Google errorprone checks as well while cleaning up build.gradle file.

Key changes resulted due to this change:

* String toLowerCase and toUpperCase to use Locale.ROOT as argument
* Use interface such as List,Map or NavigatableMap instead of concrete class where appropriate.
* Simplify StringBuilder to plain String
* Suppress warnings where appropriate.
-----
Signed-off-by: Usman Saleem <usman@usmans.info>
2024-03-27 06:17:40 +10:00
Fabio Di Fabio
1a7244f808 Update Gradle plugins and replace unmaintained license plugin (#6275)
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
2023-12-18 11:08:32 +01:00
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
Sally MacFarlane
795b7c4dfb [23.4] Remove IBFT1 consensus mechanism (#5302)
* remove controller and config

* remove ibftlegacy module

* remove further config options

* run non-mainnet ATs just to be sure

* remove temp change to circle config

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
2023-04-11 14:55:50 +10:00
Danno Ferrin
ebbc0df773 Reduce EVM module dependencies (#5285)
Refactor crypto, datatypes, and plugin-api to reduce plugin APIs in the EVM.

Split crypto into crypto services and crypto algorithms
Reverse the dependency between datatyps and plugin-api.
Remove plugin Hash and Address types (use datatypes)
Move PublicKey and Quantity into datatypes.

Lots of changes to imports and build files, and some fromPlugin calls removed.

Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Signed-off-by: Danno Ferrin <danno.ferrin@shemnon.com>
Co-authored-by: Justin Florentine <justin+github@florentine.us>
2023-03-30 18:34:37 -05:00
Sally MacFarlane
37ffa1f8bf remove container tests (#4999)
* remove container tests

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

* print error message in event of AT failure

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

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
2023-01-27 10:35:37 +10:00
Antoine Toulme
f9bc1b76e4 add bandersnatch point (#4647)
* add bandersnatch point

Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>

* fix build

Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>

* fix build

Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>

* fix build

Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>

* fix build

Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>

* spotless

Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>

* comment test

Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>

* Update ethereum/verkletrie/src/main/java/org/hyperledger/besu/ethereum/verkletrie/bandersnatch/fp/Element.java

Co-authored-by: Guillaume Ballet <3272758+gballet@users.noreply.github.com>
Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>

Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>
Co-authored-by: Guillaume Ballet <3272758+gballet@users.noreply.github.com>
2022-12-10 20:26:04 -08: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
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
fab-10
5221bd5a7d Use an improved version of the Gradle plugin used to check licenses (#3095)
Temporary use a build of this plugin that contains the proposed PR[1],
that improve the downloadLicenses task, reducing its execution time from
about 10 minutes to under 1 minute.
The build is temporary hosted in a custom repository, until a new upstream
version with the patch is released.

[1]https://github.com/hierynomus/license-gradle-plugin/pull/203

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
2021-11-23 12:00:50 +10:00
garyschulte
65cb5f6a9c iterative merge: Initial plumbing for merge subproject (#2968)
Signed-off-by: garyschulte <garyschulte@gmail.com>
2021-10-28 12:13:59 -07:00
Danno Ferrin
2415000caf Evm speedup (#2796)
Broad reaching optimizations to speed up EVM calculations

* Generally speaking, use int and long where it is more appropriate than UInt256 (memory indexes mostly)
* Move the internal stack to Bytes from UInt256
* Re-work the flow of many operations to account for the above

Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
2021-09-23 16:39:45 +10:00
Danno Ferrin
fd961d5296 Evm move (#2790)
Move EVM to a standalone module

Move the EVM classes to a standalone module. This is mostly moves but
some API re-resign to peel out some features not essential to the EVM,
such as privacy support and ties to the data storage subsystem.

Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
2021-09-22 17:59:48 -06:00
Danno Ferrin
2abc7074bb Create new datatypes module for Address, Hash, and Wei (#2779)
* Create new datatypes module

Create a new `datatypes` module to hold datatypes that are broadly used.
This will aid modularization by making sure the base types in the module
minimize the amount of unrelated support classes needed.

Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>

* Add Address, Hash, and Wei to datatypes

Move the Address, Hash, and Wei to datatypes in as they are needed for
EVM modularization.

Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
2021-09-20 14:08:09 -06:00
Lucas Saldanha
17b2d53aa8 Added PKI module (#2298)
* Added PKI keystore

Signed-off-by: Lucas Saldanha <lucascrsaldanha@gmail.com>
2021-05-31 14:23:38 +12:00
Antony Denyer
840d364659 PermissioningService Besu Plugin (#2218)
* Permissioning: Add plugin extension point

Added plugin extension point to allow developers to write their
own implementation of `NodePermissioningProvider::isPermitted`

This will allow developers to implement their own interpretations of
things like on-chain permissioning.

Signed-off-by: Antony Denyer <git@antonydenyer.co.uk>

* refactor: rename NodePermissioningProvider::isPermitted

Interface will be used for other pemissioning needs

Signed-off-by: Antony Denyer <git@antonydenyer.co.uk>

* Permissioning: added hook for NodeMessagePermissioning

All message sent to a peer will call into isMessagePermitted
if providers have been registered through the plugin api

Signed-off-by: Antony Denyer <git@antonydenyer.co.uk>

* AcceptanceTests: test node nodePermissioningProvider

4 node cluster with permissioning blocking a direct between two nodes
and permissioning blocking transaction messages for a single node

Signed-off-by: Antony Denyer <git@antonydenyer.co.uk>

* fix: unit tests for NodePermissioningControllerFactory

Signed-off-by: Antony Denyer <git@antonydenyer.co.uk>

* fix: fat finger typo

Signed-off-by: Antony Denyer <git@antonydenyer.co.uk>

* fix: reduce likely hood of flakey test

Signed-off-by: Antony Denyer <git@antonydenyer.co.uk>

* fix: remove comment

Signed-off-by: Antony Denyer <git@antonydenyer.co.uk>

* fix: typos

Signed-off-by: Antony Denyer <git@antonydenyer.co.uk>

* fix: remove jitpack references

Signed-off-by: Antony Denyer <git@antonydenyer.co.uk>

* fix: tidy up EthPeerTest args

Signed-off-by: Antony Denyer <git@antonydenyer.co.uk>

* fix: update plugin hash check

Signed-off-by: Antony Denyer <git@antonydenyer.co.uk>

* fix: improve test reliability

Signed-off-by: Antony Denyer <git@antonydenyer.co.uk>

* refactor: move test-plugins out from besu/main into acceptance-tests

Signed-off-by: Antony Denyer <git@antonydenyer.co.uk>
2021-05-17 10:30:49 +10:00
mark-terry
6fe29e5dd9 "container-tests" module. (#1894)
Signed-off-by: Mark Terry <mark.terry@consensys.net>
2021-04-14 13:15:48 +10:00
Trent Mohay
6dd89a534a Create Qbft Prepare and Commit messages (#1691)
This adds the Prepare and Commit messages used in the QBFT protocol, this is an incremental movement toward QBFT - and does not offer new functionality.

Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
2021-01-05 13:02:10 +11:00
matkt
c8e23c970e Add ethstats support (#1239)
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
2020-08-04 09:54:20 +02:00
Danno Ferrin
912d125117 EvmTool - A CLI for ad hoc performance and fuzz testing (#786)
A standalone CLI that performs EVM execution with provided genesis
files and raw EVM bytecodes.

Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
2020-04-29 10:16:55 -06:00
Ivaylo Kirilov
9701a92dc9 on-chain-privacy-groups (#423)
Introduce on-chain privacy groups with add and remove functionality.

Signed-off-by: Ivaylo Kirilov <iikirilov@gmail.com>
2020-03-05 21:39:09 +00:00
Antoine Toulme
55e24759b7 Stratum Server Support (#140)
Add support for external GPU mining via the stratum protocol.  

Three new CLI Options support this: `--miner-stratum-enabled`, 
`--miner-stratum-host`, and `--miner-stratum-port`.

To use stratum first use the `--miner-enabled` option and add the 
`--miner-stratum-enabled` option. This disables local CPU mining and opens up 
a stratum server, configurable via `--miner-stratum-host` (default is 
`0.0.0.0`) and `--miner-stratum-port` (default is 8008).  This server supports 
`stratum+tcp` mining and the JSON-RPC services (if enabled) will support the 
`eth_getWork` and `eth_submitWork` calls as well (supporting `getwork` or 
`http` schemes).

This is known to work with ethminer.

Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>
2019-11-12 14:08:12 -07:00
Joshua Fernandes
bac5c673d3 Adding a spdx license check gradle task (#30)
* adding in spdx-license-identifier & updated check for the same; removing license check from spotless

Signed-off-by: Joshua Fernandes <joshua.fernandes@consensys.net>

* Change CheckSpdxHeader to a task.

Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-09-20 14:59:57 +10:00
Trent Mohay
79bd915e2e Moving AT DSL into its own module (#3)
This allows the acceptance testing DSL to be published as part of the
Besu internal jar files - which in turn means the DSL can be reused
in other projects.

Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
2019-09-16 21:42:25 +10:00
Joshua Fernandes
d6a2394e2d Migrating Pantheon to Besu (#1945)
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-09-16 11:14:10 +10:00
Ratan Rai Sur
dedd6416ed [refactor] Make JSON-RPC and GraphQL share parent module (#1929)
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-09-13 16:00:18 +03:00
CJ Hare
dec01db6f9 Refactoring Rocksdb as a module (#1889)
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-09-12 12:34:57 +10:00
Edward
9856cd32b0 Ensure plugin-api module gets published at the correct maven path (#1905)
* Ensure `plugin-api` module gets published at the correct maven path
* Move `plugins` to `plugin-api`

Signed-off-by: Edward Evans <edward.evans@consensys.net>

Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-09-05 10:29:30 +10:00
Edward
9601f44ac8 Return the plugin-apis to this repo (#1900)
* Return plugin-api to the main repo
* Spotless
* Migrate all external plugin-api references to the project in this repo
* Add licence header
* Update repo reference for publish, even if commented
* Use real configuration for publishing plugin-api

This was tested with the
`:plugins:publishMavenJavaPublicationToMavenLocal` task and checking the
local Maven repo to make sure it was using the correct paths

Signed-off-by: Edward Evans <edward.evans@consensys.net>

Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-09-04 12:12:27 +10:00
Danno Ferrin
06a284817e [PAN-2946] Retesteth support (#1818)
Add support for retesteth, a JSON-RPC based reference testing API.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-08-07 15:47:45 -06:00
Stephen Shelton
3e410b48fc Add UPnP Support (#1334)
Add support for working within Network Address Translation (NAT) environments.

This adds a CLI flag `--nat-method` with two options,  `NONE` (the default and 
current behavior) and `UPNP.`  `--nat-method` will affect what IP address and 
ports are advertised via the P2P discovery and other APIs that report the 
address and port for P2P actions.

`UPNP` is intended for a typical home or small office environment where a 
wireless router or modem provides NAT isolation. 
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-07-06 12:50:52 -06:00
Danno Ferrin
16c64e64f0 Use external pantheon-plugin-api library (#1505)
* Use the external jars to provide the plugin libraries.
* Add mavenLocal to local repositories to aid development
* Remove the :plugins project
* Move the PantheonPluginContextImpl into :pantheon
* rename a few files
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-05-29 10:12:50 -06:00
Danno Ferrin
f171a87049 Rename GraphQLRPC to just GraphQL (#1472)
In most places the RPC gets dropped.  In a few places it made more sense
to rename to GraphQLHttp when we are talking about the HTTP Server and
service.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-05-21 07:22:11 -06:00
Danno Ferrin
8b7c5f7949 Plugin Framework (#1435)
Provide a mechanism for Pantheon to integrate plugin code at runtime.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-05-17 10:46:23 -06:00
zyfrank
2026ab9d1a [Ethereal Hackathon] GraphQL EIP-1767 Implementation for Pantheon (#1311)
Implements a GraphQL interface to expose data that conforms to EIP-1767. As the EIP specifies, the implementation should allow “a complete replacement to the read-only information exposed via the present JSON-RPC interface”.

Supported CLI options:
* `--graphql-http-enabled` to enable GraphQL
* `--graphql-http-host` and `--graphql-http-port` to configure the host and port.
* `--graphql-http-cors-origins` to set the CORS-origin policies
* The `--host-whitelist` option is respected.  This option also applies to JSON-RPC and WS-RPC endpoints.

Default port is 8547.  The endpoint is `/graphrpc`, so the default URL is typically `http://127.0.0.1:8547/graphql`
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-05-08 08:34:54 -06:00
Danno Ferrin
cf2acc2a75 Refactor RocksDBStats (#1266)
Move RocksDBStats to it's own module.  This also brings metrics to
metrics:core since none of our other module have nested modules but
they have peer modules.


Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-04-12 21:15:33 -06:00
Adrian Sutton
74b92cd500 Use pipeline for world state download (#1096)
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-03-15 09:08:58 +10:00
mbaxter
fafd7e69ed [PAN-2422] Add in-memory cache over world state download queue (#1087)
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-03-13 11:22:24 -04:00
Adrian Sutton
fde3a80f85 Add pipeline framework to make parallel processing simpler (#1077)
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-03-13 06:45:09 +10:00
Vinicius Stevam
cd818814ff [PRIV] Generify orion to enclave (#745)
* Generify orion to enclave

Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-02-06 10:00:00 +10:00
Danno Ferrin
00f0dbfb13 Upgrade versions and build cleanup (#738)
* upgread all dependencies and gradle plugins
* did not upgrade net.researchgate.release gradle plugin as that is know to break correto JVM
* removed quickstart from module list.  It's been gone a while now.
* sorted the modules
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
2019-02-01 07:48:38 -07:00