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/CHANGELOG.md

23 KiB

Changelog

Upcoming Changes in v0.9

Breaking Changes to Command Line

In v0.9, changes will be made to the command line options to improve usability. These will be breaking changes; that is, in many cases the v0.8 command line options will no longer work. The Pantheon documentation will be updated to reflect these changes. Any further information required about the changes will be included in the v0.9 release notes.

Private Network Quickstart

In v0.9, the Private Network Quickstart will be moved to a separate repository and the existing Private Network Quickstart removed from the Pantheon repository. The Private Network Quickstart tutorial will be updated and use the Private Network Quickstart in the separate repository.

0.8.5

Indefinitely delays the roll-out of Constantinople on Ethereum Mainnet due to a potential security issue detected.

Additions and Improvements

  • Remove Constantinople fork block #574

Technical Improvements

  • Rename IBFT message packages #568

0.8.4

Docker Image

If you have been running a node using the v0.8.3 Docker image, the node was not saving data to the specified data directory, or referring to the custom configuration file or genesis file.

To recover the node key and data directory from the Docker container: docker cp <container>:/opt/pantheon/key <destination_file> docker cp <container>:/opt/pantheon/database <destination_directory>

Where container is the name or ID of the Docker container containing the Pantheon node.

The container can be running or stopped when you copy the key and data directory. If your node was fully synchronized to MainNet, the data directory will be ~2TB.

When restarting your node with the v0.8.4 Docker image:

Bug Fixes

  • Fixing default resource locations inside docker #529
  • NewRoundMessageValidator ignores Round Number when comparing blocks #523
  • Fix Array Configurable command line options #514

Additions and Improvements

Technical Improvements

  • Updated --bootnodes command option to take zero arguments #548
  • IBFT Integration Testing - Local Node is proposer #527
  • Remove vertx from discovery tests #539
  • IBFT Integration testing - Round Change #537
  • NewRoundMessageValidator creates RoundChangeValidator with correct value #518
  • Remove time dependency from BlockTimer tests #513
  • Gradle 5.1 #512
  • Metrics measurement adjustment #511
  • Metrics export for import command. #509
  • IBFT Integration test framework #502
  • IBFT message gossiping #501
  • Remove non-transactional mutation from KeyValueStore #500
  • Ensured that the blockchain queries class handles optionals better. #486
  • IBFT mining acceptance test #483
  • Set base directory name to be lowercase in building.md #474 (Thanks to Matthalp)
  • Moved admin_peers to Admin API group #473
  • Nodes whitelist acceptance test #472
  • Rework RoundChangeManagerTest to not reuse validators #469
  • Ignore node files to support truffle. #467
  • IBFT pantheon controller #461
  • IBFT Round to update internal state on reception of NewRound Message #451
  • Update RoundChangeManager correctly create its message validator #450
  • Use seconds for block timer time unit #445
  • IBFT controller and future msgs handling #431
  • Allow IBFT Round to be created using PreparedCert #429
  • Added MessageValidatorFactory #425
  • Inround payload #423
  • Updated IbftConfig Fields #422
  • Repair IbftBlockCreator and add tests #421
  • Make Pantheon behave as a submodule #419
  • Ibft Height Manager #418
  • Ensure bootnodes are a subset of node whitelist #414
  • IBFT Consensus Round Classes #405
  • IBFT message payload tests #404
  • Validate enodeurl syntax from command line #403
  • Update errorprone #401
  • IBFT round change manager #393
  • IBFT RoundState #392
  • Move Block data generator test helper to test support package #391
  • IBFT message tests #367

0.8.3

Breaking Change to JSON RPC-API

From v0.8.3, incoming HTTP requests are only accepted from hostnames specified using the --host-whitelist command-line option. If not specified, the default value for --host-whitelist is localhost.

If using the URL http://127.0.0.1 to make JSON-RPC calls, use --host-whitelist to specify the hostname 127.0.0.1 or update the hostname to localhost.

If your application publishes RPC ports, specify the hostnames when starting Pantheon. For example:

pantheon --host-whitelist=example.com

Specify * or all for --host-whitelist to effectively disable host protection and replicate pre-v0.8.3 behavior. This is not recommended for production code.

Bug Fixes

  • Repair Clique Proposer Selection #339
  • High TX volume swamps block processing #337
  • Check if the connectFuture has completed successfully #293
  • Switch back to Xerial Snappy Library #284
  • ShortHex of 0 should be '0x0', not '0x' #272
  • Fix pantheon CLI default values infinite loop #266

