Skip to content

Releases: hyperledger/besu

1.4.6-RC1 release (#998)

28 May 23:19
fd45721
Compare
Choose a tag to compare
Pre-release

Additions and Improvements

  • Print node address on startup. #938
  • Transaction pool: price bump replacement mechanism configurable through CLI. #928 #930

Bug Fixes

  • Added timeout to queries. #986
  • Fixed issue where networks using onchain permissioning could stall when the bootnodes were not validators. #969

Known Issues

Known issues are open issues categorized as Very High or High impact.

Previously identified known issues

1.4.5 release (#968)

21 May 03:56
23d3ded
Compare
Choose a tag to compare

Breaking change upcoming in v1.5

To maintain best security practices, we're changing the user:group on the Docker container to besu.

What this means for you:

  • If you are running Besu as a binary, there is no impact.
  • If you are running Besu as a Docker container and have a volume mount for data, ensure that the
    permissions on the directory allow other users and groups to r/w. Ideally this should be set to
    besu:besu as the owner.

Note that the besu user only exists within the container not outside it. The same user ID may match
a different user outside the image.

If you’re mounting local folders, it is best to set the user via the Docker —user argument. Use the
UID because the username may not exist inside the docker container. Ensure the directory being mounted
is owned by that user.

Upcoming 1.5 release

The 1.5 release is scheduled for early July.

1.4.5

Additions and Improvements

  • Implemented WebSocket logs subscription for private contracts (priv_subscribe/priv_unsubscribe) [#762]
  • Introduced SecurityModule plugin API. This allows use of a different security module as a plugin to
    provide cryptographic function that can be used by NodeKey (such as sign, ECDHKeyAgreement etc.). KeyPairSecurityModule
    is registered and used by default. The CLI option --security-module=<name> (defaults to localfile) can be used
    to identify the security module plugin name to use instead. #713
  • Several testing related changes to improve compatibility with Hive and Retesteth.
    #806 and #845
  • Native libraries for secp256k1 and Altbn128 encryption are enabled by default. To disable these libraries use
    --Xsecp256k1-native-enabled=false and --Xaltbn128-native-enabled=false. #775

Bug Fixes

  • Fixed eth_estimateGas JSON RPC so it no longer returns gas estimates that are too low. #842
  • Full help not displayed unless explicitly requested. #437
  • Compatibility with undocumented Geth eth_subscribe fields. #654
  • Current block number included as part of eth_getWork response. #849

Known Issues

Known issues are open issues categorized as Very High or High impact.

New known issues

  • Scope of logs query causing Besu to crash. #944

Workaround - Limit the number of blocks queried by each eth_getLogs call.

Previously identified known issues

1.4.5-RC1

08 May 01:00
d1e1af0
Compare
Choose a tag to compare
1.4.5-RC1 Pre-release
Pre-release

Additions and Improvements

  • Introduced SecurityModule plugin API. This allows use of a different security module as a plugin to
    provide cryptographic function that can be used by NodeKey (such as sign, ECDHKeyAgreement etc.). KeyPairSecurityModule
    is registered and used by default. The CLI option --security-module=<name> (defaults to localfile) can be used
    to identify the security module plugin name to use instead. #713
  • Several testing related changes to improve compatibility with Hive and Retesteth.
    #806 and #845
  • Native libraries for secp256k1 and Altbn128 encryption are enabled by default. To disable these libraries use
    --Xsecp256k1-native-enabled=false and --Xaltbn128-native-enabled=false. #775

Bug Fixes

  • Full help not displayed unless explicitly requested. #437
  • Compatibility with undocumented Geth eth_subscribe fields. #654
  • Current block number included as part of eth_getWork response. #849

Known Issues

Known issues are open issues categorized as Very High or High impact.

Previously identified known issues

1.4.4

22 Apr 23:13
e1b55cd
Compare
Choose a tag to compare

Additions and Improvements

  • Implemented priv_getLogs. #686
  • Implemented private contract log filters including JSON-RPC methods to interact with private filters. #735
  • Implemented EIP-2315: Simple Subroutines for the EVM #717
  • Implemented Splunk logging. #725
  • Implemented optional native library encryption. #675. To enable add --Xsecp256k1-native-enabled (for transaciton signatures) and/or --Xaltbn128-native-enabled (for altbn128 precomiled contracts) as command line options.

Bug Fixes

  • Flag added to toggle eth/65 off by default. eth/65 will remain toggled off by default until
    a fix is completed for the eth/65 known issue. #741
  • Resolve crashing NAT detectors on GKE. #731 fixes #507.
    Besu-Kubernetes Readme
    updated to reflect changes.
  • Deal with quick service start failures #714 fixes #662

Known Issues

Known issues are open issues categorized as Very High or High impact.

New known issues

  • Intrinsic gas exceeds gas limit returned when calling delete mapping[addr] or mapping[addr] = 0 #696

Calling delete and set to 0 Solidity mapping in Solidity fail.

Previously identified known issues

1.4.3

08 Apr 22:43
3f4f14c
Compare
Choose a tag to compare

Critical Issue for Privacy Users

A critical issue for privacy users with private transactions created using Hyperledger Besu v1.3.4
or earlier has been identified. If you have a network with private transaction created using v1.3.4
or earlier, please read the following and take the appropriate steps:
https://wiki.hyperledger.org/display/BESU/Critical+Issue+for+Privacy+Users

Additions and Improvements

  • Added eth/65 support. #608
  • Added block added and block reorg events. Added revert reason to block added transactions. #637

Deprecated

  • Private Transaction hash field and getHash() method have been deprecated. They will be removed
    in 1.5.0 release. #639

Known Issues

Fast sync when running Besu on cloud providers

A known RocksDB issue causes fast sync to fail
when running Besu on certain cloud providers. The following errors is displayed repeatedly:

...
EthScheduler-Services-1 (importBlock) | ERROR | PipelineChainDownloader | Chain download failed. Restarting after short delay.
java.util.concurrent.CompletionException: org.hyperledger.besu.plugin.services.exception.StorageException: org.rocksdb.RocksDBException: block checksum mismatch:
....

This behaviour has been seen on AWS and Digital Ocean.

Workaround -> On AWS, a full restart of the AWS VM is required to restart the fast sync.

Fast sync is not currently supported on Digital Ocean. We are investigating options to
add support for fast sync on Digital Ocean.

Error full syncing with pruning

  • Error syncing with mainnet on Besu 1.3.7 node - MerkleTrieException #580
    The associated error is Unable to load trie node value for hash and is caused by the combination of
    full sync and pruning.

Workarounds:

  1. Explicitly disable pruning using --pruning-enabled=false when using fast sync.
  2. If the MerkleTrieException occurs, delete the database and resync.

A fix for this issue is being actively worked on.

Fast sync reverting to full sync

In some cases of FastSyncException, fast sync reverts back to a full sync before having reached the
pivot block. #683

Workaround -> To re-attempt fast syncing rather than continue full syncing, stop Besu, delete your
database, and start again.

Bootnodes must be validators when using onchain permissioning

  • Onchain permissioning nodes can't peer when using a non-validator bootnode #528

Workaround -> When using onchain permissioning, ensure bootnodes are also validators.

1.4.2

25 Mar 22:57
01c1559
Compare
Choose a tag to compare

Additions and Improvements

  • Added trace_block JSON RPC API #449
  • Added pulledStates and knownStates to the EthQL syncing query and eth_syncing JSON-RPC api #565

Bug Fixes

  • Fixed file parsing behaviour for privacy enclave keystore password file #554 (thanks to magooster)
  • Fixed known issue with being unable to re-add members to onchain privacy groups #471

Updated Early Access Features

  • Onchain privacy groups with add and remove members. Known issue resolved (see above).
  • TRACE API now includes trace_block, trace_replayBlockTransactions, and trace_transaction.
    Fixed some issues on the trace replay block transactions API #522.

Known Issues

Fast sync defaulting to full sync

  • When fast sync cannot find enough valid peers rapidly enough, Besu defaults to full sync.

Workarounds:

  1. To re-attempt fast syncing rather than continue full syncing, stop Besu, delete your database,
    and start again.
  2. When fast syncing, explicitly disable pruning using --pruning-enabled=false to reduce the likelihood
    of encountering the pruning bug.

A fix to remove the default to full sync is in progress
is being actively worked on.

Error full syncing with pruning

  • Error syncing with mainnet on Besu 1.3.7 node - MerkleTrieException #BESU-160
    The associated error is Unable to load trie node value for hash and is caused by the combination of
    full sync and pruning.

Workarounds:

  1. Explicitly disable pruning using --pruning-enabled=false when using fast sync.
  2. If the MerkleTrieException occurs, delete the database and resync.

A fix for this issue is being actively worked on.

Bootnodes must be validators when using onchain permissioning

  • Onchain permissioning nodes can't peer when using a non-validator bootnode #BESU-181

Workaround -> When using onchain permissioning, ensure bootnodes are also validators.

1.4.1

12 Mar 22:44
47d9c83
Compare
Choose a tag to compare

Additions and Improvements

  • Added priv_getCode #250. Gets the bytecode associated with a private address.
  • Added trace_transaction JSON RPC API #441
  • Removed -X unstable prefix for pruning options (--pruning-blocks-retained, --pruning-block-confirmations) #440
  • Implemented ECIP-1088: Phoenix EVM and Protocol upgrades. #434

Bug Fixes

  • BESU-25 Use v5 Devp2p when pinging #392
  • Fixed a bug to manage concurrent access to cache files #438
  • Fixed configuration file bug: pruning-blocks-retained now accepts an integer in the config #440
  • Specifying RPC credentials file should not force RPC Authentication to be enabled #454
  • Enhanced estimateGas messages #436. When a estimateGas request fails a validation check, an improved error message is returned in the response.

Early Access Features

Early access features are available features that are not recommended for production networks and may
have unstable interfaces.

  • Onchain privacy groups with add and remove members.
    Not being able to to re-add a member to an onchain privacy group is a known issue
    with the add and remove functionality.

Known Issues

Fast sync defaulting to full sync

  • When fast sync cannot find enough valid peers rapidly enough, Besu defaults to full sync.

Workarounds:

  1. To re-attempt fast syncing rather than continue full syncing, stop Besu, delete your database,
    and start again.
  2. When fast syncing, explicitly disable pruning using --pruning-enabled=false to reduce the likelihood
    of encountering the pruning bug.

A fix to remove the default to full sync is in progress
and is planned for inclusion in v1.4.1.

Error full syncing with pruning

  • Error syncing with mainnet on Besu 1.3.7 node - MerkleTrieException #BESU-160
    The associated error is Unable to load trie node value for hash and is caused by the combination of
    full sync and pruning.

Workarounds:

  1. Explicitly disable pruning using --pruning-enabled=false when using fast sync.
  2. If the MerkleTrieException occurs, delete the database and resync.

Investigation of this issue is in progress and a fix is targeted for v1.4.1.

Bootnodes must be validators when using onchain permissioning

  • Onchain permissioning nodes can't peer when using a non-validator bootnode #BESU-181

Workaround -> When using onchain permissioning, ensure bootnodes are also validators.

1.4.0

27 Feb 00:21
bce6e09
Compare
Choose a tag to compare

Changelog

1.4.0

Private State Migration

Hyperledger Besu v1.4 implements a new data structure for private state storage that is not backwards compatible.
A migration will be performed when starting v1.4 for the first time to reprocess existing private transactions
and re-create the private state data in the v1.4 format.

If you have existing private transactions, see migration details.

Additions and Improvements

  • TLS support to secure client and server communication.

  • Multi-tenancy to enable multiple participants to use the same Besu and Orion node.

  • Plugin APIs to enable building of Java plugins to extend Hyperledger Besu.

  • Support for additional NAT methods.

  • Added priv_call which invokes
    a private contract function locally and does not change the private state.

  • Besu has moved from an internal Bytes library to the Apache Tuweni Bytes library.
    This includes using the library in the Plugins API interfaces. #295 and #215

Early Access Features

Early access features are available features that are not recommended for production networks and may
have unstable interfaces.

  • Reorg compatible privacy
    to enable private transactions on networks using consensus mechanisms that fork.

  • Tracing API to obtain detailed information about transaction processing.

Bug Fixes

See RC and Beta sections below.

Known Issues

Fast sync defaulting to full sync

  • When fast sync cannot find enough valid peers rapidly enough, Besu defaults to full sync.

Workarounds:

  1. To re-attempt fast syncing rather than continue full syncing, stop Besu, delete your database,
    and start again.
  2. When fast syncing, explicitly disable pruning using --pruning-enabled=false to reduce the likelihood
    of encountering the pruning bug.

A fix to remove the default to full sync is in progress
and is planned for inclusion in v1.4.1.

Error full syncing with pruning

  • Error syncing with mainnet on Besu 1.3.7 node - MerkleTrieException #BESU-160
    The associated error is Unable to load trie node value for hash and is caused by the combination of
    full sync and pruning.

Workarounds:

  1. Explicitly disable pruning using --pruning-enabled=false when using fast sync.
  2. If the MerkleTrieException occurs, delete the database and resync.

Investigation of this issue is in progress and a fix is targeted for v1.4.1.

Bootnodes must be validators when using onchain permissioning

  • Onchain permissioning nodes can't peer when using a non-validator bootnode #BESU-181

Workaround -> When using onchain permissioning, ensure bootnodes are also validators.

1.4.0-RC2

20 Feb 04:24
c17247e
Compare
Choose a tag to compare
1.4.0-RC2 Pre-release
Pre-release

Private State Migration

Hyperledger Besu v1.4 implements a new data structure for private state storage that is not backwards compatible.
A migration will be performed when starting v1.4 for the first time to reprocess existing private transactions
and re-create the private state data in the v1.4 format.
If you have existing private transactions, see migration details.

Additions and Improvements

  • Automatic Transaction Log Bloom Filter Caching

Add a new option --auto-logs-bloom-indexing-enabled which defaults to true. This performs the equivalent of the operator generate-log-bloom-cache CLI task or admin_generateLogBloomCache RPC call for each block as it arrives, in addition to caching older logs on first startup.

1.4.0-RC1

13 Feb 03:10
9135622
Compare
Choose a tag to compare
1.4.0-RC1 Pre-release
Pre-release

1.4.0 RC-1

Additions and Improvements

  • Newtrace_replayBlockTransactions JSON-RPC API

This can be enabled using the --rpc-http-api TRACE CLI flag. There are some philosophical differences between Besu and other implementations that are outlined in trace_rpc_apis.

  • Ability to automatically detect Docker NAT settings from inside the conainter.

The default NAT method (AUTO) can detect this so no user intervention is required to enable this.

  • Added Multi-tenancy support which allows multiple participants to use the same Besu node for private transactions.

  • Added TLS support for communication with privacy enclave

Bug Fixes

  • Private transactions are now validated before sent to the enclave #356

Known Bugs

  • Error syncing with mainnet on Besu 1.3.7 node - MerkleTrieException #BESU-160

Workaround -> Don't enable pruning when syncing to mainnet.

  • Onchain permissioning nodes can't peer when using a non-validator bootnode #BESU-181

Workaround -> When using onchain permissioning, ensure bootnodes are also validators.