EOSIO v2.0.4 Release Notes

This release contains stability and miscellaneous fixes.

Deprecation Notices

The read-only option for the read-mode parameter in nodeos has been deprecated. It is possible to achieve the same behavior with read-mode = head, p2p-accept-transactions = false, and api-accept-transactions = false. See the sub-section "Accept transactions options" below for more details.

Please refer to the Consolidated EOSIO Deprecations List for the currently active set of deprecation notices.

Stability bug fixes

  • (#8684) Net plugin sync priority - 2.0
  • (#8729) Get info priority - 2.0

Changes

Trace API Plugin (#8800)

This release contains the first official release of the Trace API Plugin. This plugin is an optional addition to nodeos that stores a tailored view of the transactions and actions that execute on the chain retrievable at a block level. The Trace API focuses on operational maintainability storing data on the filesystem instead of in RAM like the deprecated history-plugin and organizing that data such that operators can easily prune old data without disrupting operations.

For more information, see the PR notes and the official documentation.

Exit transaction early when there is insufficient account CPU (#8638)

nodeos no longer considers a transaction for inclusion in a block in the process of being produced if the billed account(s) do not have sufficient CPU available to cover the previously estimated CPU usage of the transaction (only if a previous estimate for CPU usage is available).

Produce block immediately if resource limits are exhausted (#8651, #8673)

nodeos now immediately produces a block if either the CPU or NET usage thresholds are exceeded. This change includes a fix for dropping late blocks starting 50ms earlier than the block production window.

New options:

  • max-block-cpu-usage-threshold-us: Threshold (in microseconds) of CPU block production to consider block full; when accumulated CPU usage within a block is less than max-block-cpu-usage-threshold-us away from max-block-cpu-usage, the block can be produced immediately. Default value is 5000.
  • max-block-net-usage-threshold-bytes: Threshold (in bytes) of NET block production to consider block full; when accumulated NET usage within a block is less than max-block-net-usage-threshold-us away from max-block-net-usage, the block can be produced immediately. Default value is 1024.

Accept transactions options (#8702)

New options:

  • p2p-accept-transactions: Allow transactions received over p2p network to be evaluated and relayed if valid. Default is true.
  • api-accept-transactions: Allow API transactions to be evaluated and relayed if valid. Default is true.

Provides ability to have a read-mode = head with p2p-accept-transactions = false and api-accept-transactions = true. This combination creates an efficient API node that is not burdened with processing P2P transactions.

The same behavior of the now deprecated read-mode = read-only can be achieved with read-mode = head by setting p2p-accept-transactions = false and api-accept-transactions = false.

WARNING: Use of read-mode = irreversible now requires setting p2p-accept-transactions = false and api-accept-transactions = false to avoid assertion at startup.

Relay block early (#8701)

Improve block relaying performance when a block is from a trusted producer or if nodeos is running in light validation mode. This is achieved by relaying the block as soon as block header validation is complete (but before full block application/validation).

Other Changes

  • (#8654) Fix format message. - 2.0
  • (#8668) Add troubleshooting item for PREACTIVATE_FEATURE protocol
  • (#8689) incoming-defer-ratio description - 2.0
  • (#8695) [2.0.x] Community PR tweaks.
  • (#8700) [2.0.x] Base images pipeline.
  • (#8714) [2.0.x] Actions rerun fixes.
  • (#8710) Add block producing explainer doc - 2.0
  • (#8721) Fix multiple version protocol test intermittent failure - 2.0
  • (#8727) Update the getting started link [merge 2]
  • (#8752) chain_api_plugin swagger file - 2.0
  • (#8756) Fixes #8600 clean up nodeos options section
  • (#8757) link cleos net status reference doc with the peer network protocol doc
  • (#8590) db_size_api_plugin swagger file - 2.0
  • (#8591) net_api_plugin swagger file - 2.0
  • (#8592) producer_api_plugin swagger file - 2.0
  • (#8593) test_control_api_plugin swagger file - 2.0
  • (#8754) swagger configuration for docs - 2.0
  • (#8762) Fix broken link in producer plugin docs - 2.0
  • (#8763) Fix wasm-runtime option parameters - 2.0
  • (#8765) Add Incoming-defer-ratio description - 2.0
  • (#8767) Fix other blocks.log callout - 2.0
  • (#8768) Improve create account description - 2.0
  • (#8782) link to librt when using posix timers - 2.0
  • (#8781) free unknown EOS VM OC codegen versions from the code cache - 2.0
  • (#8794) disable EOS VM on non-x86 platforms - 2.0
  • (#8803) Expire blacklisted scheduled transactions by LIB time - 2.0
  • (#8811) Add initial Trace API plugin docs to nodeos - 2.0
  • (#8814) Add RPC Trace API plugin reference to nodeos - 2.0