Additions and Improvements

Technical Improvements

  • Extracted non-Docker CLI parameters to picoCLI mixin. #323
  • IBFT preprepare to validate round matches block #329
  • Fix acceptance test #324
  • Added the IbftFinalState #385
  • Constantinople Fork Block #382
  • Fix pantheon.cli.PantheonCommandTest test on Windows #380
  • JDK smoke testing is being configured differently now #374
  • Re-enable clique AT #373
  • Ignoring acceptance test #372
  • Changes to support Gradle 5.0 #371
  • Clique: Prevent out of turn blocks interrupt in-turn mining #364
  • Time all tasks #361
  • Rework VoteTallyCache to better represent purpose #360
  • Add an UNKNOWN DisconnectReason #359
  • New round validation #353
  • Update get validators for block hash test to start from block 1 #352
  • Idiomatic Builder Pattern #345
  • Revert Repair Clique Proposer Selection #339 - Breaks Görli testnet #343
  • No fixed ports in tests #340
  • Update clique acceptance test genesis file to use correct clique property names #338
  • Supporting list of addresses in logs subscription #336
  • Render handler exception to System.err instead of .out #334
  • Renamed IBFT message classes #333
  • Add additional RLP tests #332
  • Downgrading spotless to 3.13.0 to fix threading issues #325
  • eth_getTransactionReceipt acceptance test #322
  • Upgrade vertx to 3.5.4 #316
  • Round change validation #315
  • Basic IBFT message validators #314
  • Minor repairs to clique block scheduling #308
  • Dependencies Version upgrade #303
  • Build multiple JVM #301
  • Smart contract acceptance test #296
  • Fixing WebSocket error response #292
  • Reword error messages following exceptions during mining #291
  • Clique acceptance tests #290
  • Delegate creation of additional JSON-RPC methods to the PantheonController #289
  • Remove unnecessary RlpInput and RlpOutput classes #287
  • Remove RlpUtils #285
  • Enabling previously ignored acceptance tests #282
  • IPv6 peers #281
  • IPv6 Bootnode #280
  • Acceptance test for getTransactionReceipt JSON-RPC method #278
  • Inject StorageProvider into PantheonController instances #259

0.8.2

Removed

  • Removed import-blockchain command because nothing exports to the required format yet (PR #223)

Bug Fixes

  • io.netty.util.internal.OutOfDirectMemoryError errors by removing reference counting from network messages.
  • Log spam: endless loop in nioEventLoopGroup (#248 thanks to @5chdn for reporting) (PR #261)
  • Rinkeby import can stall with too many fragments (#228 thanks to @steffenkux and @5chdn for reporting) (PR #255)
  • Clique incorrectly used the chain ID instead of the network ID in ETH status messages (PR #209)
  • Gradle deprecation warnings (PR #246 with thanks to @jvirtanen)
  • Consensus issue on Ropsten:
    • Treat output length as a maximum length for CALL operations (PR #236)
    • ECRec precompile should return empty instead of 32 zero bytes when the input is invalid (PR #227)
  • File name too long error while building from source (#215 thanks to @5chdn for reporting) (PR #221)
  • Loop syntax in runPantheonPrivateNetwork.sh (PR #237 thanks to @matt9ucci)
  • Fix CompressionException: Snappy decompression failed errors (#251 thanks to @5chdn for reporting) (PR #274)

Additions and Improvements

Technical Improvements

  • Upgraded Ethereum reference tests to 6.0 beta 2. (thanks to @jvirtanen for the initial upgrade to beta 1)
  • Set Java compiler default encoding to UTF-8 (PR #238 thanks to @matt9ucci)
  • Removed duplicate code defining default JSON-RPC APIs (PR #218 thanks to @matt9ucci)
  • Improved code for parsing config (PRs #208, #209)
  • Use java.time.Clock in favour of a custom Clock interface (PR #220)
  • Improve modularity of storage systems (PR #211, #207)
  • Treat JavaDoc warnings as errors (PR #171)
  • Add benchmark for BlockHashOperation as a template for benchmarking other EVM operations (PR #203)
  • Added unit tests for EthBlockNumber (#189) (PR #195 thanks to @jvirtanen)
  • Code style improvements (PR #196 thanks to @jvirtanen)
  • Added unit tests for Web3ClientVersion (#191) (PR #194 with thanks to @jvirtanen)
  • Removed RLPUtils from RawBlockIterator (PR #179)
  • Replace the JNI based snappy library with a pure-Java version (PR #257)