Update BesuController to use the NodeKey, rather than working with KeyPair - which in turn allows the crypto operations to be injected.
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
* Added changelog entries for PR:
- https://github.com/hyperledger/besu/pull/430
- https://github.com/hyperledger/besu/pull/440
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
* ### Description
BlockHeader object needs to be modified in order to add the new field (baseFee) as specified in the EIP.
We should take care about the RLP encoding/decoding of this structure since it has to include or not the new fields depending on whether we are pre fork or post fork.
- Update `core.BlockHeader.java`
- Add `baseFee`
- Update `readFrom` method for RLP decoding
- Update `writeTo` method for RLP encoding
- Update `plugin.data.BlockHeader.java`
- Add `getBaseFee` method
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
* TODO Add CLI command line flag `--Xeip1559-enabled`.
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
* TODO Add CLI command line flag `--Xeip1559-enabled`.
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
* Added unstable annotation for getBaseFee. Moved from long to `Optional<Long>`
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
* Spotless apply
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
* Fixed error
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
* fix plugin API hash
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
* RLP encoding / decoding operations are guarded with the feature flag.
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
* spotless apply
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
License reporting depends on the deprecated "compile" dependency in the
root project. Restore that so that license checking can work.
Also clean out old unused license types and one unneeded dependency.
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
* Make priv_call use the PrivacyController
Signed-off-by: Stefan Pingel <stefan.pingel@consensys.net>
* minor changes after review
Signed-off-by: Stefan Pingel <stefan.pingel@consensys.net>
* Implement a dynamic reload mechanism for Besu plugins.
- Added `reloadConfiguration` method in `plugin-api`.
- Added `admin_reloadPlugin` RPC endpoint.
- if the first parameter is specified the API will attempt to reload the individual plugin if found in the map.
- if no parameter is specified the API will attempt to reload all plugins.
- Added method in `BesuPluginContextImpl` to retrieve a map of named plugins.
Signed-off-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>
This was turned off a number of months ago because of long build times.
However it appears either because of code structure changes or fixed
errorprone that this finishes in a reasonable time now.
Code that violated this check is also fixed.
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
Update dependencies to most current version
- except picocli which is a major version update
Alphabetize dependencies
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
only when you are trying to process a privacy marker transaction
Wrap errors with Enclave exception
Signed-off-by: Antony Denyer <email@antonydenyer.co.uk>
Co-authored-by: Lucas Saldanha <lucascrsaldanha@gmail.com>
This upgrade removes the intermittent failure in
NewPendingTransactionAcceptanceTest (due to prior Ethsigner
affecting the leniency of the global json parser (making it
more strict than Besu demands)).
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
It was identified that when both KV_ROCKSDB metrics and Privacy were enabled,
that Besu failed to start due to a naming collision in Metrics Collators - this was ultimately due to Besu having 2 keyvalue stores - one for public state, and another for private state - and _both_ using the same metrics.
To overcome this issue, the metrics used in the private kv store are prefixed with the word "private".
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
* Multi-Tenancy: Do not specify a public key anymore when requesting a payload from Orion, so all private keys are tried to decrypt the encrypted payload.
Signed-off-by: Stefan Pingel <stefan.pingel@consensys.net>
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>
Enforce that plugin variable names are either `--plugin-<namespace>-`
or `--Xplugin-<namespace>-` when registered with the
PicoCLIOptionsService. If the names don't match a RuntimeException is
thrown, and unless that exception is caught the plugin will not have
start or stop lifecycle messages called.
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
Upgrade dependencies except rocksdb (needs burn in testing),
picocli (reorders options), gradle (causes build server breakage), and
web3j (test failures).
* Awaitality removed a Duration object and instead uses java.time
* jackson stopped throwing a checked exception for one API
* spotless now enforces gradle formatting checks (yea!)
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>