EOSIO v2.1.0 Release Notes

This release is the stable release of EOSIO v2.1.0 and contains features, security, stability and miscellaneous updates.

Security Updates

Consolidated Security Updates for v2.1.0 (#9869)

  • Fixes to packed_transaction cache
  • Transaction account fail limit refactor

Note: These security updates are relevant to all nodes on EOSIO blockchain networks.

Stability Updates

  • (#9828) Fix packed transaction version conversion -- Release 2.1.x
  • (#9811) Fix the truncate bug in Ship - 2.1
  • (#9812) Fix snapshot test_compatible_versions failure and reenable it - release/2.1.x
  • (#9813) fix balance transfer issue - release/2.1.x
  • (#9829) Fix ship truncate problem with stride
  • (#9835) Fix Ship backward compatibility issue
  • (#9838) fix populating some information for get account
  • (#9864) fix incorrect transaction_extensions declaration
  • (#9880) Fix ship big vector serialization
  • (#9896) Fix state_history zlib_unpack bug
  • (#9909) Fix state_history::length_writer
  • (#9986) EPE-389 fix net_plugin stall during head_catchup - merge release/2.1.x
  • (#9988) refactor kv get rows 2.1.x
  • (#9989) Explicit ABI conversion of signed_transaction - merge 2.1.x
  • (#10027) EPE-165: Improve logic for unlinkable blocks while sync'ing
  • (#10028) use p2p address for duplicate connection resolution

Changes

Action Return Values (#8327)

New protocol feature: ACTION_RETURN_VALUE. When activated, this feature provides a way to get return values which are strongly committed to in block headers from actions into external processes without having to rely on get_table or using the debug console via print statements. This allows smart contract developers to be able to process the return value from an action directly, further streamlining the smart contract development process. An example can be seen here.

Configurable WASM Limits (#8360)

New protocol feature: CONFIGURABLE_WASM_LIMITS. When activated, this feature allows privileged contracts to set the constraints on WebAssembly code.

Extensible Blockchain Parameters (#9402)

The basic means of manipulating consensus parameters for an EOSIO blockchain has been a pair of intrinsic functions: get_blockchain_parameters_packed and set_blockchain_parameters_packed. These intrinsics are tied to a specific and inflexible definition of blockchain parameters and include no convenient means to version the set of parameters; which is an inconvenience to add/remove/modify in future consensus upgrades.

To alleviate this, Nodeos now has a new protocol feature: BLOCKCHAIN_PARAMETERS. When activated, this protocol feature is intended to eventually supplant the existing intrinsics and provide greater flexibility for future consensus upgrades. When activated it will allow contracts to link to the new intrinsics.

Health Logging For Nodeos running The State History Plugin (#9208) (#9239) (#9277)

Nodeos now has added support for a separate logger to the state history plugin and includes some additional logging messages for receiving requests and sending replies. In addition, the trace and chain state log can now be split in the state history plugin as well.

Instrumentation Support for Nodeos (#9631)

Nodeos now supports integration with Zipkin, an open source distributed tracing system. This will enable system administrators to optimize Nodeos execution for performance-critical applications.

Key Value Tables (#8223, #9298)

New protocol feature: KV_DATABASE. When activated, this feature provides a Key Value API. This new API is a more flexible, simplified way for developers to create and search on-chain tables. Developers can also modify the table structure after it has been created, which is currently impossible with multi-index tables.

Developers will also be able to split up tables they have already written. An example is the case where the developer has a table that stores a user’s first and last name along with other information. The developer could now decide to split the original table into two separate tables, one containing the first names and one containing the last names.

As with the existing db api, contracts can flexibly specify which authorizing account provides the RAM resources for this data.

A new data type in EOSIO.CDT v1.8.0 called eosio::kv::map provides the underlying functionality and should be used in contracts over the type called eosio::kv::table that is currently in a developer preview state.

An example can be seen here. You can follow the instructions here to quickly create a test chain with Key Value support.

Prune Context-Free Data (#9061)

From inception, EOSIO has supported the concept of Context-Free Data, or data that may be removed without affecting the integrity of the chain. This release includes functionality that is designed to allow administrators to designate specific data as Context-Free and subsequently remove, or prune, that data from the blockchain while maintaining system stability.

Once this data has been pruned, full validation is no longer possible, only light validation, which requires implicit trust in the block producers. Due to this factor, the Prune Context-Free Data feature is only suitable for a private blockchain as part a larger privacy, security, or regulatory compliance solution.

Support For Ubuntu 20.04, CentOS 7.x, and CentOS 8 (#9332) (#9475)

EOSIO now supports Ubuntu 20.04, CentOS 7.x, and CentOS 8, in addition to previous releases supporting Amazon Linux 2, CentOS 7, Ubuntu 16.04, Ubuntu 18.04, MacOS 10.14 (Mojave), MacOS 10.15 (Catalina).

Reimplement Chainbase Using Intrusive Instead of multi_index (#58)

Nodoes now features an upgraded version of chainbase using intrusive instead of multi_index. This makes chainbase more performant and features per container memory pools, full exception safety, lighter weight representation of the undo stack, and avl trees instead of rb trees.

[Developer Preview] Blockvault (#9705)

Nodeos now supports clustering for the block producer node, enabling blockchain administrators to implement industry standard disaster recovery architectures. Two or more nodes may be deployed as a single logical producer. If the primary node goes down, a system properly configured to leverage this solution can attain similar data recovery guarantees to that of industry leading database and cloud services, with minimal service disruption.

While this feature increases resiliency for block production on public networks, it also provides particular value for private chains running with a single logical producer. Single-producer chains can use it to provide immediate finality with tools to mitigate the risk of a single point of failure.

To use this feature, nodeos must be configured as a producer with the appropriate --block-vault-backend option specified. For example:

nodeos --plugin eosio::producer_plugin --producer-name myproducera --plugin eosio::blockvault_client_plugin --block-vault-backend postgresql://user:[email protected]

For more information on using this feature please see the README.md file in directory ~/eos/plugins/blockvault_client_plugin/README.md.

This feature is being released as a "developer preview" and is not yet ready for production usage. We look forward to community feedback to further develop and harden this feature.

[Developer Preview] RocksDB Storage for DB and Key Value APIs (#9340) (#9529)

RocksDB is now supported as a storage option behind both the DB and Key Value APIs. This gives blockchain system administrators the flexibility to choose between RAM or RocksDB to optimize Nodeos performance for their workloads.

To use this feature, nodeos must specify which backing store to use by passing the flag --backing-store=rocksdb.

For more information on using this feature please see the 10_how-to-configure-state-storage.md file in directory ~/eos/docs/01_nodeos/02_usage/60_how-to-guides/10_how-to-configure-state-storage.md.

This feature is being released as a "developer preview" and is not yet ready for production usage. We look forward to community feedback to further develop and harden this feature.

Upgrading from previous versions of EOSIO

Refer to this section on the Upgrade Guide: Upgrading from previous versions of EOSIO.

Deprecation and Removal Notices

  • (#8498) Remove new block id notify feature - develop
  • (#9014) Remove mongo_db_plugin
  • (#9701) remove long disabled faucet_testnet_plugin

Other Changes

  • (#7973) Add a unit test for the write order for aliased intrinsic arguments.
  • (#8039) [Develop] dockerhub | eosio/producer -> eosio/ci
  • (#8043) Refactor incoming trx handling
  • (#8044) Add greylist limit - develop
  • (#8046) #7658: modified code to handle new db_runtime_exception
  • (#8047) remove WAVM runtime
  • (#8049) Update cleos to support new producer schedule - develop
  • (#8053) don't rebuild llvm unnecessarily during pinned builds
  • (#8056) #7671 added checks for irreversible mode
  • (#8057) [Develop] Upgrade mac anka template to 10.14.6
  • (#8062) nodeos & keosd version reporting
  • (#8073) disable terminfo usage on pinned llvm builds
  • (#8075) Handle cases where version_* not specified in CMakeLists.txt - develop
  • (#8077) Use BOOST_CHECK_EQUAL instead of BOOST_REQUIRE_EQUAL.
  • (#8082) report block extensions_type contents in RPC and eosio-blocklog tool - develop
  • (#8085) Net plugin remove read delays - develop
  • (#8089) [develop] Linux build fleet update
  • (#8094) net_plugin remove sync w/peer check - develop
  • (#8104) Modify --print-default-config to exit with success - develop
  • (#8106) Port PR #8060 to develop: fix commas in ship ABI
  • (#8107) [develop] WASM Spec Test Step in CI
  • (#8109) [Develop] Mac OSX steps need a min of 1 hour
  • (#8115) remove lingering wavm runtime file that escaped the first purge
  • (#8118) remove gettext/libintl dependency
  • (#8119) Net plugin sync fix - develop
  • (#8121) [Develop] Move the ensure step into the build step, eliminating the need for templaters
  • (#8130) #8129 - Fix spelling error in cleos/main.cpp
  • (#8131) Normalized capitalization in cleos/main.cpp
  • (#8132) [Develop] CI/CD support for Catalina
  • (#8135) [develop] CI platform directories
  • (#8136) explicitly link to zlib when compiling executables using the add_eosio_test_executable macro
  • (#8140) Post State history callback as medium priority - develop
  • (#8142) Net plugin sync priority
  • (#8143) fix pinned builds on fresh macOS install
  • (#8146) Update fc
  • (#8147) Optimize push_transaction
  • (#8151) Debian Package: Make sure root is owner/group when building dpkg.
  • (#8158) transactions in progress
  • (#8165) [Develop] Prevent buildkite clone to speedup pipeline
  • (#8166) Remove references to smart_ref.
  • (#8167) add harden flags to cicd & pinned builds
  • (#8172) [develop] Unpinned and WASM test fixes
  • (#8177) sync fc to pick up gmp fix & boost deque support
  • (#8178) [Develop] 10 second sleep to address heavy usage wait-network bug in Anka
  • (#8184) make DISABLE_WASM_SPEC_TESTS an option so it's visible from the GUI
  • (#8186) Update fc for EOSIO/fc#121 and EOSIO/fc#123
  • (#8193) Reduce logging - develop
  • (#8194) Fixed under min available test to not count failed attempts as actual sends
  • (#8196) Consolidated Fixes for develop
  • (#8198) State History Plugin Integration Test
  • (#8208) eliminate gperftools copy paste
  • (#8209) stop setting CXX_FLAGS with both C & CXX flags
  • (#8217) Update chainbase to support Boost 1.67.
  • (#8218) Add option to provide transaction signature keys to cleos
  • (#8220) Add terminate-at-block option to nodeos.
  • (#8222) Many Transaction Long Running Test
  • (#8223) kv database
  • (#8231) return more from producer_plugin's get_runtime_options()
  • (#8232) Create integration test for sending copies of the same transaction into the network
  • (#8234) chainbase sync to pick up DB shrink fix while in heap mode
  • (#8245) [Develop] explictly use openssl 1.1 via brew on macos
  • (#8250) Spelling correction
  • (#8251) debug level logging for launcher service
  • (#8254) Replace hard coding system_account_name
  • (#8269) Remove Unused Variable
  • (#8274) [develop] Update CentOS version for CI.
  • (#8276) Net plugin sync - develop
  • (#8277) [develop] Travis updates.
  • (#8281) Net plugin handshake
  • (#8291) Exit irreversible mode test when failure occurrs
  • (#8299) net_plugin boost asio error handling
  • (#8300) net_plugin lib sync - develop
  • (#8304) net_plugin thread protection peer logging variables - develop
  • (#8306) Extend shutdown allowed time in under min available resources test
  • (#8312) Fix race in message_buffer and move message_buffer_tests to fc. - develop
  • (#8313) reset the new handler (develop)
  • (#8317) net_plugin speed up shutdown
  • (#8321) [develop] Retries and Contract Builders for Tags
  • (#8336) increase tester state size - develop
  • (#8339) Removing BATS tests
  • (#8340) [develop] Modification to trigger LRTs and Multiver on any protected branch that is not a scheduled run
  • (#8345) Remove superfluous quotes from default agent name string.
  • (#8349) Consolidated Security Fixes for Develop
  • (#8358) Add Sync from Genesis Test
  • (#8361) Make multiversion protocol test conditional.
  • (#8364) Fix linking OpenSSL (branch develop)
  • (#8374) CMAKE 3.16.2
  • (#8382) Fix for NVM install
  • (#8387) Propagate exceptions out push_block - develop
  • (#8390) Add eosio-resume-from-state Test
  • (#8398) Net plugin sync check - develop
  • (#8401) fix EOS VM OC monitor thread name
  • (#8404) Revert: Debian Package: Make sure root is owner/group when building dpkg
  • (#8405) [develop] Modified Amazon and Centos to use yum install ccache
  • (#8408) scripts/generate_deb.sh: call fakeroot if available.
  • (#8409) Reflection validation script
  • (#8411) [develop] Github Actions for Community PRs
  • (#8413) Add better logging of exceptions in emit - develop
  • (#8424) fix discovery of openssl in tester cmake when OPENSSL_ROOT_DIR not set
  • (#8428) [develop] Fixing travis' source ~/.bash_profile problem
  • (#8433) [develop] Fix installation location of header file eosio.version.hpp
  • (#8437) abi serialization enhancements - develop
  • (#8444) resolve action return value hash & state history serialization discrepancy
  • (#8448) [Develop] Pipeline file for testing the build script
  • (#8453) [Develop] Added better sleep pre-execute for Anka commands + boost fix
  • (#8465) llvm 10 support for EOS VM OC
  • (#8466) [Develop] Switching to using the EOSIO fork of anka-buildkite-plugin for security reasons
  • (#8478) Update eos-vm
  • (#8484) [Develop] Fixes for Submodule Regression Checker Script
  • (#8486) [develop] Multiversion test migration
  • (#8489) Change link signature from state_history to state_history_plugin
  • (#8490) [develop] <wallet_plugin> Preemptively create the wallet directory to prevent exception
  • (#8491) [develop] Docker name collision fix
  • (#8497) Drop late blocks - develop
  • (#8500) remove old WAVM Platform files and WAVM intrinsics
  • (#8501) [develop] Removed unnecessary sleep option from Anka plugin
  • (#8503) use sh instead of bash for cmake unittests magic
  • (#8505) Remove hash in link
  • (#8511) http_plugin shutdown - develop
  • (#8513) [develop] Don't trigger LRT a second time
  • (#8524) 2.0.1 security omnibus - develop
  • (#8527) Handle socket close before async callback - develop
  • (#8540) Added comparison operators for extended_symbol type
  • (#8548) Net plugin dispatch - develop
  • (#8550) Fix typo
  • (#8553) Net plugin unlinkable blocks - develop
  • (#8556) Drop late check - develop
  • (#8559) Read-only with drop-late-block - develop
  • (#8563) Net plugin post - develop
  • (#8565) Delayed production time - develop
  • (#8567) Timestamp watermark slot
  • (#8570) Eliminate use of boost deprecated query object.
  • (#8573) Anka / CICD 10.15.1 -> 10.15.3
  • (#8579) CPU block effort - develop
  • (#8585) cpu effort last block - develop
  • (#8587) P2p read only - develop
  • (#8596) Consolidated Security Fixes for develop
  • (#8597) Producer plugin log - develop
  • (#8601) Improve create account description
  • (#8603) Skip sync from genesis and resume from state test on tagged builds
  • (#8609) Add a way to query nodeos reversible db size - added an api endpoint …
  • (#8613) [develop] Fixes for Actions.
  • (#8618) Init net_plugin member variables - develop
  • (#8623) abi 1.2: action_results
  • (#8635) bump script's macos version check to 10.14
  • (#8637) remove brew's python@2 install
  • (#8646) Consolidated Security Fixes for develop.
  • (#8652) Fix format message.
  • (#8657) Fix wasm-runtime option parameters
  • (#8663) ship: add chain_id to get_status_result_v0
  • (#8665) Fix other blocks.log callout
  • (#8669) Add troubleshooting item for PREACTIVATE_FEATURE protocol
  • (#8670) Using get raw abi in cleos
  • (#8671) Fix for cleos and keosd race condition
  • (#8674) [develop] Disable skip checkouts for EKS builder/tester fleet.
  • (#8676) unpack data when forming transaction, useful for …
  • (#8677) Allow Boost.Test to report the last checkpoint location when an excep…
  • (#8679) Exit transaction early when insufficient account cpu - develop
  • (#8681) Produce block immediately if exhausted - develop
  • (#8683) Produce time - develop
  • (#8687) Add Incoming-defer-ratio description
  • (#8688) Fixes #8600 clean up nodeos options section
  • (#8691) incoming-defer-ratio description - develop
  • (#8692) [develop] Community PR tweaks.
  • (#8699) [develop] Base images pipeline.
  • (#8704) add get_block_info
  • (#8706) Update the getting started link [merge 1]
  • (#8709) Relay block on accepted header - develop
  • (#8713) [develop] Actions rerun fixes.
  • (#8717) Fix mutliple version protocol test intermittent failure
  • (#8718) link cleos net status reference doc with the peer network protocol doc
  • (#8719) Add tests for multi_index iterator cache across notifies.
  • (#8720) Add unit test to verify that the description digests of protocol feat…
  • (#8728) remove the redundant html markup
  • (#8730) Add integrated Secure Enclave block signing for nodeos
  • (#8731) Get info priority - develop
  • (#8737) Fix/action results
  • (#8738) Add additional CPU/NET usage data to get_account results
  • (#8743) New options for api nodes - develop
  • (#8749) [CI/CD] -S to curl in generate-tag script so we can see why it's failing on EKS
  • (#8750) Move parts of state-history-plugin to libraries/state_history
  • (#8751) upgrade pinned builds to clang 10 & boost 1.72
  • (#8755) add block producing explainer doc
  • (#8771) free unknown EOS VM OC codegen versions from the code cache
  • (#8779) disable EOS VM on non-x86 platforms
  • (#8780) link to librt when using posix timers
  • (#8788) dfuse Deep Mind changes
  • (#8801) Expire blacklisted scheduled transactions by LIB time - develop
  • (#8802) Trace API Plugin - develop
  • (#8812) disable temporarily snapshot creation
  • (#8818) Add test cases for changes of logging with minimize flag is true,
  • (#8820) yield_function for abi_serializer
  • (#8824) remove leading $ chars from shell codeblocks in README.md
  • (#8829) fix potential leak in OC's wrapped_fd move assignment op
  • (#8833) Add RPC Trace API plugin reference to nodeos
  • (#8834) trace_api_plugin yield timeout - develop
  • (#8838) set_action_return_value prohibited for context free actions
  • (#8842) Fix double titles in plugins
  • (#8846) skip context free actions during light validation
  • (#8847) add block replay test
  • (#8848) Skip checks
  • (#8851) add light validation sync test
  • (#8852) [develop] Trace API Compressed data log Support
  • (#8853) CFD: Initial support for pruned_block
  • (#8854) Improve too many bytes in flight error info - develop
  • (#8856) Use NET bill in transaction receipt during light validation mode
  • (#8864) wabt: don't search for python because we don't run tests
  • (#8865) Add possibility to run .cicd scripts from different environments
  • (#8868) Feature/new host function system
  • (#8874) Fix spurious HTTP related test failure [develop] (round 3)
  • (#8879) HTTP Plugin async APIs [develop]
  • (#8880) add pruned_block to signed_block conversion
  • (#8882) Correctly Sanitize git Branch and Tag Names
  • (#8886) use http async api support for Trace API get_block [develop]
  • (#8896) Increase get info priority to medium high - develop
  • (#8897) Sync from snapshot - develop
  • (#8898) Remove the assertion check for error code (400) in cleos
  • (#8905) Update eos-vm
  • (#8917) Updates to manual build instructions
  • (#8922) remove left over support patch for previous clang 8 pinned compiler
  • (#8924) Add unwrapped chainlib
  • (#8925) remove llvm@7 from macos build as it isn't used at the moment
  • (#8927) Fix SHIP block delay - develop
  • (#8928) replace boost::bind with std::bind, fixing boost 1.73beta builds
  • (#8929) Chainlib support for replacing keys
  • (#8930) fix boost URL in mojave cicd script
  • (#8931) Fix unpack data for signing transaction
  • (#8932) Rename action_id type for GCC - develop
  • (#8937) Fix broken Docker build of C7 pinned image.
  • (#8958) Replace bc with shell arithmetic - develop
  • (#8959) Make /bin/df ignore $BLOCKSIZE - develop
  • (#8960) Upgrade CLI11 to 1.9.0 - develop
  • (#8961) Support Running ALL Tests in One Build
  • (#8964) unit-test for replace keys
  • (#8966) [develop] Bump Catalina version.
  • (#8967) tests/get_table_tests.cpp: incorrect use of CORE_SYM_STR - develop
  • (#8979) Add nodeos RPC API index, improve nodeos implementation doc, fix link
  • (#8991) Avoid legacy for set_action_return_value intrinsic
  • (#8994) Update example logging.json - develop
  • (#8998) Better error handling for push/send_transaction - develop
  • (#8999) Fixed failing nodeos_run_test when core symbol is not SYS - develop
  • (#9000) Improved reporting in nodeos_forked_chain_lr_test
  • (#9001) Support Triggering a Build that Runs ALL Tests in One Build
  • (#9011) Revert "Upgrade CLI11 to 1.9.0 - develop"
  • (#9012) Bugfix for uninitialized variable in cleos - develop
  • (#9015) Bump version to 2.1.0-alpha1
  • (#9016) Bring back CLI11 1.9.0 - develop
  • (#9018) rodeos and eosio-tester
  • (#9019) refactor block log
  • (#9020) add help text to wasm-runtime - develop
  • (#9021) Add authority structure to cleos system newaccount
  • (#9025) Fix keosd auto-launching after CLI11 upgrade - develop
  • (#9029) Rodeos with Streaming Plugin
  • (#9033) Adding message body check (400) for http calls
  • (#9034) sync fc up to master bringing 3 PRs in
  • (#9039) For develop - Updated the priority of the APIs in producer_api_plugin and net_api_plugin to MEDIUM_HIGH
  • (#9041) move minimum boost from 1.67->1.70; gcc 7->8
  • (#9043) Remove copy of result - develop
  • (#9044) Replace submodules
  • (#9046) Remove outcome
  • (#9047) [develop]Add more info in trace-api-plugin
  • (#9048) add rapidjson license to install - develop
  • (#9050) Add cleos --compression option for transactions
  • (#9051) removed unused cmake modules from fc
  • (#9053) Print stderr if keosd_auto_launch_test.py fails - develop
  • (#9054) add options for not using GMP and for static linking GMP
  • (#9057) Fix timedelta and strftime usage - develop
  • (#9059) Fix uninitialized struct members used as CLI flags - develop
  • (#9061) Merge prune-cfd-stage-1 branch
  • (#9066) separate out signature provider from producer plugin
  • (#9068) add cleos validate signatures
  • (#9069) Use signed_block_v0 binary format for SHiP
  • (#9070) fix two range-loop-construct warnings from clang10
  • (#9072) CFD pruning integration test
  • (#9074) Add change type to pull request template
  • (#9077) Update date in LICENSE
  • (#9079) Fix setting of keosd-provider-timeout
  • (#9080) Add support for specifying a logging.json to keosd - develop
  • (#9081) ship v0 fix
  • (#9085) trim-blocklog improvement (removing bad blocks and making blocks.log …
  • (#9086) Add back transaction de-duplication check in net_plugin
  • (#9088) make ship WA key serialization match expected serialization
  • (#9092) Fix narrowing conversion error in fc/src/log/console_appender.cpp
  • (#9094) fix gcc10 build due to libyubihsm problem
  • (#9104) Ship v1
  • (#9108) [develop] Bump MacOS version and timeouts.
  • (#9111) Update algorithm for determining number of parallel jobs - develop
  • (#9114) [develop] Epe 37 fix test contracts build
  • (#9117) Exit on rodeos filter wasm error
  • (#9119) fixes amqp heartbeat idle connection
  • (#9123) Update the authority example JSON
  • (#9125) Add unity build support for some targets
  • (#9126) Fix onblock handling in trace_api_plugin - develop
  • (#9132) Rodeos streamer exchanges
  • (#9133) Restore abi_serializer backward compatibility - develop
  • (#9134) Test framework archiving
  • (#9137) Fix api notification of applied trx
  • (#9143) Prune data integration test fix
  • (#9147) two comment fixes to transaction.hpp
  • (#9149) Fix for empty ("") appbase config default value
  • (#9160) fix build when build path has spaces
  • (#9164) Fix for connection cycle not being in sync with test startup.
  • (#9165) fix helper for CLANG 10 detection
  • (#9167) stop rocksdb's CMakeLists from force overriding CMAKE_INSTALL_PREFIX
  • (#9169) Fix onblock trace tracking - develop
  • (#9175) Ship delay error fix
  • (#9179) Add a sign intrinsic to the tester.
  • (#9180) eosio.contracts unit tests fail to compile with develop branch due to controller change
  • (#9182) Bump to alpha2
  • (#9184) Add support for block log splitting
  • (#9186) struct name fix check #8971
  • (#9187) Fixed relaunch calls that still passed in nodeId.
  • (#9194) Add trace plugin API test
  • (#9196) Resource monitor plugin -- develop branch
  • (#9198) Reenable OC and update it to the new intrinsic wrappers.
  • (#9199) [develop] Anka/Catalina version bump
  • (#9204) Support unity build for unittests
  • (#9207) call boost program option notifiers before plugin initialize
  • (#9209) add empty content http request handling
  • (#9210) Fix eosio-blocklog trim front
  • (#9211) Loosen production round requirement
  • (#9212) Apply 400 check to db_size
  • (#9213) Replace fc::optional with std::optional
  • (#9217) Improve parsing of RabbitMQ-related command line arguments in rodeos - develop
  • (#9218) EPE-145: unapplied_transaction_queue incorrectly caches incoming_count
  • (#9221) Fix unity build for unittests
  • (#9222) Fix log of pending block producer - develop
  • (#9226) call q.begin and q.end, instead of q.unapplied_begin and q.unapplied_end, in unit tests
  • (#9231) Comment clean up
  • (#9233) Changed code to ensure --http-max-response-time-ms is always passed in the extraNodeosArgs
  • (#9235) Migrate fc::static_variant to std::variant
  • (#9239) split transaction logging
  • (#9244) relaxing the on_notify constraint to *
  • (#9245) added a new option fix-irreversible-blocks
  • (#9248) add test case to restart chain without blocks.log
  • (#9253) Additional ShIP unit tests
  • (#9254) const correctness fix
  • (#9257) add new loggers to logging.json
  • (#9263) Remove Concurrency Groups for Scheduled Builds
  • (#9277) Support state history log splitting
  • (#9277) Support state history log splitting
  • (#9281) Refactor to use std::unique_ptr instead of naked pointers
  • (#9289) add covert_to_type for name
  • (#9308) Track Source Files Excluded from Code Coverage Reports
  • (#9310) Add action result to abi serializer
  • (#9317) fix UB with rvalue reference
  • (#9328) Fix core dump on logging when no this_block set
  • (#9332) updated scripts to support Ubuntu 20.04
  • (#9333) Use fc::variant() instead of 0 to be clearer that value is not available
  • (#9337) Make shutdown() private as it should only be called from quit()
  • (#9342) Fix typo in pull request template
  • (#9347) Update abieos submodule to point to eosio branch
  • (#9351) Nonprivileged inline action subjective limit - develop
  • (#9353) Update CLI11 to v1.9.1
  • (#9354) Add overload to serializer for action_traces in order to deserialize action return values
  • (#9362) Consolidated security fixes
  • (#9364) Add Ubuntu 20.04 cicd dockerfiles/buildscripts-develop
  • (#9368) Remove unnecessary strlen
  • (#9369) set medium priority for process signed block - develop
  • (#9371) Reenable snapshot tests
  • (#9375) cleos to display pushed actions' return values
  • (#9381) add std::list<> support to fc pack/unpack (develop)
  • (#9383) Read transaction consensus fix
  • (#9384) develop version of "Account Query DB : maintain get_(key|controlled)_accounts"
  • (#9385) Remove deprecated functions in abi_serializer for EPE112
  • (#9389) Remove fc::uint128_t typedef
  • (#9390) test contracts fix
  • (#9392) EPE-306 fix
  • (#9393) fix macos build script on Big Sur
  • (#9395) Enable the correct lrt for snapshot generation testing
  • (#9398) [develop] Fix docker tags when building forked PRs
  • (#9401) set max_irreversible_block_age to -1
  • (#9403) Increse max_transaction_cpu_usage to 90k
  • (#9405) added unit tests
  • (#9410) Cleos http response handler develop
  • (#9411) fix the bug that the flight bytes are cacculated incorrect
  • (#9416) fix template instantiation for host function
  • (#9420) Fix variant type blob unpack bug
  • (#9427) Fix static initialization problem
  • (#9429) Abi kv nodeos
  • (#9431) Restrict the maximum number of open HTTP RPC requests
  • (#9432) resolve inconsistent visibility warnings on mac
  • (#9433) fix build problem for git absence
  • (#9434) Fix unnecessary object copying
  • (#9435) update abieos submodule
  • (#9440) Fix app() shutdown - develop
  • (#9444) remove unity build
  • (#9445) move is_string_valid_name to cpp file
  • (#9447) Replace N macro with operator ""_n - develop
  • (#9448) Fix develop build
  • (#9449) Support for storing kv and db intrinsics in Chainbase or RocksDB.
  • (#9451) new chain_config param: action return value limit
  • (#9453) Reverting some libs
  • (#9460) rpc kv access implement get_kv_table_rows
  • (#9461) fix slipped submod
  • (#9468) added try catch
  • (#9475) Add script support for CentOS 8 (redo of #9361)
  • (#9477) Add first class support for converting ABIs themselves to/from json/bin/hex
  • (#9486) Fix build - N macro was removed
  • (#9494) add an integration of nodeos for crash when the nodes are killed
  • (#9499) add accessor for controller's trusted producer list
  • (#9512) Keep http_plugin_impl alive while connection objects are alive
  • (#9514) Fix for broken Centos 8 build-scripts build
  • (#9517) Update abieos with change of to_json may_not_exist fields
  • (#9520) Add installation pkg to centos 7 build deps and centos script
  • (#9524) fix centOS 8 test failures
  • (#9533) Failure with building on Centos 7.x
  • (#9536) kv support cleos
  • (#9546) add combined_db kv_context
  • (#9547) Trace API plugin - Add support for action return values
  • (#9553) fix secondary index in get_kv_table_rows
  • (#9566) Removing unused variable functionDefIndex
  • (#9577) use huge pages via mmap() instead of hugetlbfs
  • (#9582) Fix stdout console logging
  • (#9593) Speculative validation optimizations
  • (#9595) fixed cleos get_kv_table_rows bugs
  • (#9596) restore dropped commit from fc resubmod: GMP options
  • (#9600) Session optimizations
  • (#9605) fix get_table_rows_by_seckey conversion
  • (#9607) Fix test_pending_schedule_snapshot by using blocks.log approach to ma…
  • (#9611) RocksDB temporary fix
  • (#9614) updated appbase to fix print-default-config for wasm-runtime
  • (#9615) only use '#pragma clang diagnostic' when compiling with clang
  • (#9622) Making create_snapshot output more informative by adding more fields
  • (#9623) Migrate CI from Docker Hub to Amazon ECR
  • (#9625) Fixing typos on injected params
  • (#9628) Misc tests
  • (#9631) Zipkin - develop
  • (#9632) Fixes for DB intrinsic replay logic
  • (#9633) Allow HTTP-RPC with empty response
  • (#9635) Update SHiP to work with RocksDB
  • (#9646) fix get_kv_table_rows secondary index search
  • (#9648) updated unit test kv_addr_book
  • (#9656) CI: Fix Serial Test Bug + Simplification + UX
  • (#9659) fix sprintf overrun
  • (#9660) resolve some warnings w.r.t. copying from consts
  • (#9662) Add "Testing Changes" Section to Pull Request Template
  • (#9667) Add "Ubuntu 20.04 Package Builder" step to pipeline.yml
  • (#9669) ship delta changes for issue 9255
  • (#9670) disable building rodeos and eosio.tester
  • (#9673) restore boost 1.67 as the minimum boost version required
  • (#9674) Move chainbase calls out of try-CATCH_AND_EXIT_DB_FAILURE block
  • (#9680) add fc change of add reason to copy
  • (#9681) warning fix
  • (#9685) Rocksdb rpc support
  • (#9686) Pop back a delta with empty rows #9386
  • (#9692) RocksDB - Renaming / creation of some parameters and change of default value for create_if_missing
  • (#9694) net_plugin monitor heartbeat of peers
  • (#9696) add fc support for boost 74 file copy
  • (#9707) Updated unit tests for new SHiP delta present field semantics
  • (#9712) Snapshot memory exhaustion
  • (#9713) Updating abieos to the latest abieos on eosio branch
  • (#9716) eosio-bios and eosio-boot contracts support for KV inside eosio
  • (#9801) Fix build script problem with older version of cmake
  • (#9802) Add CentOS 8 Package Builder Step
  • (#9820) Reduce logging for failed http plugin calls - 2.1
  • (#9858) Fix problem when using ubuntu libpqxx package
  • (#9863) chain_plugin db intrinsic table RPC calls incorrectly handling --lower and --upper in certain scenarios
  • (#9882) merge back fix build problem on cmake3.10
  • (#9884) Fix problem with libpqxx 7.3.0 upgrade
  • (#9893) EOS VM OC: Support LLVM 11 - 2.1
  • (#9900) Create Docker image with the eos binary and push to Dockerhub
  • (#9906) Add log path for unsupported log version exception
  • (#9930) Fix intermittent forked chain test failure
  • (#9931) trace history log messages should print nicely in syslog
  • (#9942) Fix "cleos net peers" command error
  • (#9943) Create eosio-debug-build Pipeline
  • (#9953) EPE-482 Fixed warning due to unreferenced label
  • (#9956) PowerTools is now powertools in CentOS 8.3 - 2.1
  • (#9958) merge back PR 9898 fix non-root build script for ensure-libpq...
  • (#9959) merge back PR 9899, try using oob cmake so as to save building time
  • (#9970) Updating to the new Docker hub repo EOSIO instead EOS
  • (#9975) Release/2.1.x: Add additional contract to test_exhaustive_snapshot
  • (#9983) Add warning interval option for resource monitor plugin
  • (#9994) Add unit tests for new fields added for get account in PR#9838
  • (#10014) [release 2.1.x] Fix LRT triggers
  • (#10020) revert changes to empty string as present for lower_bound, upper_bound,or index_value
  • (#10031) [release 2.1.x] Fix MacOS base image failures
  • (#10042) [release 2.1.x] Updated Mojave libpqxx dependency
  • (#10046) Reduce Docker Hub Manifest Queries
  • (#10054) Fix multiversion test failure - merge 2.1.x

Documentation

  • (#7758) [wip] Add cleos, keosd doc outline and content
  • (#7963) Update README.md
  • (#8369) Update EOSIO documentation (develop)
  • (#8436) [develop] hotfix documentation links in README.md
  • (#8494) chain_api_plugin swagger file - develop
  • (#8576) [develop] Documentation patch 1 update
  • (#8666) Fix broken link in producer plugin docs
  • (#8809) Add initial Trace API plugin docs to nodeos
  • (#8827) db_size_api_plugin swagger file
  • (#8828) net_api_plugin swagger file
  • (#8830) producer_api_plugin swagger file
  • (#8831) test_control_api_plugin swagger
  • (#8832) swagger configuration for docs
  • (#8844) Trace API documentation update
  • (#8921) [docs] trace api reference api correction
  • (#9091) [docs] Add cleos validate signatures command reference
  • (#9150) Fix inaccurate nodeos reference in wallet_api_plugin [docs]
  • (#9151) Add default contract name clarifier in how to deploy smart contract [docs]
  • (#9152) Add trace_api logger [docs]
  • (#9153) Simplify create_snapshot POST request [docs]
  • (#9154) Replace inaccurate wording in how to replay from snapshot [docs]
  • (#9155) Fix Trace API reference request/response inaccuracies [docs]
  • (#9156) Add missing reference to RPC API index [docs]
  • (#9157) Fix title case issue in keosd how-to [docs]
  • (#9158) Add conditional step in state history plugin how-to [docs]
  • (#9208) add separate logging for state history plugin
  • (#9270) New threshold for non privileged inline actions
  • (#9279) [docs] Correct Producer API title in RPC reference
  • (#9291) [docs] Fix character formatting in nodeos CLI option
  • (#9320) [docs] Remove redundant nodeos replay example
  • (#9321) [docs] Remove unneeded options for nodeos replays
  • (#9339) [docs] Add chain plugin options that support SHiP logging
  • (#9374) [docs] Fix broken link in Wallet API plugin
  • (#9400) [docs] add return value from actions cleos output explanation and samples
  • (#9465) [docs] Create nodeos concepts folder and rearrange folders
  • (#9466) Fix missing whitespace in yaml chain_api_plugin swagger
  • (#9470) [docs] Fix documentation how-to for delegating cpu with cleos
  • (#9471) [docs] Fix documentation how-to for delegating net with cleos
  • (#9504) [docs] Add prune CFD explainers, how-tos, utilities
  • (#9506) [docs] Add slices, trace log, clog format explainers to Trace API plugin
  • (#9508) [docs] Add WASM interface C++ reference documentation
  • (#9509) [docs] Update supported OS platforms for EOSIO 2.1
  • (#9557) [docs] Add get_block_info RPC reference and use 3.0 schemata links
  • (#9561) Adding state store config docs
  • (#9565) [docs] Add trace_api_util reference to eosio utilities docs
  • (#9581) Make bios-boot-tutorial.py not rely on prior version of system contracts
  • (#9583) [docs] Add cleos get kv_table reference documentation
  • (#9590) [docs] Various additions/fixes to cleos reference
  • (#9601) [docs] Fix broken anchor link on MacOS build from source
  • (#9606) last_irreversible_block_time added to get_info API
  • (#9618) [docs] Update cleos get kv_table reference
  • (#9630) [docs] Update gettable* reference in Chain API
  • (#9687) [docs] adding third party logging and tracing integration documentation for
  • (#9818) [docs] Fix blockvault plugin explainer and C++ reference links - 2.1
  • (#9806) [docs] Corrections to nodeos storage and read modes - 2.1
  • (#9808) [docs] 2.1.x update link to chain plug-in to be relative
  • (#9825) [docs] add how to: local testnet with consensus
  • (#9908) Add MacOS 10.15 (Catalina) to list of supported OSs in README
  • (#9914) [docs] add improvements based on code review
  • (#9921) [docs] 2.1.x local testnet with consensus
  • (#9925) [docs] cleos doc-a-thon feedback
  • (#9933) [docs] cleos doc-a-thon feedback 2
  • (#9934) [docs] cleos doc-a-thon feedback 3
  • (#9938) [docs] cleos doc-a-thon feedback 4
  • (#9952) [docs] 2.1.x - improve annotation for db_update_i64
  • (#10009) [docs] Update various cleos how-tos and fix index - 2.1

Thanks!

Special thanks to the community contributors that submitted patches for this release:

  • @MrToph
  • @conr2d
  • @javierjmc