From deb88890a108297892723776342e8511b5a0c52f Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 25 Feb 2021 14:53:52 -0500 Subject: [PATCH 01/22] split 2.0 release notes into multiple patch files :doc --- docs/30_release-notes/93_v2.0.6.md | 72 ++- docs/30_release-notes/94_v2.0.5.md | 63 ++- docs/30_release-notes/95_v2.0.4.md | 86 +++- docs/30_release-notes/96_v2.0.3.md | 27 +- docs/30_release-notes/97_v2.0.2.md | 44 +- docs/30_release-notes/98_v2.0.1.md | 35 +- docs/30_release-notes/99_v2.0.0.md | 375 ++++++++++++++- docs/30_release-notes/index.md | 716 ----------------------------- 8 files changed, 695 insertions(+), 723 deletions(-) diff --git a/docs/30_release-notes/93_v2.0.6.md b/docs/30_release-notes/93_v2.0.6.md index fd24909d431..97815d56bf9 100644 --- a/docs/30_release-notes/93_v2.0.6.md +++ b/docs/30_release-notes/93_v2.0.6.md @@ -1,4 +1,74 @@ --- -link: /30_release-notes/index.md#eosio-v206-release-notes +content_title: EOSIO v2.0.6 Release Notes link_text: v2.0.6 --- + +This release contains security, stability, and miscellaneous fixes. + +## Security bug fixes + +- ([#9172](https://github.com/EOSIO/eos/pull/9172)) Escape Unicode C1 control code points. + +Note: These security fixes are relevant to API nodes on EOSIO blockchain networks. + +## Stability bug fixes + +- ([#9065](https://github.com/EOSIO/eos/pull/9065)) Fix for cleos and keosd race condition - 2.0 +- ([#9089](https://github.com/EOSIO/eos/pull/9089)) make ship WA key serialization match expected serialization - 2.0 +- ([#9095](https://github.com/EOSIO/eos/pull/9095)) fix gcc10 build due to libyubihsm problem - 2.0 +- ([#9127](https://github.com/EOSIO/eos/pull/9127)) Fix onblock handling in trace_api_plugin - 2.0 +- ([#9129](https://github.com/EOSIO/eos/pull/9129)) GCC 8.3 on CentOS 7 compiler workaround - 2.0 +- ([#9128](https://github.com/EOSIO/eos/pull/9128)) Restore abi_serializer backward compatibility - 2.0 + +## Changes + +### Add more information in trace-api-plugin responses for better usage. ([#9005](https://github.com/EOSIO/eos/pull/9005)) + +Adds `transaction_mroot`, `action_mroot` and `schedule_version` in block trace. Also adds `status`, `cpu_usage_us`, `net_usage_words`, `signatures`, and `transaction_header` in transaction trace. + +### New RPC endpoint **`get_accounts_by_authorizers`** ([#8899](https://github.com/EOSIO/eos/pull/8899)) + +New optional RPC endpoint **`POST /v1/chain/get_accounts_by_authorizers`** added to `chain_api_plugin` that provides a super-set of the deprecated `history_api_plugin`'s `get_key_accounts` and `get_controlled_accounts` RPC methods. + +Flag to enable endpoint (default false): **`--enable-account-queries`** + +## Other Changes + +- ([#8975](https://github.com/EOSIO/eos/pull/8975)) failing nodeos_run_test when core symbol is not SYS - 2.0 +- ([#9002](https://github.com/EOSIO/eos/pull/9002)) Support Triggering a Build that Runs ALL Tests in One Build +- ([#9007](https://github.com/EOSIO/eos/pull/9007)) Improved reporting in nodeos_forked_chain_lr_test - 2.0.x +- ([#9013](https://github.com/EOSIO/eos/pull/9013)) Bugfix for uninitialized variable in cleos - 2.0 +- ([#9009](https://github.com/EOSIO/eos/pull/9009)) Upgrade CLI11 to 1.9.0 - 2.0 +- ([#9028](https://github.com/EOSIO/eos/pull/9028)) Fix keosd auto-launching after CLI11 upgrade - 2.0 +- ([#9035](https://github.com/EOSIO/eos/pull/9035)) For Release 2.0 - Updated the priority of the APIs in producer_api_plugin and net_api_plugin to MEDIUM_HIGH +- ([#9049](https://github.com/EOSIO/eos/pull/9049)) add rapidjson license to install - 2.0 +- ([#9052](https://github.com/EOSIO/eos/pull/9052)) Print stderr if keosd_auto_launch_test.py fails - 2.0 +- ([#9060](https://github.com/EOSIO/eos/pull/9060)) Fix uninitialized struct members used as CLI flags - 2.0 +- ([#9062](https://github.com/EOSIO/eos/pull/9062)) Fix timedelta and strftime usage - 2.0 +- ([#9078](https://github.com/EOSIO/eos/pull/9078)) Update date in LICENSE - 2.0 +- ([#9063](https://github.com/EOSIO/eos/pull/9063)) add help text to wasm-runtime - 2.0.x +- ([#9084](https://github.com/EOSIO/eos/pull/9084)) Add support for specifing a logging.json to keosd - 2.0 +- ([#9082](https://github.com/EOSIO/eos/pull/9082)) Add change type to pull request template - 2.0 +- ([#8899](https://github.com/EOSIO/eos/pull/8899)) Account Query DB : Proposal to maintain get_(key|controlled)_accounts [2.0] +- ([#9103](https://github.com/EOSIO/eos/pull/9103)) Add default contract name clarifier in how to deploy smart contract - 2.0 +- ([#9109](https://github.com/EOSIO/eos/pull/9109)) [2.0.x] Bump Anka plugin version and timeouts. +- ([#9115](https://github.com/EOSIO/eos/pull/9115)) Simplify create_snapshot POST request - 2.0 +- ([#9110](https://github.com/EOSIO/eos/pull/9110)) Update algorithm for determining number of parallel jobs - 2.0 + +## Documentation + +- ([#8980](https://github.com/EOSIO/eos/pull/8980)) Add nodeos RPC API index, improve nodeos implementation doc, fix link - 2.0 +- ([#8995](https://github.com/EOSIO/eos/pull/8995)) Update example logging.json - 2.0 +- ([#9102](https://github.com/EOSIO/eos/pull/9102)) Fix inaccurate nodeos reference in wallet_api_plugin - 2.0 +- ([#9116](https://github.com/EOSIO/eos/pull/9116)) Replace inaccurate wording in how to replay from snapshot - 2.0 +- ([#9113](https://github.com/EOSIO/eos/pull/9113)) Add trace_api logger to docs - 2.0 +- ([#9142](https://github.com/EOSIO/eos/pull/9142)) Add missing reference to RPC API index [docs] - 2.0 +- ([#9141](https://github.com/EOSIO/eos/pull/9141)) Fix Trace API reference request/response inaccuracies [docs] - 2.0 +- ([#9144](https://github.com/EOSIO/eos/pull/9144)) Fix title case issue in keosd how-to [docs] - 2.0 +- ([#9145](https://github.com/EOSIO/eos/pull/9145)) Add conditional step in state history plugin how-to [docs] - 2.0 + +## Thanks! + +Special thanks to the community contributors that submitted patches for this release: +- @cc32d9 +- @oldcold diff --git a/docs/30_release-notes/94_v2.0.5.md b/docs/30_release-notes/94_v2.0.5.md index 8291d63562b..2a912715ad1 100644 --- a/docs/30_release-notes/94_v2.0.5.md +++ b/docs/30_release-notes/94_v2.0.5.md @@ -1,4 +1,65 @@ --- -link: /30_release-notes/index.md#eosio-v205-release-notes +content_title: EOSIO v2.0.5 Release Notes link_text: v2.0.5 --- + +This release contains security, stability, and miscellaneous fixes. + +## Security bug fixes + +### Consolidated Security Fixes for 2.0.5 ([#8983](https://github.com/EOSIO/eos/pull/8983)) + +- EOS-VM security fixes + +Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. + +## Stability bug fixes + +- ([#8826](https://github.com/EOSIO/eos/pull/8826)) trace_api_plugin yield timeout - 2.0 +- ([#8836](https://github.com/EOSIO/eos/pull/8836)) fix potential leak in OC's wrapped_fd move assignment op - 2.0 + +## Changes + +### Trace API Compressed Data Log Support ([#8826](https://github.com/EOSIO/eos/pull/8826), [#8837](https://github.com/EOSIO/eos/pull/8837), [#8881](https://github.com/EOSIO/eos/pull/8881)) + +Compressed file support was added to `trace_api_plugin`. See ([#8837](https://github.com/EOSIO/eos/pull/8837)) for more details. + +The RPC call `v1/trace_api/get_block` now has "async" http support. Therefore, executing `get_block` no longer runs on the main application thread but on the configurable `http-threads` thread pool. + +Additionally, `trace_api_plugin` now respects `http-max-response-time-ms` for limiting response time of RPC call `v1/trace_api/get_block`. It is very likely that the default value of `http-max-response-time-ms` will not be appropriate for large blocks and will need to be increased. + +## Other Changes + +- ([#8822](https://github.com/EOSIO/eos/pull/8822)) Merge minimize logging changes to 2.0.x +- ([#8823](https://github.com/EOSIO/eos/pull/8823)) yield_function for abi_serializer - 2.0 +- ([#8855](https://github.com/EOSIO/eos/pull/8855)) Improve too many bytes in flight error info - 2.0 +- ([#8861](https://github.com/EOSIO/eos/pull/8861)) HTTP Plugin async APIs [2.0] +- ([#8873](https://github.com/EOSIO/eos/pull/8873)) Fix spurious HTTP related test failure [2.0] (round 3) +- ([#8883](https://github.com/EOSIO/eos/pull/8883)) wabt: don't search for python because we don't run tests - 2.0 +- ([#8884](https://github.com/EOSIO/eos/pull/8884)) Correctly Sanitize git Branch and Tag Names +- ([#8894](https://github.com/EOSIO/eos/pull/8894)) Increase get info priority to medium high +- ([#8889](https://github.com/EOSIO/eos/pull/8889)) Sync from snapshot - 2.0 +- ([#8906](https://github.com/EOSIO/eos/pull/8906)) Remove assert check for error code 400 - release 2.0.x +- ([#8944](https://github.com/EOSIO/eos/pull/8944)) noop change to macos-10.14-unpinned.sh to regen CI image, 2.0 +- ([#8941](https://github.com/EOSIO/eos/pull/8941)) replace boost::bind with std::bind, fixing boost 1.73beta builds - 2.0 +- ([#8954](https://github.com/EOSIO/eos/pull/8954)) llvm 10 support for EOS VM OC - 2.0 +- ([#8949](https://github.com/EOSIO/eos/pull/8949)) Replace bc with shell arithmetic - 2.0 +- ([#8962](https://github.com/EOSIO/eos/pull/8962)) tests/get_table_tests.cpp: incorrect use of CORE_SYM_STR - 2.0 +- ([#8963](https://github.com/EOSIO/eos/pull/8963)) Make /bin/df ignore $BLOCKSIZE - 2.0 +- ([#8952](https://github.com/EOSIO/eos/pull/8952)) Fix SHIP block delay - 2.0 +- ([#8972](https://github.com/EOSIO/eos/pull/8972)) Add possibility to run .cicd scripts from different environments (2.0.x Backport) +- ([#8968](https://github.com/EOSIO/eos/pull/8968)) Support Running ALL Tests in One Build + +## Documentation changes + +- ([#8825](https://github.com/EOSIO/eos/pull/8825)) remove leading $ chars from shell codeblocks in README.md - 2.0 +- ([#8835](https://github.com/EOSIO/eos/pull/8835)) Trace API documentation update - 2.0 +- ([#8843](https://github.com/EOSIO/eos/pull/8843)) Fix double titles for release 2.0.x +- ([#8845](https://github.com/EOSIO/eos/pull/8845)) [docs] trace api reference api correction - 2.0 +- ([#8918](https://github.com/EOSIO/eos/pull/8918)) Updates to manual build instructions - 2.0 + +## Thanks! + +Special thanks to the community contributors that submitted patches for this release: +- @cc32d9 +- @maoueh diff --git a/docs/30_release-notes/95_v2.0.4.md b/docs/30_release-notes/95_v2.0.4.md index 388959bda05..6906b87069b 100644 --- a/docs/30_release-notes/95_v2.0.4.md +++ b/docs/30_release-notes/95_v2.0.4.md @@ -1,4 +1,88 @@ --- -link: /30_release-notes/index.md#eosio-v204-release-notes +content_title: EOSIO v2.0.4 Release Notes link_text: v2.0.4 --- + +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](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices. + +## Stability bug fixes + +- ([#8684](https://github.com/EOSIO/eos/pull/8684)) Net plugin sync priority - 2.0 +- ([#8729](https://github.com/EOSIO/eos/pull/8729)) Get info priority - 2.0 + +## Changes + +### Trace API Plugin ([#8800](https://github.com/EOSIO/eos/pull/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](https://github.com/EOSIO/eos/pull/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](https://github.com/EOSIO/eos/pull/8651), [#8673](https://github.com/EOSIO/eos/pull/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](https://github.com/EOSIO/eos/pull/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](https://github.com/EOSIO/eos/pull/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](https://github.com/EOSIO/eos/pull/8654)) Fix format message. - 2.0 +- ([#8668](https://github.com/EOSIO/eos/pull/8668)) Add troubleshooting item for PREACTIVATE_FEATURE protocol +- ([#8689](https://github.com/EOSIO/eos/pull/8689)) incoming-defer-ratio description - 2.0 +- ([#8695](https://github.com/EOSIO/eos/pull/8695)) [2.0.x] Community PR tweaks. +- ([#8700](https://github.com/EOSIO/eos/pull/8700)) [2.0.x] Base images pipeline. +- ([#8714](https://github.com/EOSIO/eos/pull/8714)) [2.0.x] Actions rerun fixes. +- ([#8710](https://github.com/EOSIO/eos/pull/8710)) Add block producing explainer doc - 2.0 +- ([#8721](https://github.com/EOSIO/eos/pull/8721)) Fix multiple version protocol test intermittent failure - 2.0 +- ([#8727](https://github.com/EOSIO/eos/pull/8727)) Update the getting started link [merge 2] +- ([#8752](https://github.com/EOSIO/eos/pull/8752)) chain_api_plugin swagger file - 2.0 +- ([#8756](https://github.com/EOSIO/eos/pull/8756)) Fixes #8600 clean up nodeos options section +- ([#8757](https://github.com/EOSIO/eos/pull/8757)) link cleos net status reference doc with the peer network protocol doc +- ([#8590](https://github.com/EOSIO/eos/pull/8590)) db_size_api_plugin swagger file - 2.0 +- ([#8591](https://github.com/EOSIO/eos/pull/8591)) net_api_plugin swagger file - 2.0 +- ([#8592](https://github.com/EOSIO/eos/pull/8592)) producer_api_plugin swagger file - 2.0 +- ([#8593](https://github.com/EOSIO/eos/pull/8593)) test_control_api_plugin swagger file - 2.0 +- ([#8754](https://github.com/EOSIO/eos/pull/8754)) swagger configuration for docs - 2.0 +- ([#8762](https://github.com/EOSIO/eos/pull/8762)) Fix broken link in producer plugin docs - 2.0 +- ([#8763](https://github.com/EOSIO/eos/pull/8763)) Fix wasm-runtime option parameters - 2.0 +- ([#8765](https://github.com/EOSIO/eos/pull/8765)) Add Incoming-defer-ratio description - 2.0 +- ([#8767](https://github.com/EOSIO/eos/pull/8767)) Fix other blocks.log callout - 2.0 +- ([#8768](https://github.com/EOSIO/eos/pull/8768)) Improve create account description - 2.0 +- ([#8782](https://github.com/EOSIO/eos/pull/8782)) link to librt when using posix timers - 2.0 +- ([#8781](https://github.com/EOSIO/eos/pull/8781)) free unknown EOS VM OC codegen versions from the code cache - 2.0 +- ([#8794](https://github.com/EOSIO/eos/pull/8794)) disable EOS VM on non-x86 platforms - 2.0 +- ([#8803](https://github.com/EOSIO/eos/pull/8803)) Expire blacklisted scheduled transactions by LIB time - 2.0 +- ([#8811](https://github.com/EOSIO/eos/pull/8811)) Add initial Trace API plugin docs to nodeos - 2.0 +- ([#8814](https://github.com/EOSIO/eos/pull/8814)) Add RPC Trace API plugin reference to nodeos - 2.0 diff --git a/docs/30_release-notes/96_v2.0.3.md b/docs/30_release-notes/96_v2.0.3.md index 3ed8aa1f9f2..1ba0a6ffb22 100644 --- a/docs/30_release-notes/96_v2.0.3.md +++ b/docs/30_release-notes/96_v2.0.3.md @@ -1,4 +1,29 @@ --- -link: /30_release-notes/index.md#eosio-v203-release-notes +content_title: EOSIO v2.0.3 Release Notes link_text: v2.0.3 --- + +This release contains security, stability, and miscellaneous fixes. + +## Security bug fixes + +### Consolidated Security Fixes for 2.0.3 ([#8643](https://github.com/EOSIO/eos/pull/8643)) + +- Add deadline to base58 encoding. + +Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. + +## Stability bug fixes + +- ([#8617](https://github.com/EOSIO/eos/pull/8617)) Init net_plugin member variables - 2.0 + +## Other Changes + +- ([#8606](https://github.com/EOSIO/eos/pull/8606)) Skip sync from genesis and resume from state test on tagged builds +- ([#8612](https://github.com/EOSIO/eos/pull/8612)) [2.0.x] Actions for community PRs. +- ([#8633](https://github.com/EOSIO/eos/pull/8633)) remove brew's python@2 install - 2.0 +- ([#8636](https://github.com/EOSIO/eos/pull/8636)) bump script's macos version check to 10.14 - 2.0 + +## Deprecation notice reminder + +Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices. diff --git a/docs/30_release-notes/97_v2.0.2.md b/docs/30_release-notes/97_v2.0.2.md index 978a0ff24f5..c9707f171cc 100644 --- a/docs/30_release-notes/97_v2.0.2.md +++ b/docs/30_release-notes/97_v2.0.2.md @@ -1,4 +1,46 @@ --- -link: /30_release-notes/index.md#eosio-v202-release-notes +content_title: EOSIO v2.0.2 Release Notes link_text: v2.0.2 --- + +This release contains security, stability, and miscellaneous fixes. + +## Security bug fixes + +### Consolidated Security Fixes for 2.0.2 ([#8595](https://github.com/EOSIO/eos/pull/8595)) + +- Restrict allowed block signature types. + +Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. + +## Stability bug fixes + +- ([#8526](https://github.com/EOSIO/eos/pull/8526)) Handle socket close before async callback - 2.0 +- ([#8546](https://github.com/EOSIO/eos/pull/8546)) Net plugin dispatch - 2.0 +- ([#8552](https://github.com/EOSIO/eos/pull/8552)) Net plugin unlinkable blocks - 2.0 +- ([#8560](https://github.com/EOSIO/eos/pull/8560)) Backport of 8056 to 2.0 +- ([#8561](https://github.com/EOSIO/eos/pull/8561)) Net plugin post - 2.0 +- ([#8564](https://github.com/EOSIO/eos/pull/8564)) Delayed production time - 2.0 + +## Changes + +### Limit block production window ([#8571](https://github.com/EOSIO/eos/pull/8571), [#8578](https://github.com/EOSIO/eos/pull/8578)) + +The new options `cpu-effort-percent` and `last-block-cpu-effort-percent` now provide a mechanism to restrict the amount of time a producer is processing transactions for inclusion into a block. It also controls the time a producer will finalize/produce and transmit a block. Block construction now always begins at whole or half seconds for the next block. + +### Stricter signature parsing + +Versions of EOSIO prior to v2.0.x accept keys and signatures containing extra data at the end. In EOSIO v2.0.x, the Base58 string parser performs additional sanity checks on keys and signatures to make sure they do not contain more data than necessary. These stricter checks cause nodes to reject signatures generated by some transaction signing libraries; eosjs v20 is known to generate proper signatures. For more information see issue [#8534](https://github.com/EOSIO/eos/issues/8534). + +## Other Changes + +- ([#8555](https://github.com/EOSIO/eos/pull/8555)) Drop late check - 2.0 +- ([#8557](https://github.com/EOSIO/eos/pull/8557)) Read-only with drop-late-block - 2.0 +- ([#8568](https://github.com/EOSIO/eos/pull/8568)) Timestamp watermark slot - 2.0.x +- ([#8577](https://github.com/EOSIO/eos/pull/8577)) [release 2.0.x] Documentation patch 1 update +- ([#8583](https://github.com/EOSIO/eos/pull/8583)) P2p read only - 2.0 +- ([#8589](https://github.com/EOSIO/eos/pull/8589)) Producer plugin log - 2.0 + +## Deprecation notice reminder + +Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices. diff --git a/docs/30_release-notes/98_v2.0.1.md b/docs/30_release-notes/98_v2.0.1.md index d9538685ad0..755ef919c3c 100644 --- a/docs/30_release-notes/98_v2.0.1.md +++ b/docs/30_release-notes/98_v2.0.1.md @@ -1,4 +1,37 @@ --- -link: /30_release-notes/index.md#eosio-v201-release-notes +content_title: EOSIO v2.0.1 Release Notes link_text: v2.0.1 --- + +This release contains security, stability, and miscellaneous fixes. + +## Security bug fixes + +### Consolidated Security Fixes for 2.0.1 ([#8514](https://github.com/EOSIO/eos/pull/8514)) + +- Earlier block validation for greater security. +- Improved handling of deferred transactions during block production. +- Reduce net plugin logging and handshake size limits. + +Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. + +## Stability bug fixes + +- ([#8471](https://github.com/EOSIO/eos/pull/8471)) Remove new block id notify feature - 2.0 +- ([#8472](https://github.com/EOSIO/eos/pull/8472)) Report block header diff when digests do not match - 2.0 +- ([#8496](https://github.com/EOSIO/eos/pull/8496)) Drop late blocks - 2.0 +- ([#8510](https://github.com/EOSIO/eos/pull/8510)) http_plugin shutdown - 2.0 + +## Other Changes + +- ([#8430](https://github.com/EOSIO/eos/pull/8430)) Update fc to fix crash in logging +- ([#8435](https://github.com/EOSIO/eos/pull/8435)) [release/2.0.x] Update README.md and hotfix documentation links +- ([#8452](https://github.com/EOSIO/eos/pull/8452)) [2.0.x] [CI/CD] Boost will not install without SDKROOT +- ([#8457](https://github.com/EOSIO/eos/pull/8457)) [2.0.x] reverting fc +- ([#8458](https://github.com/EOSIO/eos/pull/8458)) [2.0.x] Pipeline file for testing the build script +- ([#8467](https://github.com/EOSIO/eos/pull/8467)) [2.0.x] Switching to using the EOSIO fork of anka-buildkite-plugin for security reasons +- ([#8515](https://github.com/EOSIO/eos/pull/8515)) [2.0.x] Don't trigger LRT a second time + +## Deprecation notice reminder + +Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices. diff --git a/docs/30_release-notes/99_v2.0.0.md b/docs/30_release-notes/99_v2.0.0.md index 050a942192c..6462f86fad7 100644 --- a/docs/30_release-notes/99_v2.0.0.md +++ b/docs/30_release-notes/99_v2.0.0.md @@ -1,4 +1,377 @@ --- -link: /30_release-notes/index.md#eosio-v200-release-notes +content_title: EOSIO v2.0.0 Release Notes link_text: v2.0.0 --- + +This release contains security, stability, and miscellaneous fixes. + +This release also includes an EOSIO consensus upgrade. Please see the "Consensus Protocol Upgrades" section below for details. These protocol upgrades necessitate a change to the state database structure which requires a nodeos upgrade process that involves more steps than in the case of most minor release upgrades. For details on the upgrade process, see the "Upgrading from previous versions of EOSIO" section below. + +## Security bug fixes + +### Consolidated Security Fixes for 2.0.0 ([#8420](https://github.com/EOSIO/eos/pull/8420)) + +- Limit size of response to API requests +- EOS VM fixes + +Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. + +The above is in addition to the other security fixes that were introduced in prior release candidates for 2.0.0: + +- ([#8195](https://github.com/EOSIO/eos/pull/8195)) Consolidated Security Fixes for 2.0.0-rc2 +- ([#8344](https://github.com/EOSIO/eos/pull/8344)) Consolidated Security Fixes for 2.0.0-rc3 + +## Stability bug fixes + +- ([#8399](https://github.com/EOSIO/eos/pull/8399)) Net plugin sync check - 2.0 + +This above is in addition to the other stability fixes that were introduced in prior release candidates for 2.0.0: + +- ([#8084](https://github.com/EOSIO/eos/pull/8084)) Net plugin remove read delays - 2.0 +- ([#8099](https://github.com/EOSIO/eos/pull/8099)) net_plugin remove sync w/peer check - 2.0 +- ([#8120](https://github.com/EOSIO/eos/pull/8120)) Net plugin sync fix - 2.0 +- ([#8229](https://github.com/EOSIO/eos/pull/8229)) Net plugin sync +- ([#8285](https://github.com/EOSIO/eos/pull/8285)) Net plugin handshake +- ([#8298](https://github.com/EOSIO/eos/pull/8298)) net_plugin lib sync +- ([#8303](https://github.com/EOSIO/eos/pull/8303)) net_plugin boost asio error handling +- ([#8305](https://github.com/EOSIO/eos/pull/8305)) net_plugin thread protection peer logging variables +- ([#8311](https://github.com/EOSIO/eos/pull/8311)) Fix race in fc::message_buffer and move message_buffer_tests to fc. +- ([#8307](https://github.com/EOSIO/eos/pull/8307)) reset the new handler + +## Changes + +### EOS VM: New High Performance WASM Runtimes ([#7974](https://github.com/EOSIO/eos/pull/7974), [#7975](https://github.com/EOSIO/eos/pull/7975)) +Three new WASM runtimes are available in this release: EOS VM Interpreter, EOS VM Just In Time Compiler (JIT), and EOS VM Optimized Compiler. + +EOS VM Interpreter is a low latency interpreter and is included to enable future support for smart contract debuggers. EOS VM JIT is a low latency single pass compiler for x86_64 platforms. To use EOS VM Interpreter or EOS VM JIT, set the `wasm-runtime` to either `eos-vm` or `eos-vm-jit` respectively + +EOS VM Optimized Compiler is a high performance WASM _tier-up_ runtime available on the x86_64 Linux platform that works in conjunction with the configured baseline runtime (such as EOS VM JIT). When enabled via `eos-vm-oc-enable`, actions on a contract are initially dispatched to the baseline runtime while EOS VM Optimized Compiler does an optimized compilation in the background. Up to the configured `eos-vm-oc-compile-threads` compilations can be ongoing simultaneously. Once the background compilation is complete, actions on that contract will then be run with the optimized compiled code from then on. This optimized compile can take a handful of seconds but since it is performed in the background it does not cause delays. Optimized compilations are also saved to a new data file (`code_cache.bin` in the data directory) so when restarting nodeos there is no need to recompile previously compiled contracts. + +None of the EOS VM runtimes require a replay nor activation of any consensus protocol upgrades. They can be switched between (including enabling and disabling EOS VM Optimized Compiler) at will. + +At this time, **block producers should consider all running EOS VM JIT as the WASM runtime on their block producing nodes**. Other non-producing nodes should feel free to use the faster EOS VM Optimized Compiler runtime instead. + +### Consensus Protocol Upgrades + +Refer to this section on the [Upgrade Guide: Consensus Protocol Upgrades](../20_upgrade-guide/index.md#consensus-protocol-upgrades). + +### Multi-threaded net_plugin +We have added multi-threading support to net_plugin. Almost all processing in the net_plugin (block propagation, transaction processing, block/transaction packing/unpacking etc.) are now handled by separate threads distinct from the main application thread. This significantly improves transaction processing and block processing performance on multi-producer EOSIO networks. The `net-threads` arg (defaults to 2) controls the number of worker threads in net_plugin thread pool.([#6845](https://github.com/EOSIO/eos/pull/6845), [#7598](https://github.com/EOSIO/eos/pull/7598), [#7392](https://github.com/EOSIO/eos/pull/7392), [#7786](https://github.com/EOSIO/eos/pull/7786) and related optimizations are available in: [#7686](https://github.com/EOSIO/eos/pull/7686), [#7785](https://github.com/EOSIO/eos/pull/7785), [#7721](https://github.com/EOSIO/eos/pull/7721), [#7825](https://github.com/EOSIO/eos/pull/7825), and [#7756](https://github.com/EOSIO/eos/pull/7756)). + +### Chain API Enhancements ([#7530](https://github.com/EOSIO/eos/pull/7530)) +The `uint128` and `int128` ABI types are now represented as decimal numbers rather than the old little-endian hexadecimal representation. This means that the JSON representation of table rows returned by the `get_table_rows` RPC will represent fields using this type differently than in prior versions. It also means that the `lower_bound` and `upper_bound` fields for `get_table_rows` RPC requests that search using a `uint128` secondary index will need to use the new decimal representation. This change makes the ABI serialization for `uint128` and `int128` ABI types consistent with [eosjs](https://github.com/EOSIO/eosjs) and [abieos](http://github.com/EOSIO/abieos). + +The `get_table_rows` RPC when used with secondary index types like `sha256`, `i256`, and `ripemd160` had bugs that scrambled the bytes in the `lower_bound` and `upper_bound` input field. This release now fixes these issues allowing clients to properly search for tables rows using these index types. + +A new field `next_key` has been added to the response of the `get_table_rows` RPC which represents the key of the next row (in the same format as `lower_bound` and `upper_bound`) that was not able to be returned in the response due to timeout limitations or the user-specified limit. The value of the `next_key` can be used as the `lower_bound` input for subsequent requests in order to retrieve a range of a large number of rows that could not be retrieved within just a single request. + +## Upgrading from previous versions of EOSIO + +Refer to this section on the [Upgrade Guide: Upgrading from previous versions of EOSIO](../20_upgrade-guide/index.md#upgrading-from-previous-versions-of-eosio). + +## Deprecation and Removal Notices + +### WAVM removed ([#8407](https://github.com/EOSIO/eos/pull/8407)) + +The WAVM WebAssembly runtime was deprecated several months ago with the release of [EOSIO v2.0.0-rc1](https://github.com/EOSIO/eos/releases/tag/v2.0.0-rc1) which introduced EOS VM. Now with the release of a stable version 2.0.0, EOS VM (JIT or Optimized Compiler variants) can be used instead of WAVM. So WAVM has now been removed as a WASM runtime option from nodeos. + +### Deprecation notice reminder + +Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices. + +## Other Changes + +- ([#7247](https://github.com/EOSIO/eos/pull/7247)) Change default log level from debug to info. - develop +- ([#7238](https://github.com/EOSIO/eos/pull/7238)) Remove unused cpack bits; these are not being used +- ([#7248](https://github.com/EOSIO/eos/pull/7248)) Pass env to build script installs +- ([#6913](https://github.com/EOSIO/eos/pull/6913)) Block log util#6884 +- ([#7249](https://github.com/EOSIO/eos/pull/7249)) Http configurable logging +- ([#7255](https://github.com/EOSIO/eos/pull/7255)) Move Test Metrics Code to Agent +- ([#7217](https://github.com/EOSIO/eos/pull/7217)) Created Universal Pipeline Configuration File +- ([#7264](https://github.com/EOSIO/eos/pull/7264)) use protocol-features-sync-nodes branch for LRT pipeline - develop +- ([#7207](https://github.com/EOSIO/eos/pull/7207)) Optimize mongodb plugin +- ([#7276](https://github.com/EOSIO/eos/pull/7276)) correct net_plugin's win32 check +- ([#7279](https://github.com/EOSIO/eos/pull/7279)) build unittests in c++17, not c++14 +- ([#7282](https://github.com/EOSIO/eos/pull/7282)) Fix cleos REX help - develop +- ([#7284](https://github.com/EOSIO/eos/pull/7284)) remove boost asio string_view workaround +- ([#7286](https://github.com/EOSIO/eos/pull/7286)) chainbase uniqueness violation fixes +- ([#7287](https://github.com/EOSIO/eos/pull/7287)) restrict range of error codes that contracts are allowed to emit +- ([#7278](https://github.com/EOSIO/eos/pull/7278)) simplify openssl setup in cmakelists +- ([#7288](https://github.com/EOSIO/eos/pull/7288)) Changes for Boost 1_70_0 +- ([#7285](https://github.com/EOSIO/eos/pull/7285)) Use of Mac Anka Fleet instead of iMac fleet +- ([#7293](https://github.com/EOSIO/eos/pull/7293)) Update EosioTester.cmake.in (develop) +- ([#7290](https://github.com/EOSIO/eos/pull/7290)) Block log util test +- ([#6845](https://github.com/EOSIO/eos/pull/6845)) Net plugin multithread +- ([#7295](https://github.com/EOSIO/eos/pull/7295)) Modify the pipeline control file for triggered builds +- ([#7305](https://github.com/EOSIO/eos/pull/7305)) Eliminating trigger to allow for community PR jobs to run again +- ([#7306](https://github.com/EOSIO/eos/pull/7306)) when unable to find mongo driver stop cmake +- ([#7309](https://github.com/EOSIO/eos/pull/7309)) add debug_mode to state history plugin - develop +- ([#7310](https://github.com/EOSIO/eos/pull/7310)) Switched to git checkout of commit + supporting forked repo +- ([#7291](https://github.com/EOSIO/eos/pull/7291)) add DB guard check for nodeos_under_min_avail_ram.py +- ([#7240](https://github.com/EOSIO/eos/pull/7240)) add signal tests +- ([#7315](https://github.com/EOSIO/eos/pull/7315)) Add REX balance info to cleos get account command +- ([#7304](https://github.com/EOSIO/eos/pull/7304)) transaction_metadata thread safety +- ([#7321](https://github.com/EOSIO/eos/pull/7321)) Only call init if system contract is loaded +- ([#7275](https://github.com/EOSIO/eos/pull/7275)) remove win32 from CMakeLists.txt +- ([#7322](https://github.com/EOSIO/eos/pull/7322)) Fix under min avail ram test +- ([#7327](https://github.com/EOSIO/eos/pull/7327)) fix block serialization order in fork_database::close - develop +- ([#7331](https://github.com/EOSIO/eos/pull/7331)) Use debug level logging for --verbose +- ([#7325](https://github.com/EOSIO/eos/pull/7325)) Look in both lib and lib64 for CMake modules when building EOSIO Tester +- ([#7337](https://github.com/EOSIO/eos/pull/7337)) correct signed mismatch warning in http_plugin +- ([#7348](https://github.com/EOSIO/eos/pull/7348)) Anka develop fix +- ([#7320](https://github.com/EOSIO/eos/pull/7320)) Add test for various chainbase objects which contain fields that require dynamic allocation +- ([#7350](https://github.com/EOSIO/eos/pull/7350)) correct signed mismatch warning in chain controller +- ([#7356](https://github.com/EOSIO/eos/pull/7356)) Fixes for Boost 1.70 to compile with our current CMake +- ([#7359](https://github.com/EOSIO/eos/pull/7359)) update to use boost 1.70 +- ([#7341](https://github.com/EOSIO/eos/pull/7341)) Add Version Check for Package Builder +- ([#7367](https://github.com/EOSIO/eos/pull/7367)) Fix exception # +- ([#7342](https://github.com/EOSIO/eos/pull/7342)) Update to appbase max priority on main thread +- ([#7336](https://github.com/EOSIO/eos/pull/7336)) (softfloat sync) clean up strict-aliasing rules warnings +- ([#7371](https://github.com/EOSIO/eos/pull/7371)) Adds configuration for replay test pipeline +- ([#7370](https://github.com/EOSIO/eos/pull/7370)) Fix `-b` flag for `cleos get table` subcommand +- ([#7369](https://github.com/EOSIO/eos/pull/7369)) Add `boost/asio/io_context.hpp` header to `transaction_metadata.hpp` for branch `develop` +- ([#7385](https://github.com/EOSIO/eos/pull/7385)) Ship: port #7383 and #7384 to develop +- ([#7377](https://github.com/EOSIO/eos/pull/7377)) Allow aliases of variants in ABI +- ([#7316](https://github.com/EOSIO/eos/pull/7316)) Explicit name +- ([#7389](https://github.com/EOSIO/eos/pull/7389)) Fix develop merge +- ([#7379](https://github.com/EOSIO/eos/pull/7379)) transaction deadline cleanup +- ([#7380](https://github.com/EOSIO/eos/pull/7380)) Producer incoming-transaction-queue-size-mb +- ([#7391](https://github.com/EOSIO/eos/pull/7391)) Allow for EOS clone to be a submodule +- ([#7390](https://github.com/EOSIO/eos/pull/7390)) port db_modes_test to python +- ([#7399](https://github.com/EOSIO/eos/pull/7399)) throw error if trying to create non R1 key on SE or YubiHSM wallet +- ([#7394](https://github.com/EOSIO/eos/pull/7394)) (fc sync) static_variant improvements & fix certificate trust when trust settings is empty +- ([#7405](https://github.com/EOSIO/eos/pull/7405)) Centralize EOSIO Pipeline +- ([#7401](https://github.com/EOSIO/eos/pull/7401)) state database versioning +- ([#7392](https://github.com/EOSIO/eos/pull/7392)) Trx blk connections +- ([#7433](https://github.com/EOSIO/eos/pull/7433)) use imported targets for boost & cleanup fc/appbase/chainbase standalone usage +- ([#7434](https://github.com/EOSIO/eos/pull/7434)) (chainbase) don’t keep file mapping active when in heap/locked mode +- ([#7432](https://github.com/EOSIO/eos/pull/7432)) No need to start keosd for cleos command which doesn't need keosd +- ([#7430](https://github.com/EOSIO/eos/pull/7430)) Add option for cleos sign subcommand to ask keosd for signing +- ([#7425](https://github.com/EOSIO/eos/pull/7425)) txn json to file +- ([#7440](https://github.com/EOSIO/eos/pull/7440)) Fix #7436 SIGSEGV - develop +- ([#7461](https://github.com/EOSIO/eos/pull/7461)) Name txn_test_gen threads +- ([#7442](https://github.com/EOSIO/eos/pull/7442)) Enhance cleos error message when parsing JSON argument +- ([#7451](https://github.com/EOSIO/eos/pull/7451)) set initial costs for expensive parallel unit tests +- ([#7366](https://github.com/EOSIO/eos/pull/7366)) BATS bash tests for build scripts + various other improvements and fixes +- ([#7467](https://github.com/EOSIO/eos/pull/7467)) Pipeline Configuration File Update +- ([#7476](https://github.com/EOSIO/eos/pull/7476)) Various improvements from pull/7458 +- ([#7488](https://github.com/EOSIO/eos/pull/7488)) Various BATS fixes to fix CI/CD +- ([#7489](https://github.com/EOSIO/eos/pull/7489)) Fix Incorrectly Resolved and Untested Merge Conflicts in Pipeline Configuration File +- ([#7474](https://github.com/EOSIO/eos/pull/7474)) fix copy_bin() for win32 builds +- ([#7478](https://github.com/EOSIO/eos/pull/7478)) remove stray SIGUSR1 +- ([#7475](https://github.com/EOSIO/eos/pull/7475)) guard unix socket support in http_plugin depending on platform support +- ([#7492](https://github.com/EOSIO/eos/pull/7492)) Enabled helpers for unpinned builds. +- ([#7482](https://github.com/EOSIO/eos/pull/7482)) Let delete-all-blocks option to only remove the contents instead of the directory itself +- ([#7502](https://github.com/EOSIO/eos/pull/7502)) [develop] Versioned images (prep for hashing) +- ([#7507](https://github.com/EOSIO/eos/pull/7507)) use create_directories in initialize_protocol_features - develop +- ([#7484](https://github.com/EOSIO/eos/pull/7484)) return zero exit status for nodeos version, help, fixed reversible, and extracted genesis +- ([#7468](https://github.com/EOSIO/eos/pull/7468)) Versioning library +- ([#7486](https://github.com/EOSIO/eos/pull/7486)) [develop] Ensure we're in repo root +- ([#7515](https://github.com/EOSIO/eos/pull/7515)) Custom path support for eosio installation. +- ([#7516](https://github.com/EOSIO/eos/pull/7516)) on supported platforms build with system clang by default +- ([#7519](https://github.com/EOSIO/eos/pull/7519)) [develop] Removed lrt from pipeline.jsonc +- ([#7525](https://github.com/EOSIO/eos/pull/7525)) [develop] Readlink quick fix and BATS test fixes +- ([#7532](https://github.com/EOSIO/eos/pull/7532)) [develop] BASE IMAGE Fixes +- ([#7535](https://github.com/EOSIO/eos/pull/7535)) Add -j option to print JSON format for cleos get currency balance. +- ([#7537](https://github.com/EOSIO/eos/pull/7537)) connection via listen needs to start in connecting mode +- ([#7497](https://github.com/EOSIO/eos/pull/7497)) properly add single quotes for parameter with spaces in logs output +- ([#7544](https://github.com/EOSIO/eos/pull/7544)) restore usage of devtoolset-8 on centos7 +- ([#7547](https://github.com/EOSIO/eos/pull/7547)) Sighup logging +- ([#7421](https://github.com/EOSIO/eos/pull/7421)) WebAuthn key and signature support +- ([#7572](https://github.com/EOSIO/eos/pull/7572)) [develop] Don't create mongo folders unless ENABLE_MONGO is true +- ([#7576](https://github.com/EOSIO/eos/pull/7576)) [develop] Better found/not found messages for clarity +- ([#7545](https://github.com/EOSIO/eos/pull/7545)) add nodiscard attribute to tester's push_action +- ([#7581](https://github.com/EOSIO/eos/pull/7581)) Update to fc with logger fix +- ([#7558](https://github.com/EOSIO/eos/pull/7558)) [develop] Ability to set *_DIR on CLI +- ([#7553](https://github.com/EOSIO/eos/pull/7553)) [develop] CMAKE version check before dependencies are installed +- ([#7584](https://github.com/EOSIO/eos/pull/7584)) fix hash<>::result_type deprecation spam +- ([#7588](https://github.com/EOSIO/eos/pull/7588)) [develop] Various BATS test fixes +- ([#7578](https://github.com/EOSIO/eos/pull/7578)) [develop] -i support for relative paths +- ([#7449](https://github.com/EOSIO/eos/pull/7449)) add accurate checktime timer for macOS +- ([#7591](https://github.com/EOSIO/eos/pull/7591)) [develop] SUDO_COMMAND -> NEW_SUDO_COMMAND (base fixed) +- ([#7594](https://github.com/EOSIO/eos/pull/7594)) [develop] Install location fix +- ([#7586](https://github.com/EOSIO/eos/pull/7586)) Modify transaction_ack to process bcast_transaction and rejected_transaction correctly +- ([#7585](https://github.com/EOSIO/eos/pull/7585)) Enhance cleos to enable new RPC send_transaction +- ([#7599](https://github.com/EOSIO/eos/pull/7599)) Use updated sync nodes for sync tests +- ([#7608](https://github.com/EOSIO/eos/pull/7608)) indicate in brew bottle mojave is required +- ([#7615](https://github.com/EOSIO/eos/pull/7615)) Change hardcoded currency symbol in testnet.template into a variable +- ([#7610](https://github.com/EOSIO/eos/pull/7610)) use explicit billing for unapplied and deferred transactions in tester - develop +- ([#7621](https://github.com/EOSIO/eos/pull/7621)) Call resolve on connection strand +- ([#7623](https://github.com/EOSIO/eos/pull/7623)) additional wasm unittests around max depth +- ([#7607](https://github.com/EOSIO/eos/pull/7607)) Improve nodeos make-index speeds +- ([#7598](https://github.com/EOSIO/eos/pull/7598)) Net plugin block id notification +- ([#7624](https://github.com/EOSIO/eos/pull/7624)) bios-boot-tutorial.py: bugfix, SYS hardcoded instead of using command… +- ([#7632](https://github.com/EOSIO/eos/pull/7632)) [develop] issues/7627: Install script missing ! +- ([#7634](https://github.com/EOSIO/eos/pull/7634)) fix fc::temp_directory usage in tester +- ([#7642](https://github.com/EOSIO/eos/pull/7642)) remove stale warning about dirty metadata +- ([#7640](https://github.com/EOSIO/eos/pull/7640)) fix win32 build of eosio-blocklog +- ([#7643](https://github.com/EOSIO/eos/pull/7643)) remove unused dlfcn.h include; troublesome for win32 +- ([#7645](https://github.com/EOSIO/eos/pull/7645)) add eosio-blocklog to base install component +- ([#7651](https://github.com/EOSIO/eos/pull/7651)) Port #7619 to develop +- ([#7652](https://github.com/EOSIO/eos/pull/7652)) remove raise() in keosd in favor of simple appbase quit (de-posix it) +- ([#7453](https://github.com/EOSIO/eos/pull/7453)) Refactor unapplied transaction queue +- ([#7657](https://github.com/EOSIO/eos/pull/7657)) (chainbase sync) print name of DB causing failure condition & win32 fixes +- ([#7663](https://github.com/EOSIO/eos/pull/7663)) Fix path error in cleos set code/abi +- ([#7633](https://github.com/EOSIO/eos/pull/7633)) Small optimization to move more trx processing off application thread +- ([#7662](https://github.com/EOSIO/eos/pull/7662)) fix fork resolve in special case +- ([#7667](https://github.com/EOSIO/eos/pull/7667)) fix 7600 double confirm after changing sign key +- ([#7625](https://github.com/EOSIO/eos/pull/7625)) Fix flaky tests - mainly net_plugin fixes +- ([#7672](https://github.com/EOSIO/eos/pull/7672)) Fix memory leak +- ([#7676](https://github.com/EOSIO/eos/pull/7676)) Remove unused code +- ([#7677](https://github.com/EOSIO/eos/pull/7677)) Commas go outside the quotes... +- ([#7675](https://github.com/EOSIO/eos/pull/7675)) wasm unit test with an imported function as start function +- ([#7678](https://github.com/EOSIO/eos/pull/7678)) Issue 3516 fix +- ([#7404](https://github.com/EOSIO/eos/pull/7404)) wtmsig block production +- ([#7686](https://github.com/EOSIO/eos/pull/7686)) Unapplied transaction queue performance +- ([#7685](https://github.com/EOSIO/eos/pull/7685)) Integration Test descriptions and timeout fix +- ([#7691](https://github.com/EOSIO/eos/pull/7691)) Fix nodeos 1.8.x to > 1.7.x peering issue (allowed-connection not equal to "any") +- ([#7250](https://github.com/EOSIO/eos/pull/7250)) wabt: reduce redundant memset +- ([#7702](https://github.com/EOSIO/eos/pull/7702)) fix producer_plugin watermark tracking - develop +- ([#7477](https://github.com/EOSIO/eos/pull/7477)) Fix abi_serializer to encode optional non-built_in types +- ([#7703](https://github.com/EOSIO/eos/pull/7703)) return flat_multimap from transaction::validate_and_extract_extensions +- ([#7720](https://github.com/EOSIO/eos/pull/7720)) Fix bug to make sed -i work properly on Mac +- ([#7716](https://github.com/EOSIO/eos/pull/7716)) [TRAVIS POC] develop Support passing in JOBS for docker/kube multi-tenancy +- ([#7707](https://github.com/EOSIO/eos/pull/7707)) add softfloat only injection mode +- ([#7725](https://github.com/EOSIO/eos/pull/7725)) Fix increment in test +- ([#7729](https://github.com/EOSIO/eos/pull/7729)) Fix db_modes_test +- ([#7734](https://github.com/EOSIO/eos/pull/7734)) Fix db exhaustion +- ([#7487](https://github.com/EOSIO/eos/pull/7487)) Enable extended_asset to be encoded from array +- ([#7736](https://github.com/EOSIO/eos/pull/7736)) unit test ensuring that OOB table init allowed on set code; fails on action +- ([#7744](https://github.com/EOSIO/eos/pull/7744)) (appbase) update to get non-option fix & unique_ptr tweak +- ([#7746](https://github.com/EOSIO/eos/pull/7746)) (chainbase sync) fix build with boost 1.71 +- ([#7721](https://github.com/EOSIO/eos/pull/7721)) Improve signature recovery +- ([#7757](https://github.com/EOSIO/eos/pull/7757)) remove stale license headers +- ([#7756](https://github.com/EOSIO/eos/pull/7756)) block_log performance improvement, and misc. +- ([#7654](https://github.com/EOSIO/eos/pull/7654)) exclusively use timer for checktime +- ([#7763](https://github.com/EOSIO/eos/pull/7763)) Use fc::cfile instead of std::fstream for state_history +- ([#7770](https://github.com/EOSIO/eos/pull/7770)) Net plugin sync fix +- ([#7717](https://github.com/EOSIO/eos/pull/7717)) Support for v2 snapshots with pending producer schedules +- ([#7795](https://github.com/EOSIO/eos/pull/7795)) Hardcode initial eosio ABI: #7794 +- ([#7792](https://github.com/EOSIO/eos/pull/7792)) Restore default logging if logging.json is removed when SIGHUP. +- ([#7791](https://github.com/EOSIO/eos/pull/7791)) Producer plugin +- ([#7786](https://github.com/EOSIO/eos/pull/7786)) Remove redundant work from net plugin +- ([#7785](https://github.com/EOSIO/eos/pull/7785)) Optimize block log usage +- ([#7812](https://github.com/EOSIO/eos/pull/7812)) Add IMPORTANT file and update README - develop +- ([#7820](https://github.com/EOSIO/eos/pull/7820)) rename IMPORTANT to IMPORTANT.md - develop +- ([#7809](https://github.com/EOSIO/eos/pull/7809)) Correct cpu_usage calculation when more than one signature +- ([#7803](https://github.com/EOSIO/eos/pull/7803)) callback support for checktime timer expiry +- ([#7838](https://github.com/EOSIO/eos/pull/7838)) Bandwidth - develop +- ([#7845](https://github.com/EOSIO/eos/pull/7845)) Deprecate network version match - develop +- ([#7700](https://github.com/EOSIO/eos/pull/7700)) [develop] Travis CI + Buildkite 3.0 +- ([#7825](https://github.com/EOSIO/eos/pull/7825)) apply_block optimization +- ([#7849](https://github.com/EOSIO/eos/pull/7849)) Increase Contracts Builder Timeout + Fix $SKIP_MAC +- ([#7854](https://github.com/EOSIO/eos/pull/7854)) Net plugin sync +- ([#7860](https://github.com/EOSIO/eos/pull/7860)) [develop] Ensure release flag is added to all builds. +- ([#7873](https://github.com/EOSIO/eos/pull/7873)) [develop] Mac Builder Boost Fix +- ([#7868](https://github.com/EOSIO/eos/pull/7868)) cleos get actions +- ([#7774](https://github.com/EOSIO/eos/pull/7774)) update WAVM to be compatible with LLVM 7 through 9 +- ([#7864](https://github.com/EOSIO/eos/pull/7864)) Add output of build info on nodeos startup +- ([#7881](https://github.com/EOSIO/eos/pull/7881)) [develop] Ensure Artfacts Upload on Failed Tests +- ([#7886](https://github.com/EOSIO/eos/pull/7886)) promote read-only disablement log from net_plugin to warn level +- ([#7887](https://github.com/EOSIO/eos/pull/7887)) print unix socket path when there is an error starting unix socket server +- ([#7889](https://github.com/EOSIO/eos/pull/7889)) Update docker builder tag +- ([#7891](https://github.com/EOSIO/eos/pull/7891)) Fix exit crash - develop +- ([#7877](https://github.com/EOSIO/eos/pull/7877)) Create Release Build Test +- ([#7883](https://github.com/EOSIO/eos/pull/7883)) Add Support for eosio-test-stability Pipeline +- ([#7903](https://github.com/EOSIO/eos/pull/7903)) adds support for builder priority queues +- ([#7853](https://github.com/EOSIO/eos/pull/7853)) change behavior of recover_key to better support variable length keys +- ([#7901](https://github.com/EOSIO/eos/pull/7901)) [develop] Add Trigger for LRTs and Multiversion Tests Post PR +- ([#7914](https://github.com/EOSIO/eos/pull/7914)) [Develop] Forked PR fix +- ([#7923](https://github.com/EOSIO/eos/pull/7923)) return error when attempting to remove key from YubiHSM wallet +- ([#7910](https://github.com/EOSIO/eos/pull/7910)) [Develop] Updated anka plugin, added failover for registries, and added sleep fix for git clone/networking bug +- ([#7926](https://github.com/EOSIO/eos/pull/7926)) Better error check in test +- ([#7919](https://github.com/EOSIO/eos/pull/7919)) decouple wavm runtime from being required & initial support for platform specific wasm runtimes +- ([#7927](https://github.com/EOSIO/eos/pull/7927)) Fix Release Build Type for macOS on Travis CI +- ([#7931](https://github.com/EOSIO/eos/pull/7931)) Fix intermittent crash on exit when port already in use - develop +- ([#7930](https://github.com/EOSIO/eos/pull/7930)) use -fdiagnostics-color=always even for clang +- ([#7933](https://github.com/EOSIO/eos/pull/7933)) [Develop] Support all BK/Travis cases in Submodule Regression Script +- ([#7943](https://github.com/EOSIO/eos/pull/7943)) Change eosio-launcher enable-gelf-logging argument default to false. +- ([#7946](https://github.com/EOSIO/eos/pull/7946)) Forked chain test error statement - develop +- ([#7948](https://github.com/EOSIO/eos/pull/7948)) net_plugin correctly handle unknown_block_exception - develop +- ([#7954](https://github.com/EOSIO/eos/pull/7954)) remove bad semicolon (in unused but compiled code) +- ([#7952](https://github.com/EOSIO/eos/pull/7952)) Unable to Create Block Log Index #7865 +- ([#7953](https://github.com/EOSIO/eos/pull/7953)) Refactor producer plugin start_block - develop +- ([#7841](https://github.com/EOSIO/eos/pull/7841)) 7646 chain id in blog +- ([#7958](https://github.com/EOSIO/eos/pull/7958)) [develop] Fix Mac builds on Travis +- ([#7962](https://github.com/EOSIO/eos/pull/7962)) set immutable chain_id during construction of controller +- ([#7957](https://github.com/EOSIO/eos/pull/7957)) Upgrade to Boost 1.71.0 +- ([#7971](https://github.com/EOSIO/eos/pull/7971)) Net plugin unexpected block - develop +- ([#7967](https://github.com/EOSIO/eos/pull/7967)) support unix socket HTTP server for nodeos +- ([#7947](https://github.com/EOSIO/eos/pull/7947)) Function body code size test +- ([#7955](https://github.com/EOSIO/eos/pull/7955)) EOSIO WASM Spec tests +- ([#7978](https://github.com/EOSIO/eos/pull/7978)) use the LLVM 7 library provided by SCL on CentOS7 +- ([#7983](https://github.com/EOSIO/eos/pull/7983)) port consolidated security fixes for 1.8.4 to develop; add unit tests associated with consolidated security fixes for 1.8.1 +- ([#7986](https://github.com/EOSIO/eos/pull/7986)) Remove unnecessary comment +- ([#7985](https://github.com/EOSIO/eos/pull/7985)) more bug fixes with chain_id in state changes +- ([#7974](https://github.com/EOSIO/eos/pull/7974)) Experimental/wb2 jit +- ([#7989](https://github.com/EOSIO/eos/pull/7989)) Correct designator order for field of get_table_rows_params +- ([#7992](https://github.com/EOSIO/eos/pull/7992)) move wasm_allocator from wasm_interface to controller +- ([#7995](https://github.com/EOSIO/eos/pull/7995)) new timeout to handle when two jobs on the same host are maxing their… +- ([#7993](https://github.com/EOSIO/eos/pull/7993)) update eos-vm to latest develop, fix issues with instantiation limit … +- ([#7991](https://github.com/EOSIO/eos/pull/7991)) missing block log chain id unit tests +- ([#8001](https://github.com/EOSIO/eos/pull/8001)) Net plugin trx progress - develop +- ([#8003](https://github.com/EOSIO/eos/pull/8003)) update eos-vm ref +- ([#7988](https://github.com/EOSIO/eos/pull/7988)) Net plugin version match +- ([#8004](https://github.com/EOSIO/eos/pull/8004)) bump version +- ([#7975](https://github.com/EOSIO/eos/pull/7975)) EOS-VM Optimized Compiler +- ([#8007](https://github.com/EOSIO/eos/pull/8007)) disallow WAVM with EOS-VM OC +- ([#8010](https://github.com/EOSIO/eos/pull/8010)) Change log level of index write +- ([#8009](https://github.com/EOSIO/eos/pull/8009)) pending incoming order on subjective failure +- ([#8013](https://github.com/EOSIO/eos/pull/8013)) ensure eos-vm-oc headers get installed +- ([#8008](https://github.com/EOSIO/eos/pull/8008)) Increase stability of nodeos_under_min_avail_ram.py - develop +- ([#8015](https://github.com/EOSIO/eos/pull/8015)) two fixes for eosio tester cmake modules +- ([#8019](https://github.com/EOSIO/eos/pull/8019)) [Develop] Change submodule script to see stderr for git commands +- ([#8014](https://github.com/EOSIO/eos/pull/8014)) Retain persisted trx until expired on speculative nodes +- ([#8024](https://github.com/EOSIO/eos/pull/8024)) Add optional ability to disable WASM Spec Tests +- ([#8023](https://github.com/EOSIO/eos/pull/8023)) Make subjective_cpu_leeway a config option +- ([#8025](https://github.com/EOSIO/eos/pull/8025)) Fix build script LLVM symlinking +- ([#8026](https://github.com/EOSIO/eos/pull/8026)) update EOS VM Optimized Compiler naming convention +- ([#8012](https://github.com/EOSIO/eos/pull/8012)) 7939 trim block log v3 support +- ([#8029](https://github.com/EOSIO/eos/pull/8029)) update eos-vm ref and install eos-vm license +- ([#8033](https://github.com/EOSIO/eos/pull/8033)) net_plugin better error for unknown block +- ([#8034](https://github.com/EOSIO/eos/pull/8034)) EOS VM OC license updates +- ([#8042](https://github.com/EOSIO/eos/pull/8042)) [2.0.x] dockerhub | eosio/producer -> eosio/ci +- ([#8050](https://github.com/EOSIO/eos/pull/8050)) Add greylist limit - v2.0.x +- ([#8060](https://github.com/EOSIO/eos/pull/8060)) #8054: fix commas in ship abi +- ([#8072](https://github.com/EOSIO/eos/pull/8072)) nodeos & keosd version reporting - 2.0 +- ([#8071](https://github.com/EOSIO/eos/pull/8071)) Update cleos to support new producer schedule - 2.0 +- ([#8070](https://github.com/EOSIO/eos/pull/8070)) don't rebuild llvm unnecessarily during pinned builds - 2.0 +- ([#8074](https://github.com/EOSIO/eos/pull/8074)) [2.0.x] Upgrade mac anka template to 10.14.6 +- ([#8076](https://github.com/EOSIO/eos/pull/8076)) Handle cases where version_* not specified in CMakeLists.txt - 2.0 +- ([#8088](https://github.com/EOSIO/eos/pull/8088)) [2.0.x] Linux build fleet update +- ([#8091](https://github.com/EOSIO/eos/pull/8091)) report block extensions_type contents in RPC and eosio-blocklog tool - 2.0 +- ([#8105](https://github.com/EOSIO/eos/pull/8105)) Modify --print-default-config to exit with success - 2.0 +- ([#8113](https://github.com/EOSIO/eos/pull/8113)) [2.0.x] WASM Spec Test Step in CI +- ([#8114](https://github.com/EOSIO/eos/pull/8114)) [2.0.x] Mac OSX steps need a min of 1 hour +- ([#8127](https://github.com/EOSIO/eos/pull/8127)) [2.0.x] Move the ensure step into the build step, eliminating the need for templaters +- ([#8144](https://github.com/EOSIO/eos/pull/8144)) fix pinned builds on fresh macOS install - 2.0 +- ([#8149](https://github.com/EOSIO/eos/pull/8149)) [2.0.x] CI platform directories +- ([#8155](https://github.com/EOSIO/eos/pull/8155)) Post State history callback as medium priority - 2.0 +- ([#8173](https://github.com/EOSIO/eos/pull/8173)) ensure GMP is always dynamically linked - 2.0 +- ([#8175](https://github.com/EOSIO/eos/pull/8175)) [2.0.x] Unpinned and WASM test fixes +- ([#8168](https://github.com/EOSIO/eos/pull/8168)) add harden flags to cicd & pinned builds - 2.0 +- ([#8180](https://github.com/EOSIO/eos/pull/8180)) [2.0.x] 10 second sleep to address heavy usage wait-network bug in Anka +- ([#8192](https://github.com/EOSIO/eos/pull/8192)) Reduce logging - 2.0 +- ([#8367](https://github.com/EOSIO/eos/pull/8367)) Add Sync from Genesis Test +- ([#8363](https://github.com/EOSIO/eos/pull/8363)) Fix linking OpenSSL (branch `release/2.0.x`) +- ([#8383](https://github.com/EOSIO/eos/pull/8383)) Escape BUILDKITE_COMMIT to generate tag properly +- ([#8385](https://github.com/EOSIO/eos/pull/8385)) Propagate exceptions out push_block - 2.0 +- ([#8391](https://github.com/EOSIO/eos/pull/8391)) Add eosio-resume-from-state Test +- ([#8393](https://github.com/EOSIO/eos/pull/8393)) Make multiversion protocol test conditional. +- ([#8402](https://github.com/EOSIO/eos/pull/8402)) fix EOS VM OC monitor thread name - 2.0 +- ([#8406](https://github.com/EOSIO/eos/pull/8406)) [2.0.x] Modified Amazon and Centos to use yum install ccache +- ([#8414](https://github.com/EOSIO/eos/pull/8414)) Add better logging of exceptions in emit - 2.0 +- ([#8328](https://github.com/EOSIO/eos/pull/8328)) Fix bios boot python script due to 2.0.x changes +- ([#8293](https://github.com/EOSIO/eos/pull/8293)) Add nodeos/cleos/keosd docs from develop, update README +- ([#8425](https://github.com/EOSIO/eos/pull/8425)) fix discovery of openssl in tester cmake when OPENSSL_ROOT_DIR not set - 2.0 + +## Thanks! + +Special thanks to the community contributors that submitted patches for this release: +- @UMU618 +- @conr2d +- @YordanPavlov +- @baegjae +- @olexiybuyanskyy +- @spartucus +- @rdewilder diff --git a/docs/30_release-notes/index.md b/docs/30_release-notes/index.md index 632a321d0df..fbe8abc8b48 100644 --- a/docs/30_release-notes/index.md +++ b/docs/30_release-notes/index.md @@ -27,719 +27,3 @@ This option is the cap for the size of an inline action above which a transactio - ([#9275](https://github.com/EOSIO/eos/pull/9275)) [docs] New threshold for non privileged inline actions - 2.0 - ([#9288](https://github.com/EOSIO/eos/pull/9288)) [docs] Fix character formatting in nodeos CLI option - 2.0 - ([#9290](https://github.com/EOSIO/eos/pull/9290)) [docs] Correct Producer API title in RPC reference - 2.0 - - -*** -# EOSIO v2.0.6 Release Notes - -This release contains security, stability, and miscellaneous fixes. - -## Security bug fixes - -- ([#9172](https://github.com/EOSIO/eos/pull/9172)) Escape Unicode C1 control code points. - -Note: These security fixes are relevant to API nodes on EOSIO blockchain networks. - -## Stability bug fixes - -- ([#9065](https://github.com/EOSIO/eos/pull/9065)) Fix for cleos and keosd race condition - 2.0 -- ([#9089](https://github.com/EOSIO/eos/pull/9089)) make ship WA key serialization match expected serialization - 2.0 -- ([#9095](https://github.com/EOSIO/eos/pull/9095)) fix gcc10 build due to libyubihsm problem - 2.0 -- ([#9127](https://github.com/EOSIO/eos/pull/9127)) Fix onblock handling in trace_api_plugin - 2.0 -- ([#9129](https://github.com/EOSIO/eos/pull/9129)) GCC 8.3 on CentOS 7 compiler workaround - 2.0 -- ([#9128](https://github.com/EOSIO/eos/pull/9128)) Restore abi_serializer backward compatibility - 2.0 - -## Changes - -### Add more information in trace-api-plugin responses for better usage. ([#9005](https://github.com/EOSIO/eos/pull/9005)) - -Adds `transaction_mroot`, `action_mroot` and `schedule_version` in block trace. Also adds `status`, `cpu_usage_us`, `net_usage_words`, `signatures`, and `transaction_header` in transaction trace. - -### New RPC endpoint **`get_accounts_by_authorizers`** ([#8899](https://github.com/EOSIO/eos/pull/8899)) - -New optional RPC endpoint **`POST /v1/chain/get_accounts_by_authorizers`** added to `chain_api_plugin` that provides a super-set of the deprecated `history_api_plugin`'s `get_key_accounts` and `get_controlled_accounts` RPC methods. - -Flag to enable endpoint (default false): **`--enable-account-queries`** - -## Other Changes - -- ([#8975](https://github.com/EOSIO/eos/pull/8975)) failing nodeos_run_test when core symbol is not SYS - 2.0 -- ([#9002](https://github.com/EOSIO/eos/pull/9002)) Support Triggering a Build that Runs ALL Tests in One Build -- ([#9007](https://github.com/EOSIO/eos/pull/9007)) Improved reporting in nodeos_forked_chain_lr_test - 2.0.x -- ([#9013](https://github.com/EOSIO/eos/pull/9013)) Bugfix for uninitialized variable in cleos - 2.0 -- ([#9009](https://github.com/EOSIO/eos/pull/9009)) Upgrade CLI11 to 1.9.0 - 2.0 -- ([#9028](https://github.com/EOSIO/eos/pull/9028)) Fix keosd auto-launching after CLI11 upgrade - 2.0 -- ([#9035](https://github.com/EOSIO/eos/pull/9035)) For Release 2.0 - Updated the priority of the APIs in producer_api_plugin and net_api_plugin to MEDIUM_HIGH -- ([#9049](https://github.com/EOSIO/eos/pull/9049)) add rapidjson license to install - 2.0 -- ([#9052](https://github.com/EOSIO/eos/pull/9052)) Print stderr if keosd_auto_launch_test.py fails - 2.0 -- ([#9060](https://github.com/EOSIO/eos/pull/9060)) Fix uninitialized struct members used as CLI flags - 2.0 -- ([#9062](https://github.com/EOSIO/eos/pull/9062)) Fix timedelta and strftime usage - 2.0 -- ([#9078](https://github.com/EOSIO/eos/pull/9078)) Update date in LICENSE - 2.0 -- ([#9063](https://github.com/EOSIO/eos/pull/9063)) add help text to wasm-runtime - 2.0.x -- ([#9084](https://github.com/EOSIO/eos/pull/9084)) Add support for specifing a logging.json to keosd - 2.0 -- ([#9082](https://github.com/EOSIO/eos/pull/9082)) Add change type to pull request template - 2.0 -- ([#8899](https://github.com/EOSIO/eos/pull/8899)) Account Query DB : Proposal to maintain get_(key|controlled)_accounts [2.0] -- ([#9103](https://github.com/EOSIO/eos/pull/9103)) Add default contract name clarifier in how to deploy smart contract - 2.0 -- ([#9109](https://github.com/EOSIO/eos/pull/9109)) [2.0.x] Bump Anka plugin version and timeouts. -- ([#9115](https://github.com/EOSIO/eos/pull/9115)) Simplify create_snapshot POST request - 2.0 -- ([#9110](https://github.com/EOSIO/eos/pull/9110)) Update algorithm for determining number of parallel jobs - 2.0 - -## Documentation - -- ([#8980](https://github.com/EOSIO/eos/pull/8980)) Add nodeos RPC API index, improve nodeos implementation doc, fix link - 2.0 -- ([#8995](https://github.com/EOSIO/eos/pull/8995)) Update example logging.json - 2.0 -- ([#9102](https://github.com/EOSIO/eos/pull/9102)) Fix inaccurate nodeos reference in wallet_api_plugin - 2.0 -- ([#9116](https://github.com/EOSIO/eos/pull/9116)) Replace inaccurate wording in how to replay from snapshot - 2.0 -- ([#9113](https://github.com/EOSIO/eos/pull/9113)) Add trace_api logger to docs - 2.0 -- ([#9142](https://github.com/EOSIO/eos/pull/9142)) Add missing reference to RPC API index [docs] - 2.0 -- ([#9141](https://github.com/EOSIO/eos/pull/9141)) Fix Trace API reference request/response inaccuracies [docs] - 2.0 -- ([#9144](https://github.com/EOSIO/eos/pull/9144)) Fix title case issue in keosd how-to [docs] - 2.0 -- ([#9145](https://github.com/EOSIO/eos/pull/9145)) Add conditional step in state history plugin how-to [docs] - 2.0 - -## Thanks! - -Special thanks to the community contributors that submitted patches for this release: -- @cc32d9 -- @oldcold - - -*** -# EOSIO v2.0.5 Release Notes - -This release contains security, stability, and miscellaneous fixes. - -## Security bug fixes - -### Consolidated Security Fixes for 2.0.5 ([#8983](https://github.com/EOSIO/eos/pull/8983)) - -- EOS-VM security fixes - -Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. - -## Stability bug fixes - -- ([#8826](https://github.com/EOSIO/eos/pull/8826)) trace_api_plugin yield timeout - 2.0 -- ([#8836](https://github.com/EOSIO/eos/pull/8836)) fix potential leak in OC's wrapped_fd move assignment op - 2.0 - -## Changes - -### Trace API Compressed Data Log Support ([#8826](https://github.com/EOSIO/eos/pull/8826), [#8837](https://github.com/EOSIO/eos/pull/8837), [#8881](https://github.com/EOSIO/eos/pull/8881)) - -Compressed file support was added to `trace_api_plugin`. See ([#8837](https://github.com/EOSIO/eos/pull/8837)) for more details. - -The RPC call `v1/trace_api/get_block` now has "async" http support. Therefore, executing `get_block` no longer runs on the main application thread but on the configurable `http-threads` thread pool. - -Additionally, `trace_api_plugin` now respects `http-max-response-time-ms` for limiting response time of RPC call `v1/trace_api/get_block`. It is very likely that the default value of `http-max-response-time-ms` will not be appropriate for large blocks and will need to be increased. - -## Other Changes - -- ([#8822](https://github.com/EOSIO/eos/pull/8822)) Merge minimize logging changes to 2.0.x -- ([#8823](https://github.com/EOSIO/eos/pull/8823)) yield_function for abi_serializer - 2.0 -- ([#8855](https://github.com/EOSIO/eos/pull/8855)) Improve too many bytes in flight error info - 2.0 -- ([#8861](https://github.com/EOSIO/eos/pull/8861)) HTTP Plugin async APIs [2.0] -- ([#8873](https://github.com/EOSIO/eos/pull/8873)) Fix spurious HTTP related test failure [2.0] (round 3) -- ([#8883](https://github.com/EOSIO/eos/pull/8883)) wabt: don't search for python because we don't run tests - 2.0 -- ([#8884](https://github.com/EOSIO/eos/pull/8884)) Correctly Sanitize git Branch and Tag Names -- ([#8894](https://github.com/EOSIO/eos/pull/8894)) Increase get info priority to medium high -- ([#8889](https://github.com/EOSIO/eos/pull/8889)) Sync from snapshot - 2.0 -- ([#8906](https://github.com/EOSIO/eos/pull/8906)) Remove assert check for error code 400 - release 2.0.x -- ([#8944](https://github.com/EOSIO/eos/pull/8944)) noop change to macos-10.14-unpinned.sh to regen CI image, 2.0 -- ([#8941](https://github.com/EOSIO/eos/pull/8941)) replace boost::bind with std::bind, fixing boost 1.73beta builds - 2.0 -- ([#8954](https://github.com/EOSIO/eos/pull/8954)) llvm 10 support for EOS VM OC - 2.0 -- ([#8949](https://github.com/EOSIO/eos/pull/8949)) Replace bc with shell arithmetic - 2.0 -- ([#8962](https://github.com/EOSIO/eos/pull/8962)) tests/get_table_tests.cpp: incorrect use of CORE_SYM_STR - 2.0 -- ([#8963](https://github.com/EOSIO/eos/pull/8963)) Make /bin/df ignore $BLOCKSIZE - 2.0 -- ([#8952](https://github.com/EOSIO/eos/pull/8952)) Fix SHIP block delay - 2.0 -- ([#8972](https://github.com/EOSIO/eos/pull/8972)) Add possibility to run .cicd scripts from different environments (2.0.x Backport) -- ([#8968](https://github.com/EOSIO/eos/pull/8968)) Support Running ALL Tests in One Build - -## Documentation changes - -- ([#8825](https://github.com/EOSIO/eos/pull/8825)) remove leading $ chars from shell codeblocks in README.md - 2.0 -- ([#8835](https://github.com/EOSIO/eos/pull/8835)) Trace API documentation update - 2.0 -- ([#8843](https://github.com/EOSIO/eos/pull/8843)) Fix double titles for release 2.0.x -- ([#8845](https://github.com/EOSIO/eos/pull/8845)) [docs] trace api reference api correction - 2.0 -- ([#8918](https://github.com/EOSIO/eos/pull/8918)) Updates to manual build instructions - 2.0 - -## Thanks! - -Special thanks to the community contributors that submitted patches for this release: -- @cc32d9 -- @maoueh - - -*** -# 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](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices. - -## Stability bug fixes - -- ([#8684](https://github.com/EOSIO/eos/pull/8684)) Net plugin sync priority - 2.0 -- ([#8729](https://github.com/EOSIO/eos/pull/8729)) Get info priority - 2.0 - -## Changes - -### Trace API Plugin ([#8800](https://github.com/EOSIO/eos/pull/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](https://github.com/EOSIO/eos/pull/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](https://github.com/EOSIO/eos/pull/8651), [#8673](https://github.com/EOSIO/eos/pull/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](https://github.com/EOSIO/eos/pull/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](https://github.com/EOSIO/eos/pull/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](https://github.com/EOSIO/eos/pull/8654)) Fix format message. - 2.0 -- ([#8668](https://github.com/EOSIO/eos/pull/8668)) Add troubleshooting item for PREACTIVATE_FEATURE protocol -- ([#8689](https://github.com/EOSIO/eos/pull/8689)) incoming-defer-ratio description - 2.0 -- ([#8695](https://github.com/EOSIO/eos/pull/8695)) [2.0.x] Community PR tweaks. -- ([#8700](https://github.com/EOSIO/eos/pull/8700)) [2.0.x] Base images pipeline. -- ([#8714](https://github.com/EOSIO/eos/pull/8714)) [2.0.x] Actions rerun fixes. -- ([#8710](https://github.com/EOSIO/eos/pull/8710)) Add block producing explainer doc - 2.0 -- ([#8721](https://github.com/EOSIO/eos/pull/8721)) Fix multiple version protocol test intermittent failure - 2.0 -- ([#8727](https://github.com/EOSIO/eos/pull/8727)) Update the getting started link [merge 2] -- ([#8752](https://github.com/EOSIO/eos/pull/8752)) chain_api_plugin swagger file - 2.0 -- ([#8756](https://github.com/EOSIO/eos/pull/8756)) Fixes #8600 clean up nodeos options section -- ([#8757](https://github.com/EOSIO/eos/pull/8757)) link cleos net status reference doc with the peer network protocol doc -- ([#8590](https://github.com/EOSIO/eos/pull/8590)) db_size_api_plugin swagger file - 2.0 -- ([#8591](https://github.com/EOSIO/eos/pull/8591)) net_api_plugin swagger file - 2.0 -- ([#8592](https://github.com/EOSIO/eos/pull/8592)) producer_api_plugin swagger file - 2.0 -- ([#8593](https://github.com/EOSIO/eos/pull/8593)) test_control_api_plugin swagger file - 2.0 -- ([#8754](https://github.com/EOSIO/eos/pull/8754)) swagger configuration for docs - 2.0 -- ([#8762](https://github.com/EOSIO/eos/pull/8762)) Fix broken link in producer plugin docs - 2.0 -- ([#8763](https://github.com/EOSIO/eos/pull/8763)) Fix wasm-runtime option parameters - 2.0 -- ([#8765](https://github.com/EOSIO/eos/pull/8765)) Add Incoming-defer-ratio description - 2.0 -- ([#8767](https://github.com/EOSIO/eos/pull/8767)) Fix other blocks.log callout - 2.0 -- ([#8768](https://github.com/EOSIO/eos/pull/8768)) Improve create account description - 2.0 -- ([#8782](https://github.com/EOSIO/eos/pull/8782)) link to librt when using posix timers - 2.0 -- ([#8781](https://github.com/EOSIO/eos/pull/8781)) free unknown EOS VM OC codegen versions from the code cache - 2.0 -- ([#8794](https://github.com/EOSIO/eos/pull/8794)) disable EOS VM on non-x86 platforms - 2.0 -- ([#8803](https://github.com/EOSIO/eos/pull/8803)) Expire blacklisted scheduled transactions by LIB time - 2.0 -- ([#8811](https://github.com/EOSIO/eos/pull/8811)) Add initial Trace API plugin docs to nodeos - 2.0 -- ([#8814](https://github.com/EOSIO/eos/pull/8814)) Add RPC Trace API plugin reference to nodeos - 2.0 - - -*** -# EOSIO v2.0.3 Release Notes - -This release contains security, stability, and miscellaneous fixes. - -## Security bug fixes - -### Consolidated Security Fixes for 2.0.3 ([#8643](https://github.com/EOSIO/eos/pull/8643)) - -- Add deadline to base58 encoding. - -Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. - -## Stability bug fixes - -- ([#8617](https://github.com/EOSIO/eos/pull/8617)) Init net_plugin member variables - 2.0 - -## Other Changes - -- ([#8606](https://github.com/EOSIO/eos/pull/8606)) Skip sync from genesis and resume from state test on tagged builds -- ([#8612](https://github.com/EOSIO/eos/pull/8612)) [2.0.x] Actions for community PRs. -- ([#8633](https://github.com/EOSIO/eos/pull/8633)) remove brew's python@2 install - 2.0 -- ([#8636](https://github.com/EOSIO/eos/pull/8636)) bump script's macos version check to 10.14 - 2.0 - -## Deprecation notice reminder - -Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices. - - -*** -# EOSIO v2.0.2 Release Notes - -This release contains security, stability, and miscellaneous fixes. - -## Security bug fixes - -### Consolidated Security Fixes for 2.0.2 ([#8595](https://github.com/EOSIO/eos/pull/8595)) - -- Restrict allowed block signature types. - -Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. - -## Stability bug fixes - -- ([#8526](https://github.com/EOSIO/eos/pull/8526)) Handle socket close before async callback - 2.0 -- ([#8546](https://github.com/EOSIO/eos/pull/8546)) Net plugin dispatch - 2.0 -- ([#8552](https://github.com/EOSIO/eos/pull/8552)) Net plugin unlinkable blocks - 2.0 -- ([#8560](https://github.com/EOSIO/eos/pull/8560)) Backport of 8056 to 2.0 -- ([#8561](https://github.com/EOSIO/eos/pull/8561)) Net plugin post - 2.0 -- ([#8564](https://github.com/EOSIO/eos/pull/8564)) Delayed production time - 2.0 - -## Changes - -### Limit block production window ([#8571](https://github.com/EOSIO/eos/pull/8571), [#8578](https://github.com/EOSIO/eos/pull/8578)) - -The new options `cpu-effort-percent` and `last-block-cpu-effort-percent` now provide a mechanism to restrict the amount of time a producer is processing transactions for inclusion into a block. It also controls the time a producer will finalize/produce and transmit a block. Block construction now always begins at whole or half seconds for the next block. - -### Stricter signature parsing - -Versions of EOSIO prior to v2.0.x accept keys and signatures containing extra data at the end. In EOSIO v2.0.x, the Base58 string parser performs additional sanity checks on keys and signatures to make sure they do not contain more data than necessary. These stricter checks cause nodes to reject signatures generated by some transaction signing libraries; eosjs v20 is known to generate proper signatures. For more information see issue [#8534](https://github.com/EOSIO/eos/issues/8534). - -## Other Changes - -- ([#8555](https://github.com/EOSIO/eos/pull/8555)) Drop late check - 2.0 -- ([#8557](https://github.com/EOSIO/eos/pull/8557)) Read-only with drop-late-block - 2.0 -- ([#8568](https://github.com/EOSIO/eos/pull/8568)) Timestamp watermark slot - 2.0.x -- ([#8577](https://github.com/EOSIO/eos/pull/8577)) [release 2.0.x] Documentation patch 1 update -- ([#8583](https://github.com/EOSIO/eos/pull/8583)) P2p read only - 2.0 -- ([#8589](https://github.com/EOSIO/eos/pull/8589)) Producer plugin log - 2.0 - -## Deprecation notice reminder - -Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices. - - -*** -# EOSIO v2.0.1 Release Notes - -This release contains security, stability, and miscellaneous fixes. - -## Security bug fixes - -### Consolidated Security Fixes for 2.0.1 ([#8514](https://github.com/EOSIO/eos/pull/8514)) - -- Earlier block validation for greater security. -- Improved handling of deferred transactions during block production. -- Reduce net plugin logging and handshake size limits. - -Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. - -## Stability bug fixes - -- ([#8471](https://github.com/EOSIO/eos/pull/8471)) Remove new block id notify feature - 2.0 -- ([#8472](https://github.com/EOSIO/eos/pull/8472)) Report block header diff when digests do not match - 2.0 -- ([#8496](https://github.com/EOSIO/eos/pull/8496)) Drop late blocks - 2.0 -- ([#8510](https://github.com/EOSIO/eos/pull/8510)) http_plugin shutdown - 2.0 - -## Other Changes - -- ([#8430](https://github.com/EOSIO/eos/pull/8430)) Update fc to fix crash in logging -- ([#8435](https://github.com/EOSIO/eos/pull/8435)) [release/2.0.x] Update README.md and hotfix documentation links -- ([#8452](https://github.com/EOSIO/eos/pull/8452)) [2.0.x] [CI/CD] Boost will not install without SDKROOT -- ([#8457](https://github.com/EOSIO/eos/pull/8457)) [2.0.x] reverting fc -- ([#8458](https://github.com/EOSIO/eos/pull/8458)) [2.0.x] Pipeline file for testing the build script -- ([#8467](https://github.com/EOSIO/eos/pull/8467)) [2.0.x] Switching to using the EOSIO fork of anka-buildkite-plugin for security reasons -- ([#8515](https://github.com/EOSIO/eos/pull/8515)) [2.0.x] Don't trigger LRT a second time - -## Deprecation notice reminder - -Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices. - - -*** -# EOSIO v2.0.0 Release Notes - -This release contains security, stability, and miscellaneous fixes. - -This release also includes an EOSIO consensus upgrade. Please see the "Consensus Protocol Upgrades" section below for details. These protocol upgrades necessitate a change to the state database structure which requires a nodeos upgrade process that involves more steps than in the case of most minor release upgrades. For details on the upgrade process, see the "Upgrading from previous versions of EOSIO" section below. - -## Security bug fixes - -### Consolidated Security Fixes for 2.0.0 ([#8420](https://github.com/EOSIO/eos/pull/8420)) - -- Limit size of response to API requests -- EOS VM fixes - -Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. - -The above is in addition to the other security fixes that were introduced in prior release candidates for 2.0.0: - -- ([#8195](https://github.com/EOSIO/eos/pull/8195)) Consolidated Security Fixes for 2.0.0-rc2 -- ([#8344](https://github.com/EOSIO/eos/pull/8344)) Consolidated Security Fixes for 2.0.0-rc3 - -## Stability bug fixes - -- ([#8399](https://github.com/EOSIO/eos/pull/8399)) Net plugin sync check - 2.0 - -This above is in addition to the other stability fixes that were introduced in prior release candidates for 2.0.0: - -- ([#8084](https://github.com/EOSIO/eos/pull/8084)) Net plugin remove read delays - 2.0 -- ([#8099](https://github.com/EOSIO/eos/pull/8099)) net_plugin remove sync w/peer check - 2.0 -- ([#8120](https://github.com/EOSIO/eos/pull/8120)) Net plugin sync fix - 2.0 -- ([#8229](https://github.com/EOSIO/eos/pull/8229)) Net plugin sync -- ([#8285](https://github.com/EOSIO/eos/pull/8285)) Net plugin handshake -- ([#8298](https://github.com/EOSIO/eos/pull/8298)) net_plugin lib sync -- ([#8303](https://github.com/EOSIO/eos/pull/8303)) net_plugin boost asio error handling -- ([#8305](https://github.com/EOSIO/eos/pull/8305)) net_plugin thread protection peer logging variables -- ([#8311](https://github.com/EOSIO/eos/pull/8311)) Fix race in fc::message_buffer and move message_buffer_tests to fc. -- ([#8307](https://github.com/EOSIO/eos/pull/8307)) reset the new handler - -## Changes - -### EOS VM: New High Performance WASM Runtimes ([#7974](https://github.com/EOSIO/eos/pull/7974), [#7975](https://github.com/EOSIO/eos/pull/7975)) -Three new WASM runtimes are available in this release: EOS VM Interpreter, EOS VM Just In Time Compiler (JIT), and EOS VM Optimized Compiler. - -EOS VM Interpreter is a low latency interpreter and is included to enable future support for smart contract debuggers. EOS VM JIT is a low latency single pass compiler for x86_64 platforms. To use EOS VM Interpreter or EOS VM JIT, set the `wasm-runtime` to either `eos-vm` or `eos-vm-jit` respectively - -EOS VM Optimized Compiler is a high performance WASM _tier-up_ runtime available on the x86_64 Linux platform that works in conjunction with the configured baseline runtime (such as EOS VM JIT). When enabled via `eos-vm-oc-enable`, actions on a contract are initially dispatched to the baseline runtime while EOS VM Optimized Compiler does an optimized compilation in the background. Up to the configured `eos-vm-oc-compile-threads` compilations can be ongoing simultaneously. Once the background compilation is complete, actions on that contract will then be run with the optimized compiled code from then on. This optimized compile can take a handful of seconds but since it is performed in the background it does not cause delays. Optimized compilations are also saved to a new data file (`code_cache.bin` in the data directory) so when restarting nodeos there is no need to recompile previously compiled contracts. - -None of the EOS VM runtimes require a replay nor activation of any consensus protocol upgrades. They can be switched between (including enabling and disabling EOS VM Optimized Compiler) at will. - -At this time, **block producers should consider all running EOS VM JIT as the WASM runtime on their block producing nodes**. Other non-producing nodes should feel free to use the faster EOS VM Optimized Compiler runtime instead. - -### Consensus Protocol Upgrades - -Refer to this section on the [Upgrade Guide: Consensus Protocol Upgrades](../20_upgrade-guide/index.md#consensus-protocol-upgrades). - -### Multi-threaded net_plugin -We have added multi-threading support to net_plugin. Almost all processing in the net_plugin (block propagation, transaction processing, block/transaction packing/unpacking etc.) are now handled by separate threads distinct from the main application thread. This significantly improves transaction processing and block processing performance on multi-producer EOSIO networks. The `net-threads` arg (defaults to 2) controls the number of worker threads in net_plugin thread pool.([#6845](https://github.com/EOSIO/eos/pull/6845), [#7598](https://github.com/EOSIO/eos/pull/7598), [#7392](https://github.com/EOSIO/eos/pull/7392), [#7786](https://github.com/EOSIO/eos/pull/7786) and related optimizations are available in: [#7686](https://github.com/EOSIO/eos/pull/7686), [#7785](https://github.com/EOSIO/eos/pull/7785), [#7721](https://github.com/EOSIO/eos/pull/7721), [#7825](https://github.com/EOSIO/eos/pull/7825), and [#7756](https://github.com/EOSIO/eos/pull/7756)). - -### Chain API Enhancements ([#7530](https://github.com/EOSIO/eos/pull/7530)) -The `uint128` and `int128` ABI types are now represented as decimal numbers rather than the old little-endian hexadecimal representation. This means that the JSON representation of table rows returned by the `get_table_rows` RPC will represent fields using this type differently than in prior versions. It also means that the `lower_bound` and `upper_bound` fields for `get_table_rows` RPC requests that search using a `uint128` secondary index will need to use the new decimal representation. This change makes the ABI serialization for `uint128` and `int128` ABI types consistent with [eosjs](https://github.com/EOSIO/eosjs) and [abieos](http://github.com/EOSIO/abieos). - -The `get_table_rows` RPC when used with secondary index types like `sha256`, `i256`, and `ripemd160` had bugs that scrambled the bytes in the `lower_bound` and `upper_bound` input field. This release now fixes these issues allowing clients to properly search for tables rows using these index types. - -A new field `next_key` has been added to the response of the `get_table_rows` RPC which represents the key of the next row (in the same format as `lower_bound` and `upper_bound`) that was not able to be returned in the response due to timeout limitations or the user-specified limit. The value of the `next_key` can be used as the `lower_bound` input for subsequent requests in order to retrieve a range of a large number of rows that could not be retrieved within just a single request. - -## Upgrading from previous versions of EOSIO - -Refer to this section on the [Upgrade Guide: Upgrading from previous versions of EOSIO](../20_upgrade-guide/index.md#upgrading-from-previous-versions-of-eosio). - -## Deprecation and Removal Notices - -### WAVM removed ([#8407](https://github.com/EOSIO/eos/pull/8407)) - -The WAVM WebAssembly runtime was deprecated several months ago with the release of [EOSIO v2.0.0-rc1](https://github.com/EOSIO/eos/releases/tag/v2.0.0-rc1) which introduced EOS VM. Now with the release of a stable version 2.0.0, EOS VM (JIT or Optimized Compiler variants) can be used instead of WAVM. So WAVM has now been removed as a WASM runtime option from nodeos. - -### Deprecation notice reminder - -Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices. - -## Other Changes - -- ([#7247](https://github.com/EOSIO/eos/pull/7247)) Change default log level from debug to info. - develop -- ([#7238](https://github.com/EOSIO/eos/pull/7238)) Remove unused cpack bits; these are not being used -- ([#7248](https://github.com/EOSIO/eos/pull/7248)) Pass env to build script installs -- ([#6913](https://github.com/EOSIO/eos/pull/6913)) Block log util#6884 -- ([#7249](https://github.com/EOSIO/eos/pull/7249)) Http configurable logging -- ([#7255](https://github.com/EOSIO/eos/pull/7255)) Move Test Metrics Code to Agent -- ([#7217](https://github.com/EOSIO/eos/pull/7217)) Created Universal Pipeline Configuration File -- ([#7264](https://github.com/EOSIO/eos/pull/7264)) use protocol-features-sync-nodes branch for LRT pipeline - develop -- ([#7207](https://github.com/EOSIO/eos/pull/7207)) Optimize mongodb plugin -- ([#7276](https://github.com/EOSIO/eos/pull/7276)) correct net_plugin's win32 check -- ([#7279](https://github.com/EOSIO/eos/pull/7279)) build unittests in c++17, not c++14 -- ([#7282](https://github.com/EOSIO/eos/pull/7282)) Fix cleos REX help - develop -- ([#7284](https://github.com/EOSIO/eos/pull/7284)) remove boost asio string_view workaround -- ([#7286](https://github.com/EOSIO/eos/pull/7286)) chainbase uniqueness violation fixes -- ([#7287](https://github.com/EOSIO/eos/pull/7287)) restrict range of error codes that contracts are allowed to emit -- ([#7278](https://github.com/EOSIO/eos/pull/7278)) simplify openssl setup in cmakelists -- ([#7288](https://github.com/EOSIO/eos/pull/7288)) Changes for Boost 1_70_0 -- ([#7285](https://github.com/EOSIO/eos/pull/7285)) Use of Mac Anka Fleet instead of iMac fleet -- ([#7293](https://github.com/EOSIO/eos/pull/7293)) Update EosioTester.cmake.in (develop) -- ([#7290](https://github.com/EOSIO/eos/pull/7290)) Block log util test -- ([#6845](https://github.com/EOSIO/eos/pull/6845)) Net plugin multithread -- ([#7295](https://github.com/EOSIO/eos/pull/7295)) Modify the pipeline control file for triggered builds -- ([#7305](https://github.com/EOSIO/eos/pull/7305)) Eliminating trigger to allow for community PR jobs to run again -- ([#7306](https://github.com/EOSIO/eos/pull/7306)) when unable to find mongo driver stop cmake -- ([#7309](https://github.com/EOSIO/eos/pull/7309)) add debug_mode to state history plugin - develop -- ([#7310](https://github.com/EOSIO/eos/pull/7310)) Switched to git checkout of commit + supporting forked repo -- ([#7291](https://github.com/EOSIO/eos/pull/7291)) add DB guard check for nodeos_under_min_avail_ram.py -- ([#7240](https://github.com/EOSIO/eos/pull/7240)) add signal tests -- ([#7315](https://github.com/EOSIO/eos/pull/7315)) Add REX balance info to cleos get account command -- ([#7304](https://github.com/EOSIO/eos/pull/7304)) transaction_metadata thread safety -- ([#7321](https://github.com/EOSIO/eos/pull/7321)) Only call init if system contract is loaded -- ([#7275](https://github.com/EOSIO/eos/pull/7275)) remove win32 from CMakeLists.txt -- ([#7322](https://github.com/EOSIO/eos/pull/7322)) Fix under min avail ram test -- ([#7327](https://github.com/EOSIO/eos/pull/7327)) fix block serialization order in fork_database::close - develop -- ([#7331](https://github.com/EOSIO/eos/pull/7331)) Use debug level logging for --verbose -- ([#7325](https://github.com/EOSIO/eos/pull/7325)) Look in both lib and lib64 for CMake modules when building EOSIO Tester -- ([#7337](https://github.com/EOSIO/eos/pull/7337)) correct signed mismatch warning in http_plugin -- ([#7348](https://github.com/EOSIO/eos/pull/7348)) Anka develop fix -- ([#7320](https://github.com/EOSIO/eos/pull/7320)) Add test for various chainbase objects which contain fields that require dynamic allocation -- ([#7350](https://github.com/EOSIO/eos/pull/7350)) correct signed mismatch warning in chain controller -- ([#7356](https://github.com/EOSIO/eos/pull/7356)) Fixes for Boost 1.70 to compile with our current CMake -- ([#7359](https://github.com/EOSIO/eos/pull/7359)) update to use boost 1.70 -- ([#7341](https://github.com/EOSIO/eos/pull/7341)) Add Version Check for Package Builder -- ([#7367](https://github.com/EOSIO/eos/pull/7367)) Fix exception # -- ([#7342](https://github.com/EOSIO/eos/pull/7342)) Update to appbase max priority on main thread -- ([#7336](https://github.com/EOSIO/eos/pull/7336)) (softfloat sync) clean up strict-aliasing rules warnings -- ([#7371](https://github.com/EOSIO/eos/pull/7371)) Adds configuration for replay test pipeline -- ([#7370](https://github.com/EOSIO/eos/pull/7370)) Fix `-b` flag for `cleos get table` subcommand -- ([#7369](https://github.com/EOSIO/eos/pull/7369)) Add `boost/asio/io_context.hpp` header to `transaction_metadata.hpp` for branch `develop` -- ([#7385](https://github.com/EOSIO/eos/pull/7385)) Ship: port #7383 and #7384 to develop -- ([#7377](https://github.com/EOSIO/eos/pull/7377)) Allow aliases of variants in ABI -- ([#7316](https://github.com/EOSIO/eos/pull/7316)) Explicit name -- ([#7389](https://github.com/EOSIO/eos/pull/7389)) Fix develop merge -- ([#7379](https://github.com/EOSIO/eos/pull/7379)) transaction deadline cleanup -- ([#7380](https://github.com/EOSIO/eos/pull/7380)) Producer incoming-transaction-queue-size-mb -- ([#7391](https://github.com/EOSIO/eos/pull/7391)) Allow for EOS clone to be a submodule -- ([#7390](https://github.com/EOSIO/eos/pull/7390)) port db_modes_test to python -- ([#7399](https://github.com/EOSIO/eos/pull/7399)) throw error if trying to create non R1 key on SE or YubiHSM wallet -- ([#7394](https://github.com/EOSIO/eos/pull/7394)) (fc sync) static_variant improvements & fix certificate trust when trust settings is empty -- ([#7405](https://github.com/EOSIO/eos/pull/7405)) Centralize EOSIO Pipeline -- ([#7401](https://github.com/EOSIO/eos/pull/7401)) state database versioning -- ([#7392](https://github.com/EOSIO/eos/pull/7392)) Trx blk connections -- ([#7433](https://github.com/EOSIO/eos/pull/7433)) use imported targets for boost & cleanup fc/appbase/chainbase standalone usage -- ([#7434](https://github.com/EOSIO/eos/pull/7434)) (chainbase) don’t keep file mapping active when in heap/locked mode -- ([#7432](https://github.com/EOSIO/eos/pull/7432)) No need to start keosd for cleos command which doesn't need keosd -- ([#7430](https://github.com/EOSIO/eos/pull/7430)) Add option for cleos sign subcommand to ask keosd for signing -- ([#7425](https://github.com/EOSIO/eos/pull/7425)) txn json to file -- ([#7440](https://github.com/EOSIO/eos/pull/7440)) Fix #7436 SIGSEGV - develop -- ([#7461](https://github.com/EOSIO/eos/pull/7461)) Name txn_test_gen threads -- ([#7442](https://github.com/EOSIO/eos/pull/7442)) Enhance cleos error message when parsing JSON argument -- ([#7451](https://github.com/EOSIO/eos/pull/7451)) set initial costs for expensive parallel unit tests -- ([#7366](https://github.com/EOSIO/eos/pull/7366)) BATS bash tests for build scripts + various other improvements and fixes -- ([#7467](https://github.com/EOSIO/eos/pull/7467)) Pipeline Configuration File Update -- ([#7476](https://github.com/EOSIO/eos/pull/7476)) Various improvements from pull/7458 -- ([#7488](https://github.com/EOSIO/eos/pull/7488)) Various BATS fixes to fix CI/CD -- ([#7489](https://github.com/EOSIO/eos/pull/7489)) Fix Incorrectly Resolved and Untested Merge Conflicts in Pipeline Configuration File -- ([#7474](https://github.com/EOSIO/eos/pull/7474)) fix copy_bin() for win32 builds -- ([#7478](https://github.com/EOSIO/eos/pull/7478)) remove stray SIGUSR1 -- ([#7475](https://github.com/EOSIO/eos/pull/7475)) guard unix socket support in http_plugin depending on platform support -- ([#7492](https://github.com/EOSIO/eos/pull/7492)) Enabled helpers for unpinned builds. -- ([#7482](https://github.com/EOSIO/eos/pull/7482)) Let delete-all-blocks option to only remove the contents instead of the directory itself -- ([#7502](https://github.com/EOSIO/eos/pull/7502)) [develop] Versioned images (prep for hashing) -- ([#7507](https://github.com/EOSIO/eos/pull/7507)) use create_directories in initialize_protocol_features - develop -- ([#7484](https://github.com/EOSIO/eos/pull/7484)) return zero exit status for nodeos version, help, fixed reversible, and extracted genesis -- ([#7468](https://github.com/EOSIO/eos/pull/7468)) Versioning library -- ([#7486](https://github.com/EOSIO/eos/pull/7486)) [develop] Ensure we're in repo root -- ([#7515](https://github.com/EOSIO/eos/pull/7515)) Custom path support for eosio installation. -- ([#7516](https://github.com/EOSIO/eos/pull/7516)) on supported platforms build with system clang by default -- ([#7519](https://github.com/EOSIO/eos/pull/7519)) [develop] Removed lrt from pipeline.jsonc -- ([#7525](https://github.com/EOSIO/eos/pull/7525)) [develop] Readlink quick fix and BATS test fixes -- ([#7532](https://github.com/EOSIO/eos/pull/7532)) [develop] BASE IMAGE Fixes -- ([#7535](https://github.com/EOSIO/eos/pull/7535)) Add -j option to print JSON format for cleos get currency balance. -- ([#7537](https://github.com/EOSIO/eos/pull/7537)) connection via listen needs to start in connecting mode -- ([#7497](https://github.com/EOSIO/eos/pull/7497)) properly add single quotes for parameter with spaces in logs output -- ([#7544](https://github.com/EOSIO/eos/pull/7544)) restore usage of devtoolset-8 on centos7 -- ([#7547](https://github.com/EOSIO/eos/pull/7547)) Sighup logging -- ([#7421](https://github.com/EOSIO/eos/pull/7421)) WebAuthn key and signature support -- ([#7572](https://github.com/EOSIO/eos/pull/7572)) [develop] Don't create mongo folders unless ENABLE_MONGO is true -- ([#7576](https://github.com/EOSIO/eos/pull/7576)) [develop] Better found/not found messages for clarity -- ([#7545](https://github.com/EOSIO/eos/pull/7545)) add nodiscard attribute to tester's push_action -- ([#7581](https://github.com/EOSIO/eos/pull/7581)) Update to fc with logger fix -- ([#7558](https://github.com/EOSIO/eos/pull/7558)) [develop] Ability to set *_DIR on CLI -- ([#7553](https://github.com/EOSIO/eos/pull/7553)) [develop] CMAKE version check before dependencies are installed -- ([#7584](https://github.com/EOSIO/eos/pull/7584)) fix hash<>::result_type deprecation spam -- ([#7588](https://github.com/EOSIO/eos/pull/7588)) [develop] Various BATS test fixes -- ([#7578](https://github.com/EOSIO/eos/pull/7578)) [develop] -i support for relative paths -- ([#7449](https://github.com/EOSIO/eos/pull/7449)) add accurate checktime timer for macOS -- ([#7591](https://github.com/EOSIO/eos/pull/7591)) [develop] SUDO_COMMAND -> NEW_SUDO_COMMAND (base fixed) -- ([#7594](https://github.com/EOSIO/eos/pull/7594)) [develop] Install location fix -- ([#7586](https://github.com/EOSIO/eos/pull/7586)) Modify transaction_ack to process bcast_transaction and rejected_transaction correctly -- ([#7585](https://github.com/EOSIO/eos/pull/7585)) Enhance cleos to enable new RPC send_transaction -- ([#7599](https://github.com/EOSIO/eos/pull/7599)) Use updated sync nodes for sync tests -- ([#7608](https://github.com/EOSIO/eos/pull/7608)) indicate in brew bottle mojave is required -- ([#7615](https://github.com/EOSIO/eos/pull/7615)) Change hardcoded currency symbol in testnet.template into a variable -- ([#7610](https://github.com/EOSIO/eos/pull/7610)) use explicit billing for unapplied and deferred transactions in tester - develop -- ([#7621](https://github.com/EOSIO/eos/pull/7621)) Call resolve on connection strand -- ([#7623](https://github.com/EOSIO/eos/pull/7623)) additional wasm unittests around max depth -- ([#7607](https://github.com/EOSIO/eos/pull/7607)) Improve nodeos make-index speeds -- ([#7598](https://github.com/EOSIO/eos/pull/7598)) Net plugin block id notification -- ([#7624](https://github.com/EOSIO/eos/pull/7624)) bios-boot-tutorial.py: bugfix, SYS hardcoded instead of using command… -- ([#7632](https://github.com/EOSIO/eos/pull/7632)) [develop] issues/7627: Install script missing ! -- ([#7634](https://github.com/EOSIO/eos/pull/7634)) fix fc::temp_directory usage in tester -- ([#7642](https://github.com/EOSIO/eos/pull/7642)) remove stale warning about dirty metadata -- ([#7640](https://github.com/EOSIO/eos/pull/7640)) fix win32 build of eosio-blocklog -- ([#7643](https://github.com/EOSIO/eos/pull/7643)) remove unused dlfcn.h include; troublesome for win32 -- ([#7645](https://github.com/EOSIO/eos/pull/7645)) add eosio-blocklog to base install component -- ([#7651](https://github.com/EOSIO/eos/pull/7651)) Port #7619 to develop -- ([#7652](https://github.com/EOSIO/eos/pull/7652)) remove raise() in keosd in favor of simple appbase quit (de-posix it) -- ([#7453](https://github.com/EOSIO/eos/pull/7453)) Refactor unapplied transaction queue -- ([#7657](https://github.com/EOSIO/eos/pull/7657)) (chainbase sync) print name of DB causing failure condition & win32 fixes -- ([#7663](https://github.com/EOSIO/eos/pull/7663)) Fix path error in cleos set code/abi -- ([#7633](https://github.com/EOSIO/eos/pull/7633)) Small optimization to move more trx processing off application thread -- ([#7662](https://github.com/EOSIO/eos/pull/7662)) fix fork resolve in special case -- ([#7667](https://github.com/EOSIO/eos/pull/7667)) fix 7600 double confirm after changing sign key -- ([#7625](https://github.com/EOSIO/eos/pull/7625)) Fix flaky tests - mainly net_plugin fixes -- ([#7672](https://github.com/EOSIO/eos/pull/7672)) Fix memory leak -- ([#7676](https://github.com/EOSIO/eos/pull/7676)) Remove unused code -- ([#7677](https://github.com/EOSIO/eos/pull/7677)) Commas go outside the quotes... -- ([#7675](https://github.com/EOSIO/eos/pull/7675)) wasm unit test with an imported function as start function -- ([#7678](https://github.com/EOSIO/eos/pull/7678)) Issue 3516 fix -- ([#7404](https://github.com/EOSIO/eos/pull/7404)) wtmsig block production -- ([#7686](https://github.com/EOSIO/eos/pull/7686)) Unapplied transaction queue performance -- ([#7685](https://github.com/EOSIO/eos/pull/7685)) Integration Test descriptions and timeout fix -- ([#7691](https://github.com/EOSIO/eos/pull/7691)) Fix nodeos 1.8.x to > 1.7.x peering issue (allowed-connection not equal to "any") -- ([#7250](https://github.com/EOSIO/eos/pull/7250)) wabt: reduce redundant memset -- ([#7702](https://github.com/EOSIO/eos/pull/7702)) fix producer_plugin watermark tracking - develop -- ([#7477](https://github.com/EOSIO/eos/pull/7477)) Fix abi_serializer to encode optional non-built_in types -- ([#7703](https://github.com/EOSIO/eos/pull/7703)) return flat_multimap from transaction::validate_and_extract_extensions -- ([#7720](https://github.com/EOSIO/eos/pull/7720)) Fix bug to make sed -i work properly on Mac -- ([#7716](https://github.com/EOSIO/eos/pull/7716)) [TRAVIS POC] develop Support passing in JOBS for docker/kube multi-tenancy -- ([#7707](https://github.com/EOSIO/eos/pull/7707)) add softfloat only injection mode -- ([#7725](https://github.com/EOSIO/eos/pull/7725)) Fix increment in test -- ([#7729](https://github.com/EOSIO/eos/pull/7729)) Fix db_modes_test -- ([#7734](https://github.com/EOSIO/eos/pull/7734)) Fix db exhaustion -- ([#7487](https://github.com/EOSIO/eos/pull/7487)) Enable extended_asset to be encoded from array -- ([#7736](https://github.com/EOSIO/eos/pull/7736)) unit test ensuring that OOB table init allowed on set code; fails on action -- ([#7744](https://github.com/EOSIO/eos/pull/7744)) (appbase) update to get non-option fix & unique_ptr tweak -- ([#7746](https://github.com/EOSIO/eos/pull/7746)) (chainbase sync) fix build with boost 1.71 -- ([#7721](https://github.com/EOSIO/eos/pull/7721)) Improve signature recovery -- ([#7757](https://github.com/EOSIO/eos/pull/7757)) remove stale license headers -- ([#7756](https://github.com/EOSIO/eos/pull/7756)) block_log performance improvement, and misc. -- ([#7654](https://github.com/EOSIO/eos/pull/7654)) exclusively use timer for checktime -- ([#7763](https://github.com/EOSIO/eos/pull/7763)) Use fc::cfile instead of std::fstream for state_history -- ([#7770](https://github.com/EOSIO/eos/pull/7770)) Net plugin sync fix -- ([#7717](https://github.com/EOSIO/eos/pull/7717)) Support for v2 snapshots with pending producer schedules -- ([#7795](https://github.com/EOSIO/eos/pull/7795)) Hardcode initial eosio ABI: #7794 -- ([#7792](https://github.com/EOSIO/eos/pull/7792)) Restore default logging if logging.json is removed when SIGHUP. -- ([#7791](https://github.com/EOSIO/eos/pull/7791)) Producer plugin -- ([#7786](https://github.com/EOSIO/eos/pull/7786)) Remove redundant work from net plugin -- ([#7785](https://github.com/EOSIO/eos/pull/7785)) Optimize block log usage -- ([#7812](https://github.com/EOSIO/eos/pull/7812)) Add IMPORTANT file and update README - develop -- ([#7820](https://github.com/EOSIO/eos/pull/7820)) rename IMPORTANT to IMPORTANT.md - develop -- ([#7809](https://github.com/EOSIO/eos/pull/7809)) Correct cpu_usage calculation when more than one signature -- ([#7803](https://github.com/EOSIO/eos/pull/7803)) callback support for checktime timer expiry -- ([#7838](https://github.com/EOSIO/eos/pull/7838)) Bandwidth - develop -- ([#7845](https://github.com/EOSIO/eos/pull/7845)) Deprecate network version match - develop -- ([#7700](https://github.com/EOSIO/eos/pull/7700)) [develop] Travis CI + Buildkite 3.0 -- ([#7825](https://github.com/EOSIO/eos/pull/7825)) apply_block optimization -- ([#7849](https://github.com/EOSIO/eos/pull/7849)) Increase Contracts Builder Timeout + Fix $SKIP_MAC -- ([#7854](https://github.com/EOSIO/eos/pull/7854)) Net plugin sync -- ([#7860](https://github.com/EOSIO/eos/pull/7860)) [develop] Ensure release flag is added to all builds. -- ([#7873](https://github.com/EOSIO/eos/pull/7873)) [develop] Mac Builder Boost Fix -- ([#7868](https://github.com/EOSIO/eos/pull/7868)) cleos get actions -- ([#7774](https://github.com/EOSIO/eos/pull/7774)) update WAVM to be compatible with LLVM 7 through 9 -- ([#7864](https://github.com/EOSIO/eos/pull/7864)) Add output of build info on nodeos startup -- ([#7881](https://github.com/EOSIO/eos/pull/7881)) [develop] Ensure Artfacts Upload on Failed Tests -- ([#7886](https://github.com/EOSIO/eos/pull/7886)) promote read-only disablement log from net_plugin to warn level -- ([#7887](https://github.com/EOSIO/eos/pull/7887)) print unix socket path when there is an error starting unix socket server -- ([#7889](https://github.com/EOSIO/eos/pull/7889)) Update docker builder tag -- ([#7891](https://github.com/EOSIO/eos/pull/7891)) Fix exit crash - develop -- ([#7877](https://github.com/EOSIO/eos/pull/7877)) Create Release Build Test -- ([#7883](https://github.com/EOSIO/eos/pull/7883)) Add Support for eosio-test-stability Pipeline -- ([#7903](https://github.com/EOSIO/eos/pull/7903)) adds support for builder priority queues -- ([#7853](https://github.com/EOSIO/eos/pull/7853)) change behavior of recover_key to better support variable length keys -- ([#7901](https://github.com/EOSIO/eos/pull/7901)) [develop] Add Trigger for LRTs and Multiversion Tests Post PR -- ([#7914](https://github.com/EOSIO/eos/pull/7914)) [Develop] Forked PR fix -- ([#7923](https://github.com/EOSIO/eos/pull/7923)) return error when attempting to remove key from YubiHSM wallet -- ([#7910](https://github.com/EOSIO/eos/pull/7910)) [Develop] Updated anka plugin, added failover for registries, and added sleep fix for git clone/networking bug -- ([#7926](https://github.com/EOSIO/eos/pull/7926)) Better error check in test -- ([#7919](https://github.com/EOSIO/eos/pull/7919)) decouple wavm runtime from being required & initial support for platform specific wasm runtimes -- ([#7927](https://github.com/EOSIO/eos/pull/7927)) Fix Release Build Type for macOS on Travis CI -- ([#7931](https://github.com/EOSIO/eos/pull/7931)) Fix intermittent crash on exit when port already in use - develop -- ([#7930](https://github.com/EOSIO/eos/pull/7930)) use -fdiagnostics-color=always even for clang -- ([#7933](https://github.com/EOSIO/eos/pull/7933)) [Develop] Support all BK/Travis cases in Submodule Regression Script -- ([#7943](https://github.com/EOSIO/eos/pull/7943)) Change eosio-launcher enable-gelf-logging argument default to false. -- ([#7946](https://github.com/EOSIO/eos/pull/7946)) Forked chain test error statement - develop -- ([#7948](https://github.com/EOSIO/eos/pull/7948)) net_plugin correctly handle unknown_block_exception - develop -- ([#7954](https://github.com/EOSIO/eos/pull/7954)) remove bad semicolon (in unused but compiled code) -- ([#7952](https://github.com/EOSIO/eos/pull/7952)) Unable to Create Block Log Index #7865 -- ([#7953](https://github.com/EOSIO/eos/pull/7953)) Refactor producer plugin start_block - develop -- ([#7841](https://github.com/EOSIO/eos/pull/7841)) 7646 chain id in blog -- ([#7958](https://github.com/EOSIO/eos/pull/7958)) [develop] Fix Mac builds on Travis -- ([#7962](https://github.com/EOSIO/eos/pull/7962)) set immutable chain_id during construction of controller -- ([#7957](https://github.com/EOSIO/eos/pull/7957)) Upgrade to Boost 1.71.0 -- ([#7971](https://github.com/EOSIO/eos/pull/7971)) Net plugin unexpected block - develop -- ([#7967](https://github.com/EOSIO/eos/pull/7967)) support unix socket HTTP server for nodeos -- ([#7947](https://github.com/EOSIO/eos/pull/7947)) Function body code size test -- ([#7955](https://github.com/EOSIO/eos/pull/7955)) EOSIO WASM Spec tests -- ([#7978](https://github.com/EOSIO/eos/pull/7978)) use the LLVM 7 library provided by SCL on CentOS7 -- ([#7983](https://github.com/EOSIO/eos/pull/7983)) port consolidated security fixes for 1.8.4 to develop; add unit tests associated with consolidated security fixes for 1.8.1 -- ([#7986](https://github.com/EOSIO/eos/pull/7986)) Remove unnecessary comment -- ([#7985](https://github.com/EOSIO/eos/pull/7985)) more bug fixes with chain_id in state changes -- ([#7974](https://github.com/EOSIO/eos/pull/7974)) Experimental/wb2 jit -- ([#7989](https://github.com/EOSIO/eos/pull/7989)) Correct designator order for field of get_table_rows_params -- ([#7992](https://github.com/EOSIO/eos/pull/7992)) move wasm_allocator from wasm_interface to controller -- ([#7995](https://github.com/EOSIO/eos/pull/7995)) new timeout to handle when two jobs on the same host are maxing their… -- ([#7993](https://github.com/EOSIO/eos/pull/7993)) update eos-vm to latest develop, fix issues with instantiation limit … -- ([#7991](https://github.com/EOSIO/eos/pull/7991)) missing block log chain id unit tests -- ([#8001](https://github.com/EOSIO/eos/pull/8001)) Net plugin trx progress - develop -- ([#8003](https://github.com/EOSIO/eos/pull/8003)) update eos-vm ref -- ([#7988](https://github.com/EOSIO/eos/pull/7988)) Net plugin version match -- ([#8004](https://github.com/EOSIO/eos/pull/8004)) bump version -- ([#7975](https://github.com/EOSIO/eos/pull/7975)) EOS-VM Optimized Compiler -- ([#8007](https://github.com/EOSIO/eos/pull/8007)) disallow WAVM with EOS-VM OC -- ([#8010](https://github.com/EOSIO/eos/pull/8010)) Change log level of index write -- ([#8009](https://github.com/EOSIO/eos/pull/8009)) pending incoming order on subjective failure -- ([#8013](https://github.com/EOSIO/eos/pull/8013)) ensure eos-vm-oc headers get installed -- ([#8008](https://github.com/EOSIO/eos/pull/8008)) Increase stability of nodeos_under_min_avail_ram.py - develop -- ([#8015](https://github.com/EOSIO/eos/pull/8015)) two fixes for eosio tester cmake modules -- ([#8019](https://github.com/EOSIO/eos/pull/8019)) [Develop] Change submodule script to see stderr for git commands -- ([#8014](https://github.com/EOSIO/eos/pull/8014)) Retain persisted trx until expired on speculative nodes -- ([#8024](https://github.com/EOSIO/eos/pull/8024)) Add optional ability to disable WASM Spec Tests -- ([#8023](https://github.com/EOSIO/eos/pull/8023)) Make subjective_cpu_leeway a config option -- ([#8025](https://github.com/EOSIO/eos/pull/8025)) Fix build script LLVM symlinking -- ([#8026](https://github.com/EOSIO/eos/pull/8026)) update EOS VM Optimized Compiler naming convention -- ([#8012](https://github.com/EOSIO/eos/pull/8012)) 7939 trim block log v3 support -- ([#8029](https://github.com/EOSIO/eos/pull/8029)) update eos-vm ref and install eos-vm license -- ([#8033](https://github.com/EOSIO/eos/pull/8033)) net_plugin better error for unknown block -- ([#8034](https://github.com/EOSIO/eos/pull/8034)) EOS VM OC license updates -- ([#8042](https://github.com/EOSIO/eos/pull/8042)) [2.0.x] dockerhub | eosio/producer -> eosio/ci -- ([#8050](https://github.com/EOSIO/eos/pull/8050)) Add greylist limit - v2.0.x -- ([#8060](https://github.com/EOSIO/eos/pull/8060)) #8054: fix commas in ship abi -- ([#8072](https://github.com/EOSIO/eos/pull/8072)) nodeos & keosd version reporting - 2.0 -- ([#8071](https://github.com/EOSIO/eos/pull/8071)) Update cleos to support new producer schedule - 2.0 -- ([#8070](https://github.com/EOSIO/eos/pull/8070)) don't rebuild llvm unnecessarily during pinned builds - 2.0 -- ([#8074](https://github.com/EOSIO/eos/pull/8074)) [2.0.x] Upgrade mac anka template to 10.14.6 -- ([#8076](https://github.com/EOSIO/eos/pull/8076)) Handle cases where version_* not specified in CMakeLists.txt - 2.0 -- ([#8088](https://github.com/EOSIO/eos/pull/8088)) [2.0.x] Linux build fleet update -- ([#8091](https://github.com/EOSIO/eos/pull/8091)) report block extensions_type contents in RPC and eosio-blocklog tool - 2.0 -- ([#8105](https://github.com/EOSIO/eos/pull/8105)) Modify --print-default-config to exit with success - 2.0 -- ([#8113](https://github.com/EOSIO/eos/pull/8113)) [2.0.x] WASM Spec Test Step in CI -- ([#8114](https://github.com/EOSIO/eos/pull/8114)) [2.0.x] Mac OSX steps need a min of 1 hour -- ([#8127](https://github.com/EOSIO/eos/pull/8127)) [2.0.x] Move the ensure step into the build step, eliminating the need for templaters -- ([#8144](https://github.com/EOSIO/eos/pull/8144)) fix pinned builds on fresh macOS install - 2.0 -- ([#8149](https://github.com/EOSIO/eos/pull/8149)) [2.0.x] CI platform directories -- ([#8155](https://github.com/EOSIO/eos/pull/8155)) Post State history callback as medium priority - 2.0 -- ([#8173](https://github.com/EOSIO/eos/pull/8173)) ensure GMP is always dynamically linked - 2.0 -- ([#8175](https://github.com/EOSIO/eos/pull/8175)) [2.0.x] Unpinned and WASM test fixes -- ([#8168](https://github.com/EOSIO/eos/pull/8168)) add harden flags to cicd & pinned builds - 2.0 -- ([#8180](https://github.com/EOSIO/eos/pull/8180)) [2.0.x] 10 second sleep to address heavy usage wait-network bug in Anka -- ([#8192](https://github.com/EOSIO/eos/pull/8192)) Reduce logging - 2.0 -- ([#8367](https://github.com/EOSIO/eos/pull/8367)) Add Sync from Genesis Test -- ([#8363](https://github.com/EOSIO/eos/pull/8363)) Fix linking OpenSSL (branch `release/2.0.x`) -- ([#8383](https://github.com/EOSIO/eos/pull/8383)) Escape BUILDKITE_COMMIT to generate tag properly -- ([#8385](https://github.com/EOSIO/eos/pull/8385)) Propagate exceptions out push_block - 2.0 -- ([#8391](https://github.com/EOSIO/eos/pull/8391)) Add eosio-resume-from-state Test -- ([#8393](https://github.com/EOSIO/eos/pull/8393)) Make multiversion protocol test conditional. -- ([#8402](https://github.com/EOSIO/eos/pull/8402)) fix EOS VM OC monitor thread name - 2.0 -- ([#8406](https://github.com/EOSIO/eos/pull/8406)) [2.0.x] Modified Amazon and Centos to use yum install ccache -- ([#8414](https://github.com/EOSIO/eos/pull/8414)) Add better logging of exceptions in emit - 2.0 -- ([#8328](https://github.com/EOSIO/eos/pull/8328)) Fix bios boot python script due to 2.0.x changes -- ([#8293](https://github.com/EOSIO/eos/pull/8293)) Add nodeos/cleos/keosd docs from develop, update README -- ([#8425](https://github.com/EOSIO/eos/pull/8425)) fix discovery of openssl in tester cmake when OPENSSL_ROOT_DIR not set - 2.0 - -## Thanks! - -Special thanks to the community contributors that submitted patches for this release: -- @UMU618 -- @conr2d -- @YordanPavlov -- @baegjae -- @olexiybuyanskyy -- @spartucus -- @rdewilder From d3e6aed712639090a1785532c51a592305c73eb3 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 25 Feb 2021 17:06:36 -0500 Subject: [PATCH 02/22] add eosio 2.0.8 release notes to dev portal :doc --- docs/30_release-notes/91_v2.0.8.md | 4 ++ docs/30_release-notes/92_v2.0.7.md | 28 ++++++++++++- docs/30_release-notes/index.md | 63 ++++++++++++++++++++++-------- 3 files changed, 77 insertions(+), 18 deletions(-) create mode 100644 docs/30_release-notes/91_v2.0.8.md diff --git a/docs/30_release-notes/91_v2.0.8.md b/docs/30_release-notes/91_v2.0.8.md new file mode 100644 index 00000000000..d1b01b6df7a --- /dev/null +++ b/docs/30_release-notes/91_v2.0.8.md @@ -0,0 +1,4 @@ +--- +link: /30_release-notes/index.md +link_text: v2.0.8 +--- diff --git a/docs/30_release-notes/92_v2.0.7.md b/docs/30_release-notes/92_v2.0.7.md index 0e18e25eba0..b92acb66f11 100644 --- a/docs/30_release-notes/92_v2.0.7.md +++ b/docs/30_release-notes/92_v2.0.7.md @@ -1,4 +1,30 @@ --- -link: /30_release-notes/index.md +content_title: EOSIO v2.0.7 Release Notes link_text: v2.0.7 --- + +This release contains stability and miscellaneous fixes. + +## Stability bug fixes +- ([#9223](https://github.com/EOSIO/eos/pull/9223)) Fix log of pending block producer - 2.0 + +## Changes + +### The following logger has been added: `transaction_failure_tracing`. ([#9252](https://github.com/EOSIO/eos/pull/9252)) + +A detailed log that emits failed verdicts from relay nodes on the P2P network. In addition, it adds a logging statement for a failed signature condition. + +### New config file option: `max-nonprivileged-inline-action-size`. ([#9262](https://github.com/EOSIO/eos/pull/9262)) + +This option is the cap for the size of an inline action above which a transaction will subjectively fail; the default value is 4KB. + +## Other Changes +- ([#9170](https://github.com/EOSIO/eos/pull/9170)) Fix onblock trace tracking - 2.0 +- ([#9201](https://github.com/EOSIO/eos/pull/9201)) [2.0.x] Anka version bump +- ([#9265](https://github.com/EOSIO/eos/pull/9265)) Remove Concurrency Groups for Scheduled Builds + +## Documentation +- ([#9124](https://github.com/EOSIO/eos/pull/9124)) Update the authority example +- ([#9275](https://github.com/EOSIO/eos/pull/9275)) [docs] New threshold for non privileged inline actions - 2.0 +- ([#9288](https://github.com/EOSIO/eos/pull/9288)) [docs] Fix character formatting in nodeos CLI option - 2.0 +- ([#9290](https://github.com/EOSIO/eos/pull/9290)) [docs] Correct Producer API title in RPC reference - 2.0 diff --git a/docs/30_release-notes/index.md b/docs/30_release-notes/index.md index fbe8abc8b48..0daa7c3cee8 100644 --- a/docs/30_release-notes/index.md +++ b/docs/30_release-notes/index.md @@ -1,29 +1,58 @@ --- -content_title: EOSIO v2.0.7 Release Notes +content_title: EOSIO v2.0.8 Release Notes --- -This release contains stability and miscellaneous fixes. +This release contains security, stability, and miscellaneous fixes. -## Stability bug fixes -- ([#9223](https://github.com/EOSIO/eos/pull/9223)) Fix log of pending block producer - 2.0 - -## Changes +## Security bug fixes -### The following logger has been added: `transaction_failure_tracing`. ([#9252](https://github.com/EOSIO/eos/pull/9252)) +### Consolidated Security Fixes for 2.0.8 ([#9745](https://github.com/EOSIO/eos/pull/9745)) -A detailed log that emits failed verdicts from relay nodes on the P2P network. In addition, it adds a logging statement for a failed signature condition. +- Adjust eos-vm-oc string intrinsic to perform as intended. +- Adjust CPU validation logic for unapplied transactions. -### New config file option: `max-nonprivileged-inline-action-size`. ([#9262](https://github.com/EOSIO/eos/pull/9262)) +Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. -This option is the cap for the size of an inline action above which a transaction will subjectively fail; the default value is 4KB. +## Stability bug fixes +- ([#9370](https://github.com/EOSIO/eos/pull/9370)) set medium priority for process signed block - 2.0.x +- ([#9382](https://github.com/EOSIO/eos/pull/9382)) Handle case newaccount in Account Query DB +- ([#9412](https://github.com/EOSIO/eos/pull/9412)) port the fix of flight bytes bug into release/2.0.x +- ([#9423](https://github.com/EOSIO/eos/pull/9423)) Update to fc with variant blob fix - 2.0 +- ([#9441](https://github.com/EOSIO/eos/pull/9441)) Fix app() shutdown - 2.0 +- ([#9516](https://github.com/EOSIO/eos/pull/9516)) Keep http_plugin_impl alive while connection objects are alive - 2.0 +- ([#9624](https://github.com/EOSIO/eos/pull/9624)) Fixing typos on injected params for `producer_plugin::log_failed_tran… ## Other Changes -- ([#9170](https://github.com/EOSIO/eos/pull/9170)) Fix onblock trace tracking - 2.0 -- ([#9201](https://github.com/EOSIO/eos/pull/9201)) [2.0.x] Anka version bump -- ([#9265](https://github.com/EOSIO/eos/pull/9265)) Remove Concurrency Groups for Scheduled Builds +- ([#9304](https://github.com/EOSIO/eos/pull/9304)) relaxing the on_notify constraint to * +- ([#9311](https://github.com/EOSIO/eos/pull/9311)) Track Source Files Excluded from Code Coverage Reports +- ([#9314](https://github.com/EOSIO/eos/pull/9314)) Prevent an older version of g++ to build eosio +- ([#9334](https://github.com/EOSIO/eos/pull/9334)) Add missing comma in loggers array +- ([#9399](https://github.com/EOSIO/eos/pull/9399)) [2.0.x] Fix docker tags when building forked PRs +- ([#9638](https://github.com/EOSIO/eos/pull/9638)) Migrate CI from Docker Hub to Amazon ECR +- ([#9657](https://github.com/EOSIO/eos/pull/9657)) CI: Fix Serial Test Bug + Simplification + UX +- ([#9665](https://github.com/EOSIO/eos/pull/9665)) Add "Testing Changes" Section to Pull Request Template ## Documentation -- ([#9124](https://github.com/EOSIO/eos/pull/9124)) Update the authority example -- ([#9275](https://github.com/EOSIO/eos/pull/9275)) [docs] New threshold for non privileged inline actions - 2.0 -- ([#9288](https://github.com/EOSIO/eos/pull/9288)) [docs] Fix character formatting in nodeos CLI option - 2.0 -- ([#9290](https://github.com/EOSIO/eos/pull/9290)) [docs] Correct Producer API title in RPC reference - 2.0 +- ([#9323](https://github.com/EOSIO/eos/pull/9323)) [docs] Remove unneeded options for nodeos replays - 2.0 +- ([#9322](https://github.com/EOSIO/eos/pull/9322)) [docs] Remove redundant nodeos replay example - 2.0 +- ([#9373](https://github.com/EOSIO/eos/pull/9373)) [docs] Fix broken link in Wallet API plugin - 2.0 +- ([#9464](https://github.com/EOSIO/eos/pull/9464)) [docs] Create nodeos concepts folder and rearrange folders - 2.0 +- ([#9479](https://github.com/EOSIO/eos/pull/9479)) [docs] Add explainers on CFD, eosio utilities, eosio-blocklog - 2.0 +- ([#9487](https://github.com/EOSIO/eos/pull/9487)) [docs] Minor edits on CFD explainer and eosio-blocklog reference - 2.0 +- ([#9488](https://github.com/EOSIO/eos/pull/9488)) [docs] Fix how-tos for delegating cpu/net with cleos - 2.0 +- ([#9491](https://github.com/EOSIO/eos/pull/9491)) [docs] Add EOSIO upgrade guide 2.0 to dev portal +- ([#9492](https://github.com/EOSIO/eos/pull/9492)) Add explicit left nav link for eosio 2.0 upgrade guide - 2.0 +- ([#9496](https://github.com/EOSIO/eos/pull/9496)) [docs] Add eosio 2.0 release notes to dev portal - 2.0 +- ([#9498](https://github.com/EOSIO/eos/pull/9498)) [docs] Add trace_api_util reference to eosio utilities docs - 2.0 +- ([#9503](https://github.com/EOSIO/eos/pull/9503)) [docs] Add slices, trace log, clog format explainers to Trace API plugin - 2.0 +- ([#9584](https://github.com/EOSIO/eos/pull/9584)) [docs] Update cleos get table reference - 2.0 +- ([#9592](https://github.com/EOSIO/eos/pull/9592)) [docs] Various additions/fixes to cleos reference - 2.0 +- ([#9602](https://github.com/EOSIO/eos/pull/9602)) [docs] Fix broken anchor link on MacOS build from source - 2.0 +- ([#9627](https://github.com/EOSIO/eos/pull/9627)) [docs] Update get_table_* reference in Chain API - 2.0 +- ([#9753](https://github.com/EOSIO/eos/pull/9753)) [docs] Update URL in net_api_plugin description - 2.0 +- ([#9754](https://github.com/EOSIO/eos/pull/9754)) [docs] Update some chain_api_plugin descriptions - 2.0 +- ([#9756](https://github.com/EOSIO/eos/pull/9756)) [docs] Remove sudo command from install/uninstall script instructions - 2.0 + +## Thanks! +Special thanks to the community contributors that submitted patches for this release: +- @nsjames From ff129dcd3de2e3b1a67147551d259da4f359cb43 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 25 Feb 2021 17:12:42 -0500 Subject: [PATCH 03/22] add eosio 2.0.9 release notes to dev portal :doc --- docs/30_release-notes/90_v2.0.9.md | 4 +++ docs/30_release-notes/91_v2.0.8.md | 57 +++++++++++++++++++++++++++++- docs/30_release-notes/index.md | 54 ++++------------------------ 3 files changed, 66 insertions(+), 49 deletions(-) create mode 100644 docs/30_release-notes/90_v2.0.9.md diff --git a/docs/30_release-notes/90_v2.0.9.md b/docs/30_release-notes/90_v2.0.9.md new file mode 100644 index 00000000000..c835f6e65e3 --- /dev/null +++ b/docs/30_release-notes/90_v2.0.9.md @@ -0,0 +1,4 @@ +--- +link: /30_release-notes/index.md +link_text: v2.0.9 +--- diff --git a/docs/30_release-notes/91_v2.0.8.md b/docs/30_release-notes/91_v2.0.8.md index d1b01b6df7a..ecf5bad0b07 100644 --- a/docs/30_release-notes/91_v2.0.8.md +++ b/docs/30_release-notes/91_v2.0.8.md @@ -1,4 +1,59 @@ --- -link: /30_release-notes/index.md +content_title: EOSIO v2.0.8 Release Notes link_text: v2.0.8 --- + +This release contains security, stability, and miscellaneous fixes. + +## Security bug fixes + +### Consolidated Security Fixes for 2.0.8 ([#9745](https://github.com/EOSIO/eos/pull/9745)) + +- Adjust eos-vm-oc string intrinsic to perform as intended. +- Adjust CPU validation logic for unapplied transactions. + +Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. + +## Stability bug fixes +- ([#9370](https://github.com/EOSIO/eos/pull/9370)) set medium priority for process signed block - 2.0.x +- ([#9382](https://github.com/EOSIO/eos/pull/9382)) Handle case newaccount in Account Query DB +- ([#9412](https://github.com/EOSIO/eos/pull/9412)) port the fix of flight bytes bug into release/2.0.x +- ([#9423](https://github.com/EOSIO/eos/pull/9423)) Update to fc with variant blob fix - 2.0 +- ([#9441](https://github.com/EOSIO/eos/pull/9441)) Fix app() shutdown - 2.0 +- ([#9516](https://github.com/EOSIO/eos/pull/9516)) Keep http_plugin_impl alive while connection objects are alive - 2.0 +- ([#9624](https://github.com/EOSIO/eos/pull/9624)) Fixing typos on injected params for `producer_plugin::log_failed_tran… + +## Other Changes +- ([#9304](https://github.com/EOSIO/eos/pull/9304)) relaxing the on_notify constraint to * +- ([#9311](https://github.com/EOSIO/eos/pull/9311)) Track Source Files Excluded from Code Coverage Reports +- ([#9314](https://github.com/EOSIO/eos/pull/9314)) Prevent an older version of g++ to build eosio +- ([#9334](https://github.com/EOSIO/eos/pull/9334)) Add missing comma in loggers array +- ([#9399](https://github.com/EOSIO/eos/pull/9399)) [2.0.x] Fix docker tags when building forked PRs +- ([#9638](https://github.com/EOSIO/eos/pull/9638)) Migrate CI from Docker Hub to Amazon ECR +- ([#9657](https://github.com/EOSIO/eos/pull/9657)) CI: Fix Serial Test Bug + Simplification + UX +- ([#9665](https://github.com/EOSIO/eos/pull/9665)) Add "Testing Changes" Section to Pull Request Template + +## Documentation +- ([#9323](https://github.com/EOSIO/eos/pull/9323)) [docs] Remove unneeded options for nodeos replays - 2.0 +- ([#9322](https://github.com/EOSIO/eos/pull/9322)) [docs] Remove redundant nodeos replay example - 2.0 +- ([#9373](https://github.com/EOSIO/eos/pull/9373)) [docs] Fix broken link in Wallet API plugin - 2.0 +- ([#9464](https://github.com/EOSIO/eos/pull/9464)) [docs] Create nodeos concepts folder and rearrange folders - 2.0 +- ([#9479](https://github.com/EOSIO/eos/pull/9479)) [docs] Add explainers on CFD, eosio utilities, eosio-blocklog - 2.0 +- ([#9487](https://github.com/EOSIO/eos/pull/9487)) [docs] Minor edits on CFD explainer and eosio-blocklog reference - 2.0 +- ([#9488](https://github.com/EOSIO/eos/pull/9488)) [docs] Fix how-tos for delegating cpu/net with cleos - 2.0 +- ([#9491](https://github.com/EOSIO/eos/pull/9491)) [docs] Add EOSIO upgrade guide 2.0 to dev portal +- ([#9492](https://github.com/EOSIO/eos/pull/9492)) Add explicit left nav link for eosio 2.0 upgrade guide - 2.0 +- ([#9496](https://github.com/EOSIO/eos/pull/9496)) [docs] Add eosio 2.0 release notes to dev portal - 2.0 +- ([#9498](https://github.com/EOSIO/eos/pull/9498)) [docs] Add trace_api_util reference to eosio utilities docs - 2.0 +- ([#9503](https://github.com/EOSIO/eos/pull/9503)) [docs] Add slices, trace log, clog format explainers to Trace API plugin - 2.0 +- ([#9584](https://github.com/EOSIO/eos/pull/9584)) [docs] Update cleos get table reference - 2.0 +- ([#9592](https://github.com/EOSIO/eos/pull/9592)) [docs] Various additions/fixes to cleos reference - 2.0 +- ([#9602](https://github.com/EOSIO/eos/pull/9602)) [docs] Fix broken anchor link on MacOS build from source - 2.0 +- ([#9627](https://github.com/EOSIO/eos/pull/9627)) [docs] Update get_table_* reference in Chain API - 2.0 +- ([#9753](https://github.com/EOSIO/eos/pull/9753)) [docs] Update URL in net_api_plugin description - 2.0 +- ([#9754](https://github.com/EOSIO/eos/pull/9754)) [docs] Update some chain_api_plugin descriptions - 2.0 +- ([#9756](https://github.com/EOSIO/eos/pull/9756)) [docs] Remove sudo command from install/uninstall script instructions - 2.0 + +## Thanks! +Special thanks to the community contributors that submitted patches for this release: +- @nsjames diff --git a/docs/30_release-notes/index.md b/docs/30_release-notes/index.md index 0daa7c3cee8..e0c4084bf06 100644 --- a/docs/30_release-notes/index.md +++ b/docs/30_release-notes/index.md @@ -1,58 +1,16 @@ --- -content_title: EOSIO v2.0.8 Release Notes +content_title: EOSIO v2.0.9 Release Notes --- -This release contains security, stability, and miscellaneous fixes. +This release contains security and miscellaneous fixes. ## Security bug fixes -### Consolidated Security Fixes for 2.0.8 ([#9745](https://github.com/EOSIO/eos/pull/9745)) - -- Adjust eos-vm-oc string intrinsic to perform as intended. -- Adjust CPU validation logic for unapplied transactions. +### Consolidated Security Fixes for 2.0.9 ([#9841](https://github.com/EOSIO/eos/pull/9841)) +- Fixes to packed_transaction cache +- Transaction account fail limit refactor Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. -## Stability bug fixes -- ([#9370](https://github.com/EOSIO/eos/pull/9370)) set medium priority for process signed block - 2.0.x -- ([#9382](https://github.com/EOSIO/eos/pull/9382)) Handle case newaccount in Account Query DB -- ([#9412](https://github.com/EOSIO/eos/pull/9412)) port the fix of flight bytes bug into release/2.0.x -- ([#9423](https://github.com/EOSIO/eos/pull/9423)) Update to fc with variant blob fix - 2.0 -- ([#9441](https://github.com/EOSIO/eos/pull/9441)) Fix app() shutdown - 2.0 -- ([#9516](https://github.com/EOSIO/eos/pull/9516)) Keep http_plugin_impl alive while connection objects are alive - 2.0 -- ([#9624](https://github.com/EOSIO/eos/pull/9624)) Fixing typos on injected params for `producer_plugin::log_failed_tran… - ## Other Changes -- ([#9304](https://github.com/EOSIO/eos/pull/9304)) relaxing the on_notify constraint to * -- ([#9311](https://github.com/EOSIO/eos/pull/9311)) Track Source Files Excluded from Code Coverage Reports -- ([#9314](https://github.com/EOSIO/eos/pull/9314)) Prevent an older version of g++ to build eosio -- ([#9334](https://github.com/EOSIO/eos/pull/9334)) Add missing comma in loggers array -- ([#9399](https://github.com/EOSIO/eos/pull/9399)) [2.0.x] Fix docker tags when building forked PRs -- ([#9638](https://github.com/EOSIO/eos/pull/9638)) Migrate CI from Docker Hub to Amazon ECR -- ([#9657](https://github.com/EOSIO/eos/pull/9657)) CI: Fix Serial Test Bug + Simplification + UX -- ([#9665](https://github.com/EOSIO/eos/pull/9665)) Add "Testing Changes" Section to Pull Request Template - -## Documentation -- ([#9323](https://github.com/EOSIO/eos/pull/9323)) [docs] Remove unneeded options for nodeos replays - 2.0 -- ([#9322](https://github.com/EOSIO/eos/pull/9322)) [docs] Remove redundant nodeos replay example - 2.0 -- ([#9373](https://github.com/EOSIO/eos/pull/9373)) [docs] Fix broken link in Wallet API plugin - 2.0 -- ([#9464](https://github.com/EOSIO/eos/pull/9464)) [docs] Create nodeos concepts folder and rearrange folders - 2.0 -- ([#9479](https://github.com/EOSIO/eos/pull/9479)) [docs] Add explainers on CFD, eosio utilities, eosio-blocklog - 2.0 -- ([#9487](https://github.com/EOSIO/eos/pull/9487)) [docs] Minor edits on CFD explainer and eosio-blocklog reference - 2.0 -- ([#9488](https://github.com/EOSIO/eos/pull/9488)) [docs] Fix how-tos for delegating cpu/net with cleos - 2.0 -- ([#9491](https://github.com/EOSIO/eos/pull/9491)) [docs] Add EOSIO upgrade guide 2.0 to dev portal -- ([#9492](https://github.com/EOSIO/eos/pull/9492)) Add explicit left nav link for eosio 2.0 upgrade guide - 2.0 -- ([#9496](https://github.com/EOSIO/eos/pull/9496)) [docs] Add eosio 2.0 release notes to dev portal - 2.0 -- ([#9498](https://github.com/EOSIO/eos/pull/9498)) [docs] Add trace_api_util reference to eosio utilities docs - 2.0 -- ([#9503](https://github.com/EOSIO/eos/pull/9503)) [docs] Add slices, trace log, clog format explainers to Trace API plugin - 2.0 -- ([#9584](https://github.com/EOSIO/eos/pull/9584)) [docs] Update cleos get table reference - 2.0 -- ([#9592](https://github.com/EOSIO/eos/pull/9592)) [docs] Various additions/fixes to cleos reference - 2.0 -- ([#9602](https://github.com/EOSIO/eos/pull/9602)) [docs] Fix broken anchor link on MacOS build from source - 2.0 -- ([#9627](https://github.com/EOSIO/eos/pull/9627)) [docs] Update get_table_* reference in Chain API - 2.0 -- ([#9753](https://github.com/EOSIO/eos/pull/9753)) [docs] Update URL in net_api_plugin description - 2.0 -- ([#9754](https://github.com/EOSIO/eos/pull/9754)) [docs] Update some chain_api_plugin descriptions - 2.0 -- ([#9756](https://github.com/EOSIO/eos/pull/9756)) [docs] Remove sudo command from install/uninstall script instructions - 2.0 - -## Thanks! -Special thanks to the community contributors that submitted patches for this release: -- @nsjames +- ([#9803](https://github.com/EOSIO/eos/pull/9803)) Fix stdout console logging: Merge back #9582 to 2.0.x From 5c039691bbcbb4473c649a5ce8aafbdc56eea84a Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 25 Feb 2021 18:17:04 -0500 Subject: [PATCH 04/22] add eosio 2.0.10 release notes to dev portal :doc --- docs/30_release-notes/89_v2.9.10.md | 4 +++ docs/30_release-notes/90_v2.0.9.md | 15 +++++++++++- docs/30_release-notes/index.md | 38 +++++++++++++++++++++++------ 3 files changed, 49 insertions(+), 8 deletions(-) create mode 100644 docs/30_release-notes/89_v2.9.10.md diff --git a/docs/30_release-notes/89_v2.9.10.md b/docs/30_release-notes/89_v2.9.10.md new file mode 100644 index 00000000000..e7247d125a8 --- /dev/null +++ b/docs/30_release-notes/89_v2.9.10.md @@ -0,0 +1,4 @@ +--- +link: /30_release-notes/index.md +link_text: v2.0.10 +--- diff --git a/docs/30_release-notes/90_v2.0.9.md b/docs/30_release-notes/90_v2.0.9.md index c835f6e65e3..f3c27400392 100644 --- a/docs/30_release-notes/90_v2.0.9.md +++ b/docs/30_release-notes/90_v2.0.9.md @@ -1,4 +1,17 @@ --- -link: /30_release-notes/index.md +content_title: EOSIO v2.0.9 Release Notes link_text: v2.0.9 --- + +This release contains security and miscellaneous fixes. + +## Security bug fixes + +### Consolidated Security Fixes for 2.0.9 ([#9841](https://github.com/EOSIO/eos/pull/9841)) +- Fixes to packed_transaction cache +- Transaction account fail limit refactor + +Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. + +## Other Changes +- ([#9803](https://github.com/EOSIO/eos/pull/9803)) Fix stdout console logging: Merge back #9582 to 2.0.x diff --git a/docs/30_release-notes/index.md b/docs/30_release-notes/index.md index e0c4084bf06..5097b4c4d39 100644 --- a/docs/30_release-notes/index.md +++ b/docs/30_release-notes/index.md @@ -1,16 +1,40 @@ --- -content_title: EOSIO v2.0.9 Release Notes +content_title: EOSIO v2.0.10 Release Notes --- -This release contains security and miscellaneous fixes. +This release contains security, stability, and miscellaneous fixes. ## Security bug fixes -### Consolidated Security Fixes for 2.0.9 ([#9841](https://github.com/EOSIO/eos/pull/9841)) -- Fixes to packed_transaction cache -- Transaction account fail limit refactor +### Consolidated Security Fixes for v2.0.10 ([#10091](https://github.com/EOSIO/eos/pull/10091)) +- Fix issue with account query db that could result in incorrect data or hung processes +- Implement a Subjective CPU billing system that helps P2P and API nodes better respond to extreme network congestion Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. -## Other Changes -- ([#9803](https://github.com/EOSIO/eos/pull/9803)) Fix stdout console logging: Merge back #9582 to 2.0.x +### Notes on Subjective CPU Billing + +This system consists of two primary features: a subjective (node local) view of spent CPU resources that are not yet accounted for by the blockchain that allows individual nodes to predict what resource consumption will be and, a subjective penalty system to offset work done in service of erroneous or malicious transactions. + +The subjective view of CPU resources will synchronize with the resources present in the blockchain as it discovers the true CPU billing for transactions it has already accounted for. + +The system will also accumulate CPU resources spent on failing transactions that will not be relayed in a decaying "subjective penalty" which can protect the individual nodes from abusive actors while remaining tolerant to occasional mistakes. + +Subjective billing defaults to active and can be disabled with the `disable-subjective-billing` configuration in `config.ini` or on the command line. + +## Stability bug fixes +- ([#9985](https://github.com/EOSIO/eos/pull/9985)) EPE-389 net_plugin stall during head catchup - merge release/2.0.x + +## Other changes +- ([#9894](https://github.com/EOSIO/eos/pull/9894)) EOS VM OC: Support LLVM 11 - 2.0 +- ([#9911](https://github.com/EOSIO/eos/pull/9911)) add step to the pipeline to build and push to dockerhub on release br… +- ([#9944](https://github.com/EOSIO/eos/pull/9944)) Create eosio-debug-build Pipeline +- ([#9969](https://github.com/EOSIO/eos/pull/9969)) Updating name for the new Docker hub repo EOSIO instead EOS +- ([#9971](https://github.com/EOSIO/eos/pull/9971)) Fix pinned builds error due to obsolete LLVM repo +- ([#10015](https://github.com/EOSIO/eos/pull/10015)) [release 2.0.x] Fix LRT triggers +- ([#10026](https://github.com/EOSIO/eos/pull/10026)) EPE-165: Improve logic for unlinkable blocks while sync'ing +- ([#10047](https://github.com/EOSIO/eos/pull/10047)) Reduce Docker Hub Manifest Queries +- ([#10088](https://github.com/EOSIO/eos/pull/10088)) [release 2.0.x] Specify boost version for unpinned MacOS 10.14 builds + +## Documentation +- ([#10011](https://github.com/EOSIO/eos/pull/10011)) [docs] Update various cleos how-tos and fix index - 2.0 From b429404a48263ec8809a2d9328c0b6c585524f66 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 25 Feb 2021 18:34:29 -0500 Subject: [PATCH 05/22] fix harmless typo in unreferenced filename :doc --- docs/30_release-notes/{89_v2.9.10.md => 89_v2.0.10.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/30_release-notes/{89_v2.9.10.md => 89_v2.0.10.md} (100%) diff --git a/docs/30_release-notes/89_v2.9.10.md b/docs/30_release-notes/89_v2.0.10.md similarity index 100% rename from docs/30_release-notes/89_v2.9.10.md rename to docs/30_release-notes/89_v2.0.10.md From 94bb937953ccd61ed5fbef7241e558af859fd078 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 17 Feb 2021 17:18:10 -0500 Subject: [PATCH 06/22] Fix problematic docker publish steps in tagged builds. --- .cicd/create-docker-from-binary.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.cicd/create-docker-from-binary.sh b/.cicd/create-docker-from-binary.sh index 5986e97f956..f30e6c1140f 100755 --- a/.cicd/create-docker-from-binary.sh +++ b/.cicd/create-docker-from-binary.sh @@ -39,10 +39,12 @@ for REG in ${EOSIO_REGS[@]}; do eval $CLEAN_IMAGE_COMMIT eval $CLEAN_IMAGE_BRANCH if [[ ! -z "$SANITIZED_TAG" ]]; then - DOCKER_TAG="docker tag eosio_image $REG:$SANITIZED_TAG" + DOCKER_TAG="docker tag eosio_image:$BUILD_TAG $REG:$SANITIZED_TAG" + DOCKER_PUSH_TAG="docker push $REG:$SANITIZED_TAG" DOCKER_REM="docker rmi $REG:$SANITIZED_TAG" echo -e "$ \n Tagging Image: \n$DOCKER_TAG \n Cleaning Up: \n$DOCKER_REM" - eval $DOCKER_TAG + eval $DOCKER_TAG + eval $DOCKER_PUSH_TAG eval $DOCKER_REM fi done From 5844b8b880af08473b91958c004f420620fa93a9 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 17 Feb 2021 17:46:56 -0500 Subject: [PATCH 07/22] Never fail to remove the container. --- .cicd/create-docker-from-binary.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.cicd/create-docker-from-binary.sh b/.cicd/create-docker-from-binary.sh index f30e6c1140f..aa58f3e1b38 100755 --- a/.cicd/create-docker-from-binary.sh +++ b/.cicd/create-docker-from-binary.sh @@ -33,15 +33,15 @@ for REG in ${EOSIO_REGS[@]}; do echo -e "$ Pushing Images: \n$DOCKER_PUSH_COMMIT \n$DOCKER_PUSH_BRANCH" eval $DOCKER_PUSH_COMMIT eval $DOCKER_PUSH_BRANCH - CLEAN_IMAGE_COMMIT="docker rmi $REG:$BUILDKITE_COMMIT" - CLEAN_IMAGE_BRANCH="docker rmi $REG:$SANITIZED_BRANCH" + CLEAN_IMAGE_COMMIT="docker rmi $REG:$BUILDKITE_COMMIT || :" + CLEAN_IMAGE_BRANCH="docker rmi $REG:$SANITIZED_BRANCH || :" echo -e "Cleaning Up: \n$CLEAN_IMAGE_COMMIT \n$CLEAN_IMAGE_BRANCH$" eval $CLEAN_IMAGE_COMMIT eval $CLEAN_IMAGE_BRANCH if [[ ! -z "$SANITIZED_TAG" ]]; then DOCKER_TAG="docker tag eosio_image:$BUILD_TAG $REG:$SANITIZED_TAG" DOCKER_PUSH_TAG="docker push $REG:$SANITIZED_TAG" - DOCKER_REM="docker rmi $REG:$SANITIZED_TAG" + DOCKER_REM="docker rmi $REG:$SANITIZED_TAG || :" echo -e "$ \n Tagging Image: \n$DOCKER_TAG \n Cleaning Up: \n$DOCKER_REM" eval $DOCKER_TAG eval $DOCKER_PUSH_TAG @@ -49,6 +49,6 @@ for REG in ${EOSIO_REGS[@]}; do fi done -DOCKER_GEN="docker rmi eosio_image:$BUILD_TAG" +DOCKER_GEN="docker rmi eosio_image:$BUILD_TAG || :" echo "Clean up base image" eval $DOCKER_GEN \ No newline at end of file From 642f3b7435030d36ff6125c25752817d2bbfa70e Mon Sep 17 00:00:00 2001 From: Matt Witherspoon <32485495+spoonincode@users.noreply.github.com> Date: Mon, 15 Mar 2021 14:35:56 -0400 Subject: [PATCH 08/22] sync chainbase with new include --- libraries/chainbase | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/chainbase b/libraries/chainbase index d6632fcc1e7..1ab47297458 160000 --- a/libraries/chainbase +++ b/libraries/chainbase @@ -1 +1 @@ -Subproject commit d6632fcc1e71b0ee2022621059a432ec216b6661 +Subproject commit 1ab472974589c115d9cfd5bb2e6b4d47d8619edc From 0a34040a5c6fad9ce49b201c71560375fcf5849b Mon Sep 17 00:00:00 2001 From: William Blevins Date: Wed, 10 Mar 2021 12:07:09 -0500 Subject: [PATCH 09/22] Adding test for nodeos option --print-build-info. --- tests/CMakeLists.txt | 4 +++ tests/print-build-info.sh | 68 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100755 tests/print-build-info.sh diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 34770891dd2..3495ce06748 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -50,6 +50,8 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/db_modes_test.sh ${CMAKE_CURRENT_BINA configure_file(${CMAKE_CURRENT_SOURCE_DIR}/prod_preactivation_test.py ${CMAKE_CURRENT_BINARY_DIR}/prod_preactivation_test.py COPYONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/release-build.sh ${CMAKE_CURRENT_BINARY_DIR}/release-build.sh COPYONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version-label.sh ${CMAKE_CURRENT_BINARY_DIR}/version-label.sh COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/full-version-label.sh ${CMAKE_CURRENT_BINARY_DIR}/full-version-label.sh COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/print-build-info.sh ${CMAKE_CURRENT_BINARY_DIR}/print-build-info.sh COPYONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/nodeos_producer_watermark_test.py ${CMAKE_CURRENT_BINARY_DIR}/nodeos_producer_watermark_test.py COPYONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cli_test.py ${CMAKE_CURRENT_BINARY_DIR}/cli_test.py COPYONLY) @@ -94,6 +96,8 @@ add_test(NAME db_modes_test COMMAND tests/db_modes_test.sh WORKING_DIRECTORY ${C set_tests_properties(db_modes_test PROPERTIES COST 6000) add_test(NAME release-build-test COMMAND tests/release-build.sh WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) add_test(NAME version-label-test COMMAND tests/version-label.sh WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) +add_test(NAME full-version-label-test COMMAND tests/full-version-label.sh WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) +add_test(NAME print-build-info-test COMMAND tests/print-build-info.sh WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) # Long running tests add_test(NAME nodeos_sanity_lr_test COMMAND tests/nodeos_run_test.py -v --sanity-test --clean-run --dump-error-detail WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) diff --git a/tests/print-build-info.sh b/tests/print-build-info.sh new file mode 100755 index 00000000000..6c75d032f80 --- /dev/null +++ b/tests/print-build-info.sh @@ -0,0 +1,68 @@ +#!/bin/bash +# The purpose of this test is to ensure that the output of the "nodeos --print-build-info" command matches the version string defined by our CMake files +# If the environment variable BUILDKITE_TAG is empty or unset, this test will echo success +echo '##### Nodeos Version Label Test #####' +if [[ "$BUILDKITE_TAG" == '' || "$BUILDKITE" != 'true' ]]; then + echo 'This test is only run in Buildkite against tagged builds.' + [[ "$BUILDKITE" != 'true' ]] && echo 'This is not Buildkite.' + [[ "$BUILDKITE_TAG" == '' ]] && echo 'This is not a tagged build.' + echo 'Exiting...' + exit 0 +fi +echo 'Tagged build detected, running test.' +# orient ourselves +[[ "$EOSIO_ROOT" == '' ]] && EOSIO_ROOT=$(echo $(pwd)/ | grep -ioe '.*/eos/') +[[ "$EOSIO_ROOT" == '' ]] && EOSIO_ROOT=$(echo $(pwd)/ | grep -ioe '.*/EOSIO/eosio/') +[[ "$EOSIO_ROOT" == '' ]] && EOSIO_ROOT=$(echo $(pwd)/ | grep -ioe '.*/build/' | sed 's,/build/,,') +echo "Using EOSIO_ROOT=\"$EOSIO_ROOT\"." +# determine expected value +BUILD_VARS="$EOSIO_ROOT/scripts/.build_vars" +if [[ -f "$BUILD_VARS" ]]; then + echo "Parsing \"$BUILD_VARS\"..." + $(cat $BUILD_VARS | grep -ie 'export BOOST_VERSION_MAJOR' | cut -d '(' -f 2 | cut -d ')' -f 1 | awk '{print $1" "$2}') + $(cat $BUILD_VARS | grep -ie 'export BOOST_VERSION_MINOR' | cut -d '(' -f 2 | cut -d ')' -f 1 | awk '{print $1" "$2}') + $(cat $BUILD_VARS | grep -ie 'export BOOST_VERSION_PATCH' | cut -d '(' -f 2 | cut -d ')' -f 1 | awk '{print $1" "$2}') + EXPECTED_BOOST_VERSION=$(printf "%d%03d%02d" $BOOST_VERSION_MAJOR $BOOST_VERSION_MINOR $BOOST_VERSION_PATCH) +else + echo 'No build vars available.' + exit 1 +fi +# fail if no expected value was found +if [[ -z "$BOOST_VERSION_MAJOR" || -z "$BOOST_VERSION_MINOR" || -z "$BOOST_VERSION_PATCH" ]]; then + echo 'ERROR: Could not determine expected value for version label!' + set +e + echo "EOSIO_ROOT=\"$EOSIO_ROOT\"" + echo "BUILD_VARS=\"$BUILD_VARS\"" + echo '' + echo "BOOST_VERSION_MAJOR=\"$BOOST_VERSION_MAJOR\"" + echo "BOOST_VERSION_MINOR=\"$BOOST_VERSION_MINOR\"" + echo "BOOST_VERSION_PATCH=\"$BOOST_VERSION_PATCH\"" + echo "EXPECTED_BOOST_VERSION=\"$EXPECTED_BOOST_VERSION\"" + echo '' + echo '$ pwd' + pwd + echo '$ ls -la "$EOSIO_ROOT"' + ls -la "$EOSIO_ROOT" + echo '$ ls -la "$EOSIO_ROOT/build"' + ls -la "$EOSIO_ROOT/build" + exit 1 +fi + +OUTPUT=$($EOSIO_ROOT/build/bin/nodeos --print-build-info 2>&1) +if [[ $? -eq 0 ]]; then + echo 'Expected non-zero nodeos exit code.' + exit 1 +fi + +JSON=$(echo $OUTPUT | tr -d '\r\n' | sed 's/^.\+ JSON: \({ .\+ }\).\+$/\1/') +ACTUAL_BOOST_VERSION=$(echo $JSON | sed 's/^.\+"boost_version": \([0-9]\+\).\+$/\1/') + +echo "Expecting boost version \"$EXPECTED_BOOST_VERSION\"..." +if [[ "$EXPECTED_BOOST_VERSION" == "$ACTUAL_BOOST_VERSION" ]]; then + echo "Passed with \"$ACTUAL_BOOST_VERSION\"." + exit 0; +fi + +echo 'Failed!' +echo "\"$EXPECTED_BOOST_VERSION\" != \"$ACTUAL_BOOST_VERSION\"" +exit 1 From ee6e852977b4899b246940bbb9ae9631bf9def6d Mon Sep 17 00:00:00 2001 From: William Blevins Date: Wed, 10 Mar 2021 15:56:57 -0500 Subject: [PATCH 10/22] Run these tests against any builds. --- tests/full-version-label.sh | 70 +++++++++++++++++++++++++++++++++++++ tests/print-build-info.sh | 9 ----- tests/version-label.sh | 9 ----- 3 files changed, 70 insertions(+), 18 deletions(-) create mode 100755 tests/full-version-label.sh diff --git a/tests/full-version-label.sh b/tests/full-version-label.sh new file mode 100755 index 00000000000..4afb8eae0a0 --- /dev/null +++ b/tests/full-version-label.sh @@ -0,0 +1,70 @@ +#!/bin/bash +# The purpose of this test is to ensure that the output of the "nodeos --full-version" command matches the version string defined by our CMake files +echo '##### Nodeos Full Version Label Test #####' +# orient ourselves +[[ "$EOSIO_ROOT" == '' ]] && EOSIO_ROOT=$(echo $(pwd)/ | grep -ioe '.*/eos/') +[[ "$EOSIO_ROOT" == '' ]] && EOSIO_ROOT=$(echo $(pwd)/ | grep -ioe '.*/EOSIO/eosio/') +[[ "$EOSIO_ROOT" == '' ]] && EOSIO_ROOT=$(echo $(pwd)/ | grep -ioe '.*/build/' | sed 's,/build/,,') +echo "Using EOSIO_ROOT=\"$EOSIO_ROOT\"." +# determine expected value +CMAKE_CACHE="$EOSIO_ROOT/build/CMakeCache.txt" +CMAKE_LISTS="$EOSIO_ROOT/CMakeLists.txt" +if [[ -f "$CMAKE_CACHE" && $(cat "$CMAKE_CACHE" | grep -c 'DOXY_EOS_VERSION') > 0 ]]; then + echo "Parsing \"$CMAKE_CACHE\"..." + EXPECTED="v$(cat "$CMAKE_CACHE" | grep 'DOXY_EOS_VERSION' | cut -d '=' -f 2)" +elif [[ -f "$CMAKE_LISTS" ]]; then + echo "Parsing \"$CMAKE_LISTS\"..." + export $(cat $CMAKE_LISTS | grep -ie 'set *( *VERSION_MAJOR' | cut -d '(' -f 2 | cut -d ')' -f 1 | awk '{print $1"="$2}') + export $(cat $CMAKE_LISTS | grep -ie 'set *( *VERSION_MINOR' | cut -d '(' -f 2 | cut -d ')' -f 1 | awk '{print $1"="$2}') + export $(cat $CMAKE_LISTS | grep -ie 'set *( *VERSION_PATCH' | cut -d '(' -f 2 | cut -d ')' -f 1 | awk '{print $1"="$2}') + if [[ $(cat $CMAKE_LISTS | grep -ice 'set *( *VERSION_SUFFIX') > 0 ]]; then + echo 'Using version suffix...' + export $(cat $CMAKE_LISTS | grep -ie 'set *( *VERSION_SUFFIX' | cut -d '(' -f 2 | cut -d ')' -f 1 | awk '{print $1"="$2}') + export $(echo "$(cat $CMAKE_LISTS | grep -ie 'set *( *VERSION_FULL.*VERSION_SUFFIX' | cut -d '(' -f 2 | cut -d ')' -f 1 | awk '{print $1"="$2}')" | sed "s/VERSION_MAJOR/$VERSION_MAJOR/" | sed "s/VERSION_MINOR/$VERSION_MINOR/" | sed "s/VERSION_PATCH/$VERSION_PATCH/" | sed "s/VERSION_SUFFIX/$VERSION_SUFFIX/" | tr -d '"{}$') + else + echo 'No version suffix found.' + export $(echo "$(cat $CMAKE_LISTS | grep -ie 'set *( *VERSION_FULL' | grep -ive 'VERSION_SUFFIX' | cut -d '(' -f 2 | cut -d ')' -f 1 | awk '{print $1"="$2}')" | sed "s/VERSION_MAJOR/$VERSION_MAJOR/" | sed "s/VERSION_MINOR/$VERSION_MINOR/" | sed "s/VERSION_PATCH/$VERSION_PATCH/" | tr -d '"{}$') + fi + EXPECTED="v$VERSION_FULL" +fi +# fail if no expected value was found +if [[ -z "$EXPECTED" ]]; then + echo 'ERROR: Could not determine expected value for version label!' + set +e + echo "EOSIO_ROOT=\"$EOSIO_ROOT\"" + echo "CMAKE_CACHE=\"$CMAKE_CACHE\"" + echo "CMAKE_LISTS=\"$CMAKE_LISTS\"" + echo '' + echo "VERSION_MAJOR=\"$VERSION_MAJOR\"" + echo "VERSION_MINOR=\"$VERSION_MINOR\"" + echo "VERSION_PATCH=\"$VERSION_PATCH\"" + echo "VERSION_SUFFIX=\"$VERSION_SUFFIX\"" + echo "VERSION_FULL=\"$VERSION_FULL\"" + echo '' + echo '$ cat "$CMAKE_CACHE" | grep "DOXY_EOS_VERSION"' + cat "$CMAKE_CACHE" | grep "DOXY_EOS_VERSION" + echo '$ pwd' + pwd + echo '$ ls -la "$EOSIO_ROOT"' + ls -la "$EOSIO_ROOT" + echo '$ ls -la "$EOSIO_ROOT/build"' + ls -la "$EOSIO_ROOT/build" + exit 1 +fi +VERSION_HASH=$(grep -Irn version_hash $EOSIO_ROOT/build/libraries/version | grep std::string | sed 's/^.\+"\([a-f0-9]\+\)".\+$/\1/') +if [[ -z "$VERSION_HASH" ]]; then + echo 'No version hash found.' + exit 1 +fi +EXPECTED=$EXPECTED-$VERSION_HASH +echo "Expecting \"$EXPECTED\"..." +# get nodeos version +ACTUAL=$($EOSIO_ROOT/build/bin/nodeos --full-version) +# test +if [[ "$EXPECTED" == "$ACTUAL" ]]; then + echo "Passed with \"$ACTUAL\"." + exit 0 +fi +echo 'Failed!' +echo "\"$EXPECTED\" != \"$ACTUAL\"" +exit 1 diff --git a/tests/print-build-info.sh b/tests/print-build-info.sh index 6c75d032f80..92e97d2e072 100755 --- a/tests/print-build-info.sh +++ b/tests/print-build-info.sh @@ -1,15 +1,6 @@ #!/bin/bash # The purpose of this test is to ensure that the output of the "nodeos --print-build-info" command matches the version string defined by our CMake files -# If the environment variable BUILDKITE_TAG is empty or unset, this test will echo success echo '##### Nodeos Version Label Test #####' -if [[ "$BUILDKITE_TAG" == '' || "$BUILDKITE" != 'true' ]]; then - echo 'This test is only run in Buildkite against tagged builds.' - [[ "$BUILDKITE" != 'true' ]] && echo 'This is not Buildkite.' - [[ "$BUILDKITE_TAG" == '' ]] && echo 'This is not a tagged build.' - echo 'Exiting...' - exit 0 -fi -echo 'Tagged build detected, running test.' # orient ourselves [[ "$EOSIO_ROOT" == '' ]] && EOSIO_ROOT=$(echo $(pwd)/ | grep -ioe '.*/eos/') [[ "$EOSIO_ROOT" == '' ]] && EOSIO_ROOT=$(echo $(pwd)/ | grep -ioe '.*/EOSIO/eosio/') diff --git a/tests/version-label.sh b/tests/version-label.sh index 008c469d2b8..51ee708d342 100755 --- a/tests/version-label.sh +++ b/tests/version-label.sh @@ -1,15 +1,6 @@ #!/bin/bash # The purpose of this test is to ensure that the output of the "nodeos --version" command matches the version string defined by our CMake files -# If the environment variable BUILDKITE_TAG is empty or unset, this test will echo success echo '##### Nodeos Version Label Test #####' -if [[ "$BUILDKITE_TAG" == '' || "$BUILDKITE" != 'true' ]]; then - echo 'This test is only run in Buildkite against tagged builds.' - [[ "$BUILDKITE" != 'true' ]] && echo 'This is not Buildkite.' - [[ "$BUILDKITE_TAG" == '' ]] && echo 'This is not a tagged build.' - echo 'Exiting...' - exit 0 -fi -echo 'Tagged build detected, running test.' # orient ourselves [[ "$EOSIO_ROOT" == '' ]] && EOSIO_ROOT=$(echo $(pwd)/ | grep -ioe '.*/eos/') [[ "$EOSIO_ROOT" == '' ]] && EOSIO_ROOT=$(echo $(pwd)/ | grep -ioe '.*/EOSIO/eosio/') From b6dc160f62711880038c95130c523e75f1542f07 Mon Sep 17 00:00:00 2001 From: William Blevins Date: Wed, 10 Mar 2021 17:03:00 -0500 Subject: [PATCH 11/22] Fix version-label tests pass output. --- tests/version-label.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/version-label.sh b/tests/version-label.sh index 51ee708d342..8d04e074cba 100755 --- a/tests/version-label.sh +++ b/tests/version-label.sh @@ -56,7 +56,7 @@ echo "Expecting \"$EXPECTED\"..." ACTUAL=$($EOSIO_ROOT/build/bin/nodeos --version) || : # nodeos currently returns -1 for --version # test if [[ "$EXPECTED" == "$ACTUAL" ]]; then - echo 'Passed with \"$ACTUAL\".' + echo "Passed with \"$ACTUAL\"." exit 0 fi echo 'Failed!' From 744302e74513bbc7040d100befdff2e67fdb6297 Mon Sep 17 00:00:00 2001 From: William Blevins Date: Thu, 11 Mar 2021 09:41:46 -0500 Subject: [PATCH 12/22] Verify that nodeos returns "0" exit code. --- tests/full-version-label.sh | 8 +++++++- tests/version-label.sh | 10 ++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/tests/full-version-label.sh b/tests/full-version-label.sh index 4afb8eae0a0..d72fb43f071 100755 --- a/tests/full-version-label.sh +++ b/tests/full-version-label.sh @@ -60,7 +60,13 @@ EXPECTED=$EXPECTED-$VERSION_HASH echo "Expecting \"$EXPECTED\"..." # get nodeos version ACTUAL=$($EOSIO_ROOT/build/bin/nodeos --full-version) -# test +EXIT_CODE=$? +# verify 0 exit code explicitly +if [[ $EXIT_CODE -ne 0 ]]; then + echo "Nodeos produced non-zero exit code \"$EXIT_CODE\"." + exit $EXIT_CODE +fi +# test version if [[ "$EXPECTED" == "$ACTUAL" ]]; then echo "Passed with \"$ACTUAL\"." exit 0 diff --git a/tests/version-label.sh b/tests/version-label.sh index 8d04e074cba..2add83d7ebc 100755 --- a/tests/version-label.sh +++ b/tests/version-label.sh @@ -53,8 +53,14 @@ if [[ "$EXPECTED" == '' ]]; then fi echo "Expecting \"$EXPECTED\"..." # get nodeos version -ACTUAL=$($EOSIO_ROOT/build/bin/nodeos --version) || : # nodeos currently returns -1 for --version -# test +ACTUAL=$($EOSIO_ROOT/build/bin/nodeos --version) +EXIT_CODE=$? +# verify 0 exit code explicitly +if [[ $EXIT_CODE -ne 0 ]]; then + echo "Nodeos produced non-zero exit code \"$EXIT_CODE\"." + exit $EXIT_CODE +fi +# test version if [[ "$EXPECTED" == "$ACTUAL" ]]; then echo "Passed with \"$ACTUAL\"." exit 0 From 6327c33fdaff6e171023b3f4e334633c4a7283eb Mon Sep 17 00:00:00 2001 From: William Blevins Date: Thu, 11 Mar 2021 09:42:14 -0500 Subject: [PATCH 13/22] Simplify how full-version-label test gets the eosio VERSION_HASH. --- tests/full-version-label.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/full-version-label.sh b/tests/full-version-label.sh index d72fb43f071..8fc1176d9e4 100755 --- a/tests/full-version-label.sh +++ b/tests/full-version-label.sh @@ -51,7 +51,7 @@ if [[ -z "$EXPECTED" ]]; then ls -la "$EOSIO_ROOT/build" exit 1 fi -VERSION_HASH=$(grep -Irn version_hash $EOSIO_ROOT/build/libraries/version | grep std::string | sed 's/^.\+"\([a-f0-9]\+\)".\+$/\1/') +VERSION_HASH=$BUILDKITE_COMMIT if [[ -z "$VERSION_HASH" ]]; then echo 'No version hash found.' exit 1 From b4453e9c99c29d63285c07b615acdaf10e7107c9 Mon Sep 17 00:00:00 2001 From: William Blevins Date: Thu, 11 Mar 2021 11:47:40 -0500 Subject: [PATCH 14/22] Updating print-build-info to get data from pinned build scripts. --- tests/print-build-info.sh | 92 +++++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 43 deletions(-) diff --git a/tests/print-build-info.sh b/tests/print-build-info.sh index 92e97d2e072..b38549fb50a 100755 --- a/tests/print-build-info.sh +++ b/tests/print-build-info.sh @@ -1,59 +1,65 @@ #!/bin/bash -# The purpose of this test is to ensure that the output of the "nodeos --print-build-info" command matches the version string defined by our CMake files -echo '##### Nodeos Version Label Test #####' +# The purpose of this test is to ensure that the output of the "nodeos --print-build-info" command. +echo '##### Nodeos Print Build Info Test #####' # orient ourselves [[ "$EOSIO_ROOT" == '' ]] && EOSIO_ROOT=$(echo $(pwd)/ | grep -ioe '.*/eos/') [[ "$EOSIO_ROOT" == '' ]] && EOSIO_ROOT=$(echo $(pwd)/ | grep -ioe '.*/EOSIO/eosio/') [[ "$EOSIO_ROOT" == '' ]] && EOSIO_ROOT=$(echo $(pwd)/ | grep -ioe '.*/build/' | sed 's,/build/,,') echo "Using EOSIO_ROOT=\"$EOSIO_ROOT\"." -# determine expected value -BUILD_VARS="$EOSIO_ROOT/scripts/.build_vars" -if [[ -f "$BUILD_VARS" ]]; then - echo "Parsing \"$BUILD_VARS\"..." - $(cat $BUILD_VARS | grep -ie 'export BOOST_VERSION_MAJOR' | cut -d '(' -f 2 | cut -d ')' -f 1 | awk '{print $1" "$2}') - $(cat $BUILD_VARS | grep -ie 'export BOOST_VERSION_MINOR' | cut -d '(' -f 2 | cut -d ')' -f 1 | awk '{print $1" "$2}') - $(cat $BUILD_VARS | grep -ie 'export BOOST_VERSION_PATCH' | cut -d '(' -f 2 | cut -d ')' -f 1 | awk '{print $1" "$2}') - EXPECTED_BOOST_VERSION=$(printf "%d%03d%02d" $BOOST_VERSION_MAJOR $BOOST_VERSION_MINOR $BOOST_VERSION_PATCH) -else - echo 'No build vars available.' + +OUTPUT=$($EOSIO_ROOT/build/bin/nodeos --print-build-info 2>&1) +EXIT_CODE=$? +echo "$OUTPUT" +if [[ $EXIT_CODE -eq 0 ]]; then + echo 'Expected non-zero nodeos exit code.' exit 1 fi -# fail if no expected value was found -if [[ -z "$BOOST_VERSION_MAJOR" || -z "$BOOST_VERSION_MINOR" || -z "$BOOST_VERSION_PATCH" ]]; then - echo 'ERROR: Could not determine expected value for version label!' - set +e - echo "EOSIO_ROOT=\"$EOSIO_ROOT\"" - echo "BUILD_VARS=\"$BUILD_VARS\"" - echo '' - echo "BOOST_VERSION_MAJOR=\"$BOOST_VERSION_MAJOR\"" - echo "BOOST_VERSION_MINOR=\"$BOOST_VERSION_MINOR\"" - echo "BOOST_VERSION_PATCH=\"$BOOST_VERSION_PATCH\"" - echo "EXPECTED_BOOST_VERSION=\"$EXPECTED_BOOST_VERSION\"" - echo '' - echo '$ pwd' - pwd - echo '$ ls -la "$EOSIO_ROOT"' - ls -la "$EOSIO_ROOT" - echo '$ ls -la "$EOSIO_ROOT/build"' - ls -la "$EOSIO_ROOT/build" - exit 1 + +OUTPUT=$(echo "$OUTPUT" | tr -d '\r\n') +OUTPUT=$(echo "$OUTPUT" | sed 's/^.\+JSON://') +OUTPUT=$(echo "$OUTPUT" | sed 's/}.\+$/}/') + +JQ_OUTPUT=$(echo "$OUTPUT" | jq type) +EXIT_CODE=$? +if [[ "$EXIT_CODE" -ne 0 ]]; then + echo "Not valid JSON type." + exit $EXIT_CODE fi -OUTPUT=$($EOSIO_ROOT/build/bin/nodeos --print-build-info 2>&1) -if [[ $? -eq 0 ]]; then - echo 'Expected non-zero nodeos exit code.' +V_ARCH=$(echo "$OUTPUT" | jq '.arch') +echo "ARCH: $V_ARCH" +V_BOOST=$(echo "$OUTPUT" | jq '.boost_version') +echo "BOOST_VERSION: $V_BOOST" +V_COMPILER=$(echo "$OUTPUT" | jq '.compiler') +echo "COMPILER: $V_COMPILER" +V_DEBUG=$(echo "$OUTPUT" | jq '.debug') +echo "DEBUG: $V_DEBUG" +V_OS=$(echo "$OUTPUT" | jq '.os') +echo "OS: $V_OS" + +if [[ -z "$V_ARCH" || -z "$V_BOOST" || -z "$V_COMPILER" || -z "$V_DEBUG" || -z "$V_OS" ]]; then + echo "Missing expected build info key(s)." exit 1 fi -JSON=$(echo $OUTPUT | tr -d '\r\n' | sed 's/^.\+ JSON: \({ .\+ }\).\+$/\1/') -ACTUAL_BOOST_VERSION=$(echo $JSON | sed 's/^.\+"boost_version": \([0-9]\+\).\+$/\1/') +if [[ "$PLATFORM_TYPE" == "pinned" ]]; then + if [[ -z "$IMAGE_TAG" ]]; then + echo "Missing IMAGE_TAG variable." + exit 1 + fi + FILE=$(ls $EOSIO_ROOT/.cicd/platforms/pinned/$IMAGE_TAG* | head) + BOOST=$(cat $FILE | grep boost | tr -d '\r\n' | sed 's/^.\+boost_\([0-9_]\+\) .\+$/\1/' | head) + BOOST_MAJOR=$(echo $BOOST | sed 's/^\([0-9]\)\+_[0-9]\+_[0-9]\+$/\1/') + BOOST_MINOR=$(echo $BOOST | sed 's/^[0-9]\+_\([0-9]\+\)_[0-9]\+$/\1/') + BOOST_PATCH=$(echo $BOOST | sed 's/^[0-9]\+_[0-9]\+_\([0-9]\)\+$/\1/') + E_BOOST=$(printf "%d%03d%02d" $BOOST_MAJOR $BOOST_MINOR $BOOST_PATCH) -echo "Expecting boost version \"$EXPECTED_BOOST_VERSION\"..." -if [[ "$EXPECTED_BOOST_VERSION" == "$ACTUAL_BOOST_VERSION" ]]; then - echo "Passed with \"$ACTUAL_BOOST_VERSION\"." - exit 0; + echo "Verifying boost version: \"$E_BOOST\" == \"$V_BOOST\"." + if [[ "$E_BOOST" != "$V_BOOST" ]]; then + echo "Expected boost version \"$E_BOOST\" does not match actual \"$V_BOOST\"." + exit 1 + fi fi -echo 'Failed!' -echo "\"$EXPECTED_BOOST_VERSION\" != \"$ACTUAL_BOOST_VERSION\"" -exit 1 +echo "Validation of build info complete." +exit 0 From e4a7c9075d1c935d26d1ca419f08593978765872 Mon Sep 17 00:00:00 2001 From: William Blevins Date: Thu, 11 Mar 2021 17:47:28 -0500 Subject: [PATCH 15/22] Anka fixes for sed weirdness. --- tests/print-build-info.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/print-build-info.sh b/tests/print-build-info.sh index b38549fb50a..ea9fdc448ff 100755 --- a/tests/print-build-info.sh +++ b/tests/print-build-info.sh @@ -16,8 +16,8 @@ if [[ $EXIT_CODE -eq 0 ]]; then fi OUTPUT=$(echo "$OUTPUT" | tr -d '\r\n') -OUTPUT=$(echo "$OUTPUT" | sed 's/^.\+JSON://') -OUTPUT=$(echo "$OUTPUT" | sed 's/}.\+$/}/') +OUTPUT=$(echo "$OUTPUT" | sed -E 's/^.+JSON://') +OUTPUT=$(echo "$OUTPUT" | sed -E 's/}.+$/}/') JQ_OUTPUT=$(echo "$OUTPUT" | jq type) EXIT_CODE=$? @@ -48,10 +48,10 @@ if [[ "$PLATFORM_TYPE" == "pinned" ]]; then exit 1 fi FILE=$(ls $EOSIO_ROOT/.cicd/platforms/pinned/$IMAGE_TAG* | head) - BOOST=$(cat $FILE | grep boost | tr -d '\r\n' | sed 's/^.\+boost_\([0-9_]\+\) .\+$/\1/' | head) - BOOST_MAJOR=$(echo $BOOST | sed 's/^\([0-9]\)\+_[0-9]\+_[0-9]\+$/\1/') - BOOST_MINOR=$(echo $BOOST | sed 's/^[0-9]\+_\([0-9]\+\)_[0-9]\+$/\1/') - BOOST_PATCH=$(echo $BOOST | sed 's/^[0-9]\+_[0-9]\+_\([0-9]\)\+$/\1/') + BOOST=$(cat $FILE | grep boost | tr -d '\r\n' | sed -E 's/^.+boost_([0-9]+_[0-9]+_[0-9]+).+$/\1/' | head) + BOOST_MAJOR=$(echo $BOOST | sed -E 's/^([0-9])+_[0-9]+_[0-9]+$/\1/') + BOOST_MINOR=$(echo $BOOST | sed -E 's/^[0-9]+_([0-9]+)_[0-9]+$/\1/') + BOOST_PATCH=$(echo $BOOST | sed -E 's/^[0-9]+_[0-9]+_([0-9])+$/\1/') E_BOOST=$(printf "%d%03d%02d" $BOOST_MAJOR $BOOST_MINOR $BOOST_PATCH) echo "Verifying boost version: \"$E_BOOST\" == \"$V_BOOST\"." From 79cffb222d3b6047320ab34607d181a4868d6cbe Mon Sep 17 00:00:00 2001 From: William Blevins Date: Fri, 12 Mar 2021 12:46:17 -0500 Subject: [PATCH 16/22] Updates per code review request. --- tests/full-version-label.sh | 6 +----- tests/print-build-info.sh | 1 + 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/tests/full-version-label.sh b/tests/full-version-label.sh index 8fc1176d9e4..663c4e60c59 100755 --- a/tests/full-version-label.sh +++ b/tests/full-version-label.sh @@ -51,11 +51,7 @@ if [[ -z "$EXPECTED" ]]; then ls -la "$EOSIO_ROOT/build" exit 1 fi -VERSION_HASH=$BUILDKITE_COMMIT -if [[ -z "$VERSION_HASH" ]]; then - echo 'No version hash found.' - exit 1 -fi +[[ -z "$BUILDKITE_COMMIT" ]] && VERSION_HASH="$(git rev-parse HEAD 2>/dev/null || :)" || VERSION_HASH=$BUILDKITE_COMMIT EXPECTED=$EXPECTED-$VERSION_HASH echo "Expecting \"$EXPECTED\"..." # get nodeos version diff --git a/tests/print-build-info.sh b/tests/print-build-info.sh index ea9fdc448ff..a5d20214338 100755 --- a/tests/print-build-info.sh +++ b/tests/print-build-info.sh @@ -1,5 +1,6 @@ #!/bin/bash # The purpose of this test is to ensure that the output of the "nodeos --print-build-info" command. +# This includes verifying valid output in JSON shape and checking parameters (only boost for now). echo '##### Nodeos Print Build Info Test #####' # orient ourselves [[ "$EOSIO_ROOT" == '' ]] && EOSIO_ROOT=$(echo $(pwd)/ | grep -ioe '.*/eos/') From e1ddda9cb91573381407f15993649dce11dbabc4 Mon Sep 17 00:00:00 2001 From: William Blevins Date: Fri, 12 Mar 2021 12:46:40 -0500 Subject: [PATCH 17/22] Ensure that Anka Unit Tests have expected flags. --- .cicd/generate-pipeline.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index ba9ed3e21b2..9df96b23b0f 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -223,6 +223,9 @@ EOF - 'registry_2' - EOSIO/skip-checkout#v0.1.1: cd: ~ + env: + IMAGE_TAG: $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) + PLATFORM_TYPE: $PLATFORM_TYPE agents: "queue=mac-anka-node-fleet" retry: manual: From 0a88965efc622f7fad5841daa921dbdbe16e3a6e Mon Sep 17 00:00:00 2001 From: William Blevins Date: Mon, 15 Mar 2021 13:40:43 -0400 Subject: [PATCH 18/22] Set explicit fail on bad command. --- tests/full-version-label.sh | 1 + tests/print-build-info.sh | 12 +++++------- tests/version-label.sh | 1 + 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/full-version-label.sh b/tests/full-version-label.sh index 663c4e60c59..2a988980252 100755 --- a/tests/full-version-label.sh +++ b/tests/full-version-label.sh @@ -1,4 +1,5 @@ #!/bin/bash +set -eo pipefail # The purpose of this test is to ensure that the output of the "nodeos --full-version" command matches the version string defined by our CMake files echo '##### Nodeos Full Version Label Test #####' # orient ourselves diff --git a/tests/print-build-info.sh b/tests/print-build-info.sh index a5d20214338..79195e9603d 100755 --- a/tests/print-build-info.sh +++ b/tests/print-build-info.sh @@ -1,4 +1,5 @@ #!/bin/bash +set -eo pipefail # The purpose of this test is to ensure that the output of the "nodeos --print-build-info" command. # This includes verifying valid output in JSON shape and checking parameters (only boost for now). echo '##### Nodeos Print Build Info Test #####' @@ -8,13 +9,10 @@ echo '##### Nodeos Print Build Info Test #####' [[ "$EOSIO_ROOT" == '' ]] && EOSIO_ROOT=$(echo $(pwd)/ | grep -ioe '.*/build/' | sed 's,/build/,,') echo "Using EOSIO_ROOT=\"$EOSIO_ROOT\"." -OUTPUT=$($EOSIO_ROOT/build/bin/nodeos --print-build-info 2>&1) -EXIT_CODE=$? -echo "$OUTPUT" -if [[ $EXIT_CODE -eq 0 ]]; then - echo 'Expected non-zero nodeos exit code.' - exit 1 -fi +exec 9>&1 # enable tee to write to STDOUT as a file +PRINT_BUILD_INFO="$EOSIO_ROOT/build/bin/nodeos --print-build-info 2>&1 | tee >(cat - >&9) || :" +echo "$ $PRINT_BUILD_INFO" +OUTPUT="$(eval $PRINT_BUILD_INFO)" OUTPUT=$(echo "$OUTPUT" | tr -d '\r\n') OUTPUT=$(echo "$OUTPUT" | sed -E 's/^.+JSON://') diff --git a/tests/version-label.sh b/tests/version-label.sh index 2add83d7ebc..769b8f60c1e 100755 --- a/tests/version-label.sh +++ b/tests/version-label.sh @@ -1,4 +1,5 @@ #!/bin/bash +set -eo pipefail # The purpose of this test is to ensure that the output of the "nodeos --version" command matches the version string defined by our CMake files echo '##### Nodeos Version Label Test #####' # orient ourselves From 19a1268c265aaacf3e6f656ca2d059f7aad83177 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Mon, 15 Mar 2021 15:58:06 -0400 Subject: [PATCH 19/22] Move eosio-resume-from-state documentation into a readme file --- pipeline.jsonc | 1 + 1 file changed, 1 insertion(+) diff --git a/pipeline.jsonc b/pipeline.jsonc index 2c52abae182..b809b704ff3 100644 --- a/pipeline.jsonc +++ b/pipeline.jsonc @@ -35,6 +35,7 @@ "170=v1.7.0" ] }, + // eosio-resume-from-state documentation: https://github.com/EOSIO/auto-eks-sync-nodes/blob/master/pipelines/eosio-resume-from-state/README.md "eosio-resume-from-state": { "test": From 34963cf398a16f62ec86ca6ddf254fc5192394d2 Mon Sep 17 00:00:00 2001 From: Matt Witherspoon <32485495+spoonincode@users.noreply.github.com> Date: Mon, 15 Mar 2021 21:02:36 -0400 Subject: [PATCH 20/22] chainbase submod to v2.0.x head --- libraries/chainbase | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/chainbase b/libraries/chainbase index 1ab47297458..eccb1aaa2fc 160000 --- a/libraries/chainbase +++ b/libraries/chainbase @@ -1 +1 @@ -Subproject commit 1ab472974589c115d9cfd5bb2e6b4d47d8619edc +Subproject commit eccb1aaa2fc51d91d836e7bf4198b006452e7e16 From 0518b52dbac443ae1f1391dbc61cf7279e4a9cb4 Mon Sep 17 00:00:00 2001 From: Jingjun Zhao Date: Wed, 17 Mar 2021 10:01:55 -0400 Subject: [PATCH 21/22] Consolidated Security Fixes for 2.0.11 - Fix issue with account query db that could result in incorrect data or hung processes Co-Authored-By: Bart Wyatt bart.wyatt@block.one Co-Authored-By:Kevin Heifner heifnerk@objectcomputing.com Co-Authored-By:Lin Huang lin.huang@block.one --- plugins/chain_plugin/account_query_db.cpp | 10 +- .../test/test_account_query_db.cpp | 93 +++++++++++++++++++ 2 files changed, 101 insertions(+), 2 deletions(-) diff --git a/plugins/chain_plugin/account_query_db.cpp b/plugins/chain_plugin/account_query_db.cpp index eaea2214e77..7191c571d34 100644 --- a/plugins/chain_plugin/account_query_db.cpp +++ b/plugins/chain_plugin/account_query_db.cpp @@ -244,8 +244,13 @@ namespace eosio::chain_apis { time_iter = decltype(time_iter){time_to_block_num.erase( std::next(time_iter).base() )}; } + auto curr_iter = index.rbegin(); while (!index.empty()) { - const auto& pi = (*index.rbegin()); + if (curr_iter == index.rend()) { + break; + } + + const auto& pi = (*curr_iter); if (pi.last_updated_height < bnum) { break; } @@ -256,7 +261,7 @@ namespace eosio::chain_apis { auto itr = permission_by_owner.find(std::make_tuple(pi.owner, pi.name)); if (itr == permission_by_owner.end()) { // this permission does not exist at this point in the chains history - index.erase(index.iterator_to(pi)); + curr_iter = decltype(curr_iter)( index.erase(index.iterator_to(pi)) ); } else { const auto& po = *itr; @@ -267,6 +272,7 @@ namespace eosio::chain_apis { mutable_pi.threshold = po.auth.threshold; }); add_to_bimaps(pi, po); + ++curr_iter; } } } diff --git a/plugins/chain_plugin/test/test_account_query_db.cpp b/plugins/chain_plugin/test/test_account_query_db.cpp index e0ef730f839..40989cee704 100644 --- a/plugins/chain_plugin/test/test_account_query_db.cpp +++ b/plugins/chain_plugin/test/test_account_query_db.cpp @@ -144,5 +144,98 @@ BOOST_AUTO_TEST_CASE(future_fork_test) { try { } FC_LOG_AND_RETHROW() } +BOOST_AUTO_TEST_CASE(fork_test) { try { + tester node_a(setup_policy::none); + tester node_b(setup_policy::none); + + // instantiate an account_query_db + auto aq_db = account_query_db(*node_a.control); + + //link aq_db to the `accepted_block` signal on the controller + auto c = node_a.control->accepted_block.connect([&](const block_state_ptr& blk) { + aq_db.commit_block( blk); + }); + + // create 10 blocks synced + for (int i = 0; i < 10; i++) { + node_b.push_block(node_a.produce_block()); + } + + // produce a block on node A with a new account and permission + const auto& tester_account = N(tester); + const auto& tester_account2 = N(tester2); + const string role = "first"; + node_a.create_account(tester_account); + node_a.create_account(tester_account2); + + const auto trace_ptr = node_a.push_action(config::system_account_name, updateauth::get_name(), tester_account, fc::mutable_variant_object() + ("account", tester_account) + ("permission", N(role)) + ("parent", "active") + ("auth", authority(node_a.get_public_key(tester_account, role), 5)), 1 + ); + aq_db.cache_transaction_trace(trace_ptr); + const auto trace_ptr2 = node_a.push_action(config::system_account_name, updateauth::get_name(), tester_account2, fc::mutable_variant_object() + ("account", tester_account2) + ("permission", N(role)) + ("parent", "active") + ("auth", authority(node_a.get_public_key(tester_account2, role), 5)), 2 + ); + aq_db.cache_transaction_trace(trace_ptr2); + node_a.produce_block(); + + params pars; + pars.keys.emplace_back(node_a.get_public_key(tester_account, role)); + + const auto pre_results = aq_db.get_accounts_by_authorizers(pars); + BOOST_TEST_REQUIRE(find_account_auth(pre_results, tester_account, N(role)) == true); + + // have node B take over from head-1 and also update permissions + node_b.create_account(tester_account); + node_b.create_account(tester_account2); + + const auto trace_ptr3 = node_b.push_action(config::system_account_name, updateauth::get_name(), tester_account, fc::mutable_variant_object() + ("account", tester_account) + ("permission", N(role)) + ("parent", "active") + ("auth", authority(node_b.get_public_key(tester_account, role), 6)), 1 + ); + aq_db.cache_transaction_trace(trace_ptr3); + const auto trace_ptr4 = node_b.push_action(config::system_account_name, updateauth::get_name(), tester_account2, fc::mutable_variant_object() + ("account", tester_account2) + ("permission", N(role)) + ("parent", "active") + ("auth", authority(node_b.get_public_key(tester_account2, role), 6)), 2 + ); + aq_db.cache_transaction_trace(trace_ptr4); + + // push b's onto a + node_a.push_block(node_b.produce_block()); + + const auto trace_ptr5 = node_b.push_action(config::system_account_name, updateauth::get_name(), tester_account, fc::mutable_variant_object() + ("account", tester_account) + ("permission", N(role)) + ("parent", "active") + ("auth", authority(node_b.get_public_key(tester_account, role), 5)), 3 + ); + aq_db.cache_transaction_trace(trace_ptr5); + const auto trace_ptr6 = node_b.push_action(config::system_account_name, updateauth::get_name(), tester_account2, fc::mutable_variant_object() + ("account", tester_account2) + ("permission", N(role)) + ("parent", "active") + ("auth", authority(node_b.get_public_key(tester_account2, role), 5)), 4 + ); + aq_db.cache_transaction_trace(trace_ptr6); + + node_a.push_block(node_b.produce_block()); + + // ensure the account was forked away + const auto post_results = aq_db.get_accounts_by_authorizers(pars); + + // verify correct account is in results + BOOST_TEST_REQUIRE(post_results.accounts.size() == 1); + + } FC_LOG_AND_RETHROW() } + BOOST_AUTO_TEST_SUITE_END() From 4bc802b37f41d00b396dcb80cedc2fea1189f70a Mon Sep 17 00:00:00 2001 From: Jingjun Zhao Date: Wed, 17 Mar 2021 13:24:08 -0400 Subject: [PATCH 22/22] Bump version to v2.0.11 --- CMakeLists.txt | 2 +- README.md | 12 ++++++------ docs/00_install/00_install-prebuilt-binaries.md | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d01fa392dd3..31c962a89c3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,7 @@ set( CXX_STANDARD_REQUIRED ON) set(VERSION_MAJOR 2) set(VERSION_MINOR 0) -set(VERSION_PATCH 10) +set(VERSION_PATCH 11) #set(VERSION_SUFFIX rc3) if(VERSION_SUFFIX) diff --git a/README.md b/README.md index 77477dd6c12..4027ed9d4cc 100644 --- a/README.md +++ b/README.md @@ -74,13 +74,13 @@ brew remove eosio #### Ubuntu 18.04 Package Install ```sh -wget https://github.com/eosio/eos/releases/download/v2.0.10/eosio_2.0.10-1-ubuntu-18.04_amd64.deb -sudo apt install ./eosio_2.0.10-1-ubuntu-18.04_amd64.deb +wget https://github.com/eosio/eos/releases/download/v2.0.11/eosio_2.0.11-1-ubuntu-18.04_amd64.deb +sudo apt install ./eosio_2.0.11-1-ubuntu-18.04_amd64.deb ``` #### Ubuntu 16.04 Package Install ```sh -wget https://github.com/eosio/eos/releases/download/v2.0.10/eosio_2.0.10-1-ubuntu-16.04_amd64.deb -sudo apt install ./eosio_2.0.10-1-ubuntu-16.04_amd64.deb +wget https://github.com/eosio/eos/releases/download/v2.0.11/eosio_2.0.11-1-ubuntu-16.04_amd64.deb +sudo apt install ./eosio_2.0.11-1-ubuntu-16.04_amd64.deb ``` #### Ubuntu Package Uninstall ```sh @@ -91,8 +91,8 @@ sudo apt remove eosio #### RPM Package Install ```sh -wget https://github.com/eosio/eos/releases/download/v2.0.10/eosio-2.0.10-1.el7.x86_64.rpm -sudo yum install ./eosio-2.0.10-1.el7.x86_64.rpm +wget https://github.com/eosio/eos/releases/download/v2.0.11/eosio-2.0.11-1.el7.x86_64.rpm +sudo yum install ./eosio-2.0.11-1.el7.x86_64.rpm ``` #### RPM Package Uninstall ```sh diff --git a/docs/00_install/00_install-prebuilt-binaries.md b/docs/00_install/00_install-prebuilt-binaries.md index d3d366961c7..882d56d6463 100644 --- a/docs/00_install/00_install-prebuilt-binaries.md +++ b/docs/00_install/00_install-prebuilt-binaries.md @@ -25,13 +25,13 @@ brew remove eosio #### Ubuntu 18.04 Package Install ```sh -wget https://github.com/eosio/eos/releases/download/v2.0.10/eosio_2.0.10-1-ubuntu-18.04_amd64.deb -sudo apt install ./eosio_2.0.10-1-ubuntu-18.04_amd64.deb +wget https://github.com/eosio/eos/releases/download/v2.0.11/eosio_2.0.11-1-ubuntu-18.04_amd64.deb +sudo apt install ./eosio_2.0.11-1-ubuntu-18.04_amd64.deb ``` #### Ubuntu 16.04 Package Install ```sh -wget https://github.com/eosio/eos/releases/download/v2.0.10/eosio_2.0.10-1-ubuntu-16.04_amd64.deb -sudo apt install ./eosio_2.0.10-1-ubuntu-16.04_amd64.deb +wget https://github.com/eosio/eos/releases/download/v2.0.11/eosio_2.0.11-1-ubuntu-16.04_amd64.deb +sudo apt install ./eosio_2.0.11-1-ubuntu-16.04_amd64.deb ``` #### Ubuntu Package Uninstall ```sh @@ -42,8 +42,8 @@ sudo apt remove eosio #### RPM Package Install ```sh -wget https://github.com/eosio/eos/releases/download/v2.0.10/eosio-2.0.10-1.el7.x86_64.rpm -sudo yum install ./eosio-2.0.10-1.el7.x86_64.rpm +wget https://github.com/eosio/eos/releases/download/v2.0.11/eosio-2.0.11-1.el7.x86_64.rpm +sudo yum install ./eosio-2.0.11-1.el7.x86_64.rpm ``` #### RPM Package Uninstall ```sh