Skip to content
This repository has been archived by the owner on Aug 2, 2022. It is now read-only.

EOSIO v2.0.0 Release Notes

Compare
Choose a tag to compare
@blockone-devops blockone-devops released this 10 Jan 22:36
· 5892 commits to master since this release
e19afc8

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)

  • 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) Consolidated Security Fixes for 2.0.0-rc2
  • (#8344) Consolidated Security Fixes for 2.0.0-rc3

Stability bug fixes

  • (#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) Net plugin remove read delays - 2.0
  • (#8099) net_plugin remove sync w/peer check - 2.0
  • (#8120) Net plugin sync fix - 2.0
  • (#8229) Net plugin sync
  • (#8285) Net plugin handshake
  • (#8298) net_plugin lib sync
  • (#8303) net_plugin boost asio error handling
  • (#8305) net_plugin thread protection peer logging variables
  • (#8311) Fix race in fc::message_buffer and move message_buffer_tests to fc.
  • (#8307) reset the new handler

Changes

EOS VM: New High Performance WASM Runtimes (#7974, #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

EOSIO v2.0.x introduces two new consensus protocol upgrade features (or just protocol features for short):

  1. WEBAUTHN_KEY: Adds support for WebAuthn keys and signatures (#7421)
  2. WTMSIG_BLOCK_SIGNATURES: Adds support for weighted threshold multi-signature (WTMsig) authorities for block production (#7404, #8002, #8021)

Both of these features require activation through the privileged preactivate_feature intrinsic. This is typically facilitated by executing the eosio::activate system contract action (requires system contract v1.7.0 or later) via the eosio.msig contract after getting supermajority block producer approval. However, while these protocol features can be activated through coordination of the block producers alone, it is still critical to give sufficient time for all nodes to upgrade to v2.0.x before activating any of the above two protocol features. Activation of any of these two protocol features will immediately fork out any nodes that do not support the protocol features (e.g. any nodes running a version of nodeos earlier than v2.0.x).

Both of the above protocol features only add new behavior to the EOSIO blockchain. They are not expected to change existing behavior in a significant way that would cause existing contracts to break. Existing applications and block explorers are also unlikely to break upon activation of these protocol features, however these new features enable new data structures to be utilized on-chain which applications and especially block explorers need to be prepared to handle. For example, activation of the WEBAUTHN_KEY protocol feature means that an eosio::newaccount or eosio::updateauth action could now include WebAuthn public keys as part of the provided authority. So, an application dealing with these actions (e.g. a general authenticator for EOSIO transactions) will need to be prepared to support the serialization of WebAuthn public keys appearing in a place where a public_key ABI type is expected. Another example is how the activation of the WTMSIG_BLOCK_SIGNATURES protocol feature causes the new_producers field of a block header to always remain empty, even when a proposed producer schedule gets promoted to pending; upon activation of the WTMSIG_BLOCK_SIGNATURES protocol feature, the pending schedule data is instead stored (when present) within the header_extensions of the block header. So, block explorers expecting to show these pending producer schedules to users will need to update their code accordingly. As usual, test networks provide a great environment to try existing contracts, applications, services, etc. with the changes of the above protocol features to determine what breaks and what needs to be updated.

For more details on the WEBAUTH_KEY protocol feature, see the section titled "WebAuthn Support". For more details on the WTMSIG_BLOCK_SIGNATURES protocol feature, see the section titled "Weighted Threshold Multi-signature (WTMsig) Block Signing Authorities".

WebAuthn Support (#7421)

WebAuthn support within EOSIO is now available for developers to begin testing WebAuthn based transaction signing in their EOSIO applications. Private EOSIO chains can start using WebAuthn based signatures with this release. We also anticipate releasing additional demos which will attempt to outline how Dapp authors can leverage WebAuthn for contract actions meriting higher levels of security as a second factor authorization mechanism.

Weighted Threshold Multi-Signature Block Signing Authorities (#7403)

Block producers must be able to provide high availability for their core service of running the blockchain (aka producing blocks). A common approach to achieve this is redundant infrastructure that efficiently maintains block production, in the event of a hardware malfunction or networking issues. Weighted Threshold Multi-Signature Block Production is the first of many features that seek to provide block producers with a complete high availability solution.

Current consensus rules require exactly one cryptographic block signing key per block producer. This key, whether stored on disk and loaded via software or protected with a hardware wallet, represents a single-point-of-failure for the operations of a block producer. If that key is lost or access to the hardware module that contains it is temporarily unavailable, the block producer has no choice but to drop blocks, impacting the whole network’s throughput.

To improve the security and scalability of block production, weighted threshold multi-signature (WTMsig) block signing authorities provides a permission layer that allows for multiple block signing keys in a flexible scheme that will enable redundant block signing infrastructure to exist without sharing any sensitive data.

An updated version of the system contract is required to enable block producers to use WTMsig block signing authorities. Version v1.9.0-rc1 of eosio.contracts adds a new regproducer2 action to the eosio.system contract which enables a block producer candidate to register a WTMsig block signing authority. (That version of the system contract can only be deployed on an EOSIO chain that has activated the WTMSIG_BLOCK_SIGNATURES protocol feature.) More details are available at: #7404, #8002, #8021.

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, #7598, #7392, #7786 and related optimizations are available in: #7686, #7785, #7721, #7825, and #7756).

Chain API Enhancements (#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 and 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

EOSIO v2.0.x has made changes to the state database that prevent it from working with existing state databases in v1.8.x and earlier. So upgrading from earlier versions of EOSIO requires importing the state from a portable snapshot.

Furthermore, the changes to the state database necessitate a version bump in the portable snapshots generated by EOSIO v2.0.x from v2 to v3. However, unlike the upgrade of portable snapshot versions in EOSIO v1.8.x from v1 to v2, EOSIO v2.0.x is able to import v2 portable snapshots. This means that it is not necessary to replay the blockchain from genesis to upgrade from EOSIO v1.8.x to v2.0.x. (One exception is if the operator of the node is using the deprecated history_plugin and wishes to preserve that history.)

Finally, EOSIO v2.0.x has also upgraded the version of the irreversible blocks log to v3. However, older versions of the blocks log are still supported, so there is no need to do anything special to handle existing blocks log files.

Upgrading from v1.8.x

If the node uses the deprecated history_plugin (and the operator of the node wishes to preserve this history), the only option to upgrade is to replay the blockchain from genesis.

Users of the state_history_plugin (SHiP) do not need to replay from genesis because the state history logs are portable and contain versioned data structures within. However, upgrading a node that uses state history without a full replay means that the state history log will contain a mix of versions for any upgrade types. For example, the changes in v2.0.x modify the global_property_object in the database state and so the state history log could contain a global_property_object_v0 type (for the part of the history before the local node upgrade) and a global_property_object_v1 type (for the part of the history after the local node upgrade). This should not cause problems for any history fillers that have been updated to support both versions of the type. However, operators should be aware that this can lead to the log file contents being slightly different across different nodes even if they all start and stop at the same blocks and have not enabled trace-history-debug-mode. (Replaying a v2.0.x node with state_history_plugin enabled from genesis would guarantee that the state history logs do not contain the global_property_object_v0 type.)

The following instructions should be followed to upgrade nodeos from v1.8.x to v2.0.x without a full replay (after making appropriate backup copies):

  1. Obtain a compatible portable snapshot of the state. A v2 or v3 portable snapshot can be downloaded from a trusted source. Alternatively, one can use an existing v1.8.x node to generate a v2 portable snapshot by launching nodeos with --read-mode=irreversible --plugin=eosio::producer_api_plugin command-line options and then using the /v1/producer/create_snapshot RPC endpoint to generate a portable snapshot (e.g. run the command curl -X POST http:/127.0.0.1:8888/v1/producer/create_snapshot -d '{}' | jq).
  2. Shut down nodeos and delete the blocks/reversible and state sub-directories within the data directory.
  3. Launch nodeos v2.0.x from the generated snapshot using the --snapshot command line option and give it time to import the snapshot while starting up (this could take several minutes). (Subsequent launches of nodeos should not use the --snapshot option.)

Upgrading from v2.0.0-rc1, v2.0.0-rc2, or v2.0.0-rc3

Node operators should consider upgrading v2.0.0-rc1, v2.0.0-rc2, and v2.0.0-rc3 nodes to v2.0.0 as soon as possible. They can follow normal upgrade procedures for the upgrade. There should be no need to do a replay or import from a snapshot.

Deprecation and Removal Notices

WAVM removed (#8407)

The WAVM WebAssembly runtime was deprecated several months ago with the release of EOSIO 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 for the currently active set of deprecation notices.

Other Changes

  • (#7247) Change default log level from debug to info. - develop
  • (#7238) Remove unused cpack bits; these are not being used
  • (#7248) Pass env to build script installs
  • (#6913) Block log util#6884
  • (#7249) Http configurable logging
  • (#7255) Move Test Metrics Code to Agent
  • (#7217) Created Universal Pipeline Configuration File
  • (#7264) use protocol-features-sync-nodes branch for LRT pipeline - develop
  • (#7207) Optimize mongodb plugin
  • (#7276) correct net_plugin's win32 check
  • (#7279) build unittests in c++17, not c++14
  • (#7282) Fix cleos REX help - develop
  • (#7284) remove boost asio string_view workaround
  • (#7286) chainbase uniqueness violation fixes
  • (#7287) restrict range of error codes that contracts are allowed to emit
  • (#7278) simplify openssl setup in cmakelists
  • (#7288) Changes for Boost 1_70_0
  • (#7285) Use of Mac Anka Fleet instead of iMac fleet
  • (#7293) Update EosioTester.cmake.in (develop)
  • (#7290) Block log util test
  • (#6845) Net plugin multithread
  • (#7295) Modify the pipeline control file for triggered builds
  • (#7305) Eliminating trigger to allow for community PR jobs to run again
  • (#7306) when unable to find mongo driver stop cmake
  • (#7309) add debug_mode to state history plugin - develop
  • (#7310) Switched to git checkout of commit + supporting forked repo
  • (#7291) add DB guard check for nodeos_under_min_avail_ram.py
  • (#7240) add signal tests
  • (#7315) Add REX balance info to cleos get account command
  • (#7304) transaction_metadata thread safety
  • (#7321) Only call init if system contract is loaded
  • (#7275) remove win32 from CMakeLists.txt
  • (#7322) Fix under min avail ram test
  • (#7327) fix block serialization order in fork_database::close - develop
  • (#7331) Use debug level logging for --verbose
  • (#7325) Look in both lib and lib64 for CMake modules when building EOSIO Tester
  • (#7337) correct signed mismatch warning in http_plugin
  • (#7348) Anka develop fix
  • (#7320) Add test for various chainbase objects which contain fields that require dynamic allocation
  • (#7350) correct signed mismatch warning in chain controller
  • (#7356) Fixes for Boost 1.70 to compile with our current CMake
  • (#7359) update to use boost 1.70
  • (#7341) Add Version Check for Package Builder
  • (#7367) Fix exception #
  • (#7342) Update to appbase max priority on main thread
  • (#7336) (softfloat sync) clean up strict-aliasing rules warnings
  • (#7371) Adds configuration for replay test pipeline
  • (#7370) Fix -b flag for cleos get table subcommand
  • (#7369) Add boost/asio/io_context.hpp header to transaction_metadata.hpp for branch develop
  • (#7385) Ship: port #7383 and #7384 to develop
  • (#7377) Allow aliases of variants in ABI
  • (#7316) Explicit name
  • (#7389) Fix develop merge
  • (#7379) transaction deadline cleanup
  • (#7380) Producer incoming-transaction-queue-size-mb
  • (#7391) Allow for EOS clone to be a submodule
  • (#7390) port db_modes_test to python
  • (#7399) throw error if trying to create non R1 key on SE or YubiHSM wallet
  • (#7394) (fc sync) static_variant improvements & fix certificate trust when trust settings is empty
  • (#7405) Centralize EOSIO Pipeline
  • (#7401) state database versioning
  • (#7392) Trx blk connections
  • (#7433) use imported targets for boost & cleanup fc/appbase/chainbase standalone usage
  • (#7434) (chainbase) don’t keep file mapping active when in heap/locked mode
  • (#7432) No need to start keosd for cleos command which doesn't need keosd
  • (#7430) Add option for cleos sign subcommand to ask keosd for signing
  • (#7425) txn json to file
  • (#7440) Fix #7436 SIGSEGV - develop
  • (#7461) Name txn_test_gen threads
  • (#7442) Enhance cleos error message when parsing JSON argument
  • (#7451) set initial costs for expensive parallel unit tests
  • (#7366) BATS bash tests for build scripts + various other improvements and fixes
  • (#7467) Pipeline Configuration File Update
  • (#7476) Various improvements from pull/7458
  • (#7488) Various BATS fixes to fix CI/CD
  • (#7489) Fix Incorrectly Resolved and Untested Merge Conflicts in Pipeline Configuration File
  • (#7474) fix copy_bin() for win32 builds
  • (#7478) remove stray SIGUSR1
  • (#7475) guard unix socket support in http_plugin depending on platform support
  • (#7492) Enabled helpers for unpinned builds.
  • (#7482) Let delete-all-blocks option to only remove the contents instead of the directory itself
  • (#7502) [develop] Versioned images (prep for hashing)
  • (#7507) use create_directories in initialize_protocol_features - develop
  • (#7484) return zero exit status for nodeos version, help, fixed reversible, and extracted genesis
  • (#7468) Versioning library
  • (#7486) [develop] Ensure we're in repo root
  • (#7515) Custom path support for eosio installation.
  • (#7516) on supported platforms build with system clang by default
  • (#7519) [develop] Removed lrt from pipeline.jsonc
  • (#7525) [develop] Readlink quick fix and BATS test fixes
  • (#7532) [develop] BASE IMAGE Fixes
  • (#7535) Add -j option to print JSON format for cleos get currency balance.
  • (#7537) connection via listen needs to start in connecting mode
  • (#7497) properly add single quotes for parameter with spaces in logs output
  • (#7544) restore usage of devtoolset-8 on centos7
  • (#7547) Sighup logging
  • (#7421) WebAuthn key and signature support
  • (#7572) [develop] Don't create mongo folders unless ENABLE_MONGO is true
  • (#7576) [develop] Better found/not found messages for clarity
  • (#7545) add nodiscard attribute to tester's push_action
  • (#7581) Update to fc with logger fix
  • (#7558) [develop] Ability to set *_DIR on CLI
  • (#7553) [develop] CMAKE version check before dependencies are installed
  • (#7584) fix hash<>::result_type deprecation spam
  • (#7588) [develop] Various BATS test fixes
  • (#7578) [develop] -i support for relative paths
  • (#7449) add accurate checktime timer for macOS
  • (#7591) [develop] SUDO_COMMAND -> NEW_SUDO_COMMAND (base fixed)
  • (#7594) [develop] Install location fix
  • (#7586) Modify transaction_ack to process bcast_transaction and rejected_transaction correctly
  • (#7585) Enhance cleos to enable new RPC send_transaction
  • (#7599) Use updated sync nodes for sync tests
  • (#7608) indicate in brew bottle mojave is required
  • (#7615) Change hardcoded currency symbol in testnet.template into a variable
  • (#7610) use explicit billing for unapplied and deferred transactions in tester - develop
  • (#7621) Call resolve on connection strand
  • (#7623) additional wasm unittests around max depth
  • (#7607) Improve nodeos make-index speeds
  • (#7598) Net plugin block id notification
  • (#7624) bios-boot-tutorial.py: bugfix, SYS hardcoded instead of using command…
  • (#7632) [develop] issues/7627: Install script missing !
  • (#7634) fix fc::temp_directory usage in tester
  • (#7642) remove stale warning about dirty metadata
  • (#7640) fix win32 build of eosio-blocklog
  • (#7643) remove unused dlfcn.h include; troublesome for win32
  • (#7645) add eosio-blocklog to base install component
  • (#7651) Port #7619 to develop
  • (#7652) remove raise() in keosd in favor of simple appbase quit (de-posix it)
  • (#7453) Refactor unapplied transaction queue
  • (#7657) (chainbase sync) print name of DB causing failure condition & win32 fixes
  • (#7663) Fix path error in cleos set code/abi
  • (#7633) Small optimization to move more trx processing off application thread
  • (#7662) fix fork resolve in special case
  • (#7667) fix 7600 double confirm after changing sign key
  • (#7625) Fix flaky tests - mainly net_plugin fixes
  • (#7672) Fix memory leak
  • (#7676) Remove unused code
  • (#7677) Commas go outside the quotes...
  • (#7675) wasm unit test with an imported function as start function
  • (#7678) Issue 3516 fix
  • (#7404) wtmsig block production
  • (#7686) Unapplied transaction queue performance
  • (#7685) Integration Test descriptions and timeout fix
  • (#7691) Fix nodeos 1.8.x to > 1.7.x peering issue (allowed-connection not equal to "any")
  • (#7250) wabt: reduce redundant memset
  • (#7702) fix producer_plugin watermark tracking - develop
  • (#7477) Fix abi_serializer to encode optional non-built_in types
  • (#7703) return flat_multimap from transaction::validate_and_extract_extensions
  • (#7720) Fix bug to make sed -i work properly on Mac
  • (#7716) [TRAVIS POC] develop Support passing in JOBS for docker/kube multi-tenancy
  • (#7707) add softfloat only injection mode
  • (#7725) Fix increment in test
  • (#7729) Fix db_modes_test
  • (#7734) Fix db exhaustion
  • (#7487) Enable extended_asset to be encoded from array
  • (#7736) unit test ensuring that OOB table init allowed on set code; fails on action
  • (#7744) (appbase) update to get non-option fix & unique_ptr tweak
  • (#7746) (chainbase sync) fix build with boost 1.71
  • (#7721) Improve signature recovery
  • (#7757) remove stale license headers
  • (#7756) block_log performance improvement, and misc.
  • (#7654) exclusively use timer for checktime
  • (#7763) Use fc::cfile instead of std::fstream for state_history
  • (#7770) Net plugin sync fix
  • (#7717) Support for v2 snapshots with pending producer schedules
  • (#7795) Hardcode initial eosio ABI: #7794
  • (#7792) Restore default logging if logging.json is removed when SIGHUP.
  • (#7791) Producer plugin
  • (#7786) Remove redundant work from net plugin
  • (#7785) Optimize block log usage
  • (#7812) Add IMPORTANT file and update README - develop
  • (#7820) rename IMPORTANT to IMPORTANT.md - develop
  • (#7809) Correct cpu_usage calculation when more than one signature
  • (#7803) callback support for checktime timer expiry
  • (#7838) Bandwidth - develop
  • (#7845) Deprecate network version match - develop
  • (#7700) [develop] Travis CI + Buildkite 3.0
  • (#7825) apply_block optimization
  • (#7849) Increase Contracts Builder Timeout + Fix $SKIP_MAC
  • (#7854) Net plugin sync
  • (#7860) [develop] Ensure release flag is added to all builds.
  • (#7873) [develop] Mac Builder Boost Fix
  • (#7868) cleos get actions
  • (#7774) update WAVM to be compatible with LLVM 7 through 9
  • (#7864) Add output of build info on nodeos startup
  • (#7881) [develop] Ensure Artfacts Upload on Failed Tests
  • (#7886) promote read-only disablement log from net_plugin to warn level
  • (#7887) print unix socket path when there is an error starting unix socket server
  • (#7889) Update docker builder tag
  • (#7891) Fix exit crash - develop
  • (#7877) Create Release Build Test
  • (#7883) Add Support for eosio-test-stability Pipeline
  • (#7903) adds support for builder priority queues
  • (#7853) change behavior of recover_key to better support variable length keys
  • (#7901) [develop] Add Trigger for LRTs and Multiversion Tests Post PR
  • (#7914) [Develop] Forked PR fix
  • (#7923) return error when attempting to remove key from YubiHSM wallet
  • (#7910) [Develop] Updated anka plugin, added failover for registries, and added sleep fix for git clone/networking bug
  • (#7926) Better error check in test
  • (#7919) decouple wavm runtime from being required & initial support for platform specific wasm runtimes
  • (#7927) Fix Release Build Type for macOS on Travis CI
  • (#7931) Fix intermittent crash on exit when port already in use - develop
  • (#7930) use -fdiagnostics-color=always even for clang
  • (#7933) [Develop] Support all BK/Travis cases in Submodule Regression Script
  • (#7943) Change eosio-launcher enable-gelf-logging argument default to false.
  • (#7946) Forked chain test error statement - develop
  • (#7948) net_plugin correctly handle unknown_block_exception - develop
  • (#7954) remove bad semicolon (in unused but compiled code)
  • (#7952) Unable to Create Block Log Index #7865
  • (#7953) Refactor producer plugin start_block - develop
  • (#7841) 7646 chain id in blog
  • (#7958) [develop] Fix Mac builds on Travis
  • (#7962) set immutable chain_id during construction of controller
  • (#7957) Upgrade to Boost 1.71.0
  • (#7971) Net plugin unexpected block - develop
  • (#7967) support unix socket HTTP server for nodeos
  • (#7947) Function body code size test
  • (#7955) EOSIO WASM Spec tests
  • (#7978) use the LLVM 7 library provided by SCL on CentOS7
  • (#7983) port consolidated security fixes for 1.8.4 to develop; add unit tests associated with consolidated security fixes for 1.8.1
  • (#7986) Remove unnecessary comment
  • (#7985) more bug fixes with chain_id in state changes
  • (#7974) Experimental/wb2 jit
  • (#7989) Correct designator order for field of get_table_rows_params
  • (#7992) move wasm_allocator from wasm_interface to controller
  • (#7995) new timeout to handle when two jobs on the same host are maxing their…
  • (#7993) update eos-vm to latest develop, fix issues with instantiation limit …
  • (#7991) missing block log chain id unit tests
  • (#8001) Net plugin trx progress - develop
  • (#8003) update eos-vm ref
  • (#7988) Net plugin version match
  • (#8004) bump version
  • (#7975) EOS-VM Optimized Compiler
  • (#8007) disallow WAVM with EOS-VM OC
  • (#8010) Change log level of index write
  • (#8009) pending incoming order on subjective failure
  • (#8013) ensure eos-vm-oc headers get installed
  • (#8008) Increase stability of nodeos_under_min_avail_ram.py - develop
  • (#8015) two fixes for eosio tester cmake modules
  • (#8019) [Develop] Change submodule script to see stderr for git commands
  • (#8014) Retain persisted trx until expired on speculative nodes
  • (#8024) Add optional ability to disable WASM Spec Tests
  • (#8023) Make subjective_cpu_leeway a config option
  • (#8025) Fix build script LLVM symlinking
  • (#8026) update EOS VM Optimized Compiler naming convention
  • (#8012) 7939 trim block log v3 support
  • (#8029) update eos-vm ref and install eos-vm license
  • (#8033) net_plugin better error for unknown block
  • (#8034) EOS VM OC license updates
  • (#8042) [2.0.x] dockerhub | eosio/producer -> eosio/ci
  • (#8050) Add greylist limit - v2.0.x
  • (#8060) #8054: fix commas in ship abi
  • (#8072) nodeos & keosd version reporting - 2.0
  • (#8071) Update cleos to support new producer schedule - 2.0
  • (#8070) don't rebuild llvm unnecessarily during pinned builds - 2.0
  • (#8074) [2.0.x] Upgrade mac anka template to 10.14.6
  • (#8076) Handle cases where version_* not specified in CMakeLists.txt - 2.0
  • (#8088) [2.0.x] Linux build fleet update
  • (#8091) report block extensions_type contents in RPC and eosio-blocklog tool - 2.0
  • (#8105) Modify --print-default-config to exit with success - 2.0
  • (#8113) [2.0.x] WASM Spec Test Step in CI
  • (#8114) [2.0.x] Mac OSX steps need a min of 1 hour
  • (#8127) [2.0.x] Move the ensure step into the build step, eliminating the need for templaters
  • (#8144) fix pinned builds on fresh macOS install - 2.0
  • (#8149) [2.0.x] CI platform directories
  • (#8155) Post State history callback as medium priority - 2.0
  • (#8173) ensure GMP is always dynamically linked - 2.0
  • (#8175) [2.0.x] Unpinned and WASM test fixes
  • (#8168) add harden flags to cicd & pinned builds - 2.0
  • (#8180) [2.0.x] 10 second sleep to address heavy usage wait-network bug in Anka
  • (#8192) Reduce logging - 2.0
  • (#8367) Add Sync from Genesis Test
  • (#8363) Fix linking OpenSSL (branch release/2.0.x)
  • (#8383) Escape BUILDKITE_COMMIT to generate tag properly
  • (#8385) Propagate exceptions out push_block - 2.0
  • (#8391) Add eosio-resume-from-state Test
  • (#8393) Make multiversion protocol test conditional.
  • (#8402) fix EOS VM OC monitor thread name - 2.0
  • (#8406) [2.0.x] Modified Amazon and Centos to use yum install ccache
  • (#8414) Add better logging of exceptions in emit - 2.0
  • (#8328) Fix bios boot python script due to 2.0.x changes
  • (#8293) Add nodeos/cleos/keosd docs from develop, update README
  • (#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:

Disclaimer: All repositories and other materials are provided subject to this IMPORTANT notice and you must familiarize yourself with its terms. The notice contains important information, limitations and restrictions relating to our software, publications, trademarks, third-party resources, and forward-looking statements. By accessing any of our repositories and other materials, you accept and agree to the terms of the notice.