Skip to content
This repository has been archived by the owner. It is now read-only.
c75fa31
Compare
Choose a tag to compare

This release contains stability and miscellaneous updates.

Stability Updates

  • (#10323) Large ship deltas - 2.0
  • (#10352) net_plugin bugfix backport of PR10349

Other Changes

  • (#10275) fix compile with gcc11 - 2.0
  • (#10314) [2.0.x] Add annotation in pipeline runs.
  • (#10332) state-history-exit-on-write-failure-2.0.x
  • (#10342) fix boost unit test linkage; fixes build on Fedora 34 - 2.0
  • (#10374) Sanitize Branch Names for Docker Containers
  • (#10429) Test packaged EOSIO Linux artifacts against standard dockers.
  • (#10437) fix homebrew sha256 warning
  • (#10452) [2.0.x] Update Anka nodes used for build script pipelines.
  • (#10464) Support Stability Testing for Tests + CI Bug Fixes
  • (#10469) Another Bug Fix for the eosio-test-stability Pipeline
  • (#10487) Don't Always Push to DockerHub
  • (#10515) remove copy of reversible blocks directory in snapshot tests - 2.0
  • (#10512) [2.0.x] Update unpinned MacOS boost dependency
  • (#10521) [2.0.x] Update base image and build script pipelines.
  • (#10528) Run sync tests.
  • (#10555) Add Homebrew package test steps to CICD.
  • (#10631) Ensure that all stability test rounds continue even if early rounds exhibit failures.

Documentation

  • (#10287) Add EOSIO 2.0.12 release notes to Dev Portal - 2.0
  • (#10380) [docs] Update cleos net commands and net plugin description - 2.0
  • (#10068) [docs] Update List Keypairs cleos How-to - 2.0
  • (#10073) [docs] Update Import keys cleos How-to - 2.0
  • (#10199) [docs] Update Query account info How-to - 2.0
  • (#10076) [docs] Update Query Transaction Info cleos How-to - 2.0
  • (#10180) [docs] Update Create key pairs How-to - 2.0
  • (#10177) [docs] Update Create an account How-to - 2.0
  • (#10423) [docs] Add usage section to eosio-blocklog - 2.0
  • (#10573) [docs] Fix some broken anchors and links - 2.0

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.

025df16
Compare
Choose a tag to compare
Pre-release

This is a RELEASE CANDIDATE for version 2.2.0. The latest STABLE release is v2.1.0.

The EOSIO 2.2.0-rc1 includes three new features: Read-only Queries, Private Chain Access, and Resource Payer.

Changes

Read-only Queries (#10189)

This feature provides a contract-supported method of read-only queries from external clients via a new HTTP-RPC API endpoint push_ro_transaction. Prior to this release, access was limited to data stored in a single table in DB or KV tables via the get_tables API, a mechanism which is exacting and inefficient. Read-only queries enable developers to perform more complex, cross-table queries natively via contract code with the assurance that table data is from the same block height. It can also be used to understand the consequences of a transaction before it is sent. For more details
see Read-only Queries Documentation.

Private Chain Access Control (#10267)

Data access control is a critical factor for businesses and organizations interested in using blockchain technologies. In response to this need, a working group was formed between block.one and several technology providers within the community to better identify specific needs and possible solutions. This feature is the first step toward addressing the use cases identified by this group, and allows blockchain administrators to form privacy groups in order to ensure that only authorized parties can join the network or access data. This feature requires that the SECURITY_GROUP protocol feature is activated.

Blockchain administrators are now able to add or revoke connection access simply by modifying a privileged smart contract. Additionally, all p2p connections within privacy group are using TLS to further ensure protection of sensitive data.
For more details read Private Chain Access documentation.

Resource Payer (#10407)

Currently the resource costs for transactions on EOSIO-based public networks are paid by the end user of the application, which can make attracting and onboarding new users very difficult. There is a workaround available, but it’s not a straightforward process for either app developers or their end users. If configured per our reference, the additional transaction extension allows a third party to pay for a transactions net and cpu usage. The transaction must be signed by the payer. There is also the ability to limit the amount of cpu and net that the payer is willing to pay. The transaction_trace has been modified with the addition of a bill_to_accounts field, so that it is clear which account paid for cpu/net for the transaction. This feature requires that the RESOURCE_PAYER protocol feature is activated. For more details see Resource Payer Documentation.

A Sample Transaction with Resource Payer:

{
      expiration: '2021-07-09T20:14:13.000',
      ref_block_num: 201,
      ref_block_prefix: 312235882,
      resource_payer: {
        payer: 'alice',
        max_net_bytes: 4096,
        max_cpu_us: 400,
        max_memory_bytes: 0
      },
      actions: [
        {
          account: 'eosio.token',
          name: 'transfer',
          authorization: [
            { actor: 'bob', permission: 'active' },
            { actor: 'alice', permission: 'active' }
          ],
          data: {
            from: 'bob',
            to: 'alice',
            quantity: '0.0001 SYS',
            memo: 'resource payer'
          }
        }
      ],
      transaction_extensions: [ [ 1, '0000000000855C34001000000000000090010000000000000000000000000000' ] ],
      context_free_actions: []
}

Upgrading from previous versions of EOSIO

Upgrading From v2.1.x

Node operators running version v2.1.x or prior versions should be able to upgrade to v2.2.0-rc1 using a snapshot. Another option is to rebuild state in 2.2.x by replaying the 2.1.x blocks.log.

Deprecation and Removal Notices

This release will remove support of MacOS 10.14 (#10418) and Ubuntu16 (#10421).

Stability Updates

  • (#9738) bios-boot-tutorial.py: nodeos needs more time on linux before it starts accepting p2p transactions
  • (#9742) When starting a replay, the rocksdb database files should be deleted.
  • (#9758) Consolidated Security Fixes from 2.0.8
  • (#9761) Fix strict aliasing violations
  • (#9810) Fix the truncate bug in Ship
  • (#9815) Fix snapshot test_compatible_versions failure and reenable it - develop
  • (#9821) Fix ship truncate problem with stride
  • (#9830) Fix Ship backward compatibility issue
  • (#9843) Fix packed transaction version conversion -- Develop
  • (#9877) DeepMind logger holds const char* fields that it uses for some of its naming and indicators
  • (#9865) fix incorrect transaction_extensions declaration
  • (#9879) Fix ship big vector serialization
  • (#9895) Fix state_history zlib_unpack bug
  • (#9910) fix state_history::length_writer
  • (#9923) get_producers unittest
  • (#9898) fix build problem of non-root user using script
  • (#9960) Explicit ABI conversion of signed_transaction
  • (#10012) EPE-165: Improve logic for unlinkable blocks while sync'ing
  • (#10006) use p2p address for duplicate connection resolution
  • (#10061) fix restart without blocks.log but with retained blocks files
  • (#10084) Huangminghuang/merge blocklog fix
  • (#10184) Disable subjective tolerance when disable-subjective-billing - develop
  • (#10192) Merge security fix PR#365 into develop
  • (#10220) develop: make cleos unpack a packed transaction before signing and ad…
  • (#10284) huangminghuang/fix-ship-empty-block
  • (#10321) huangminghuang/fix-state-history
  • (#10325) Large ship deltas - develop
  • (#10349) net_plugin bugfix for privacy test corner case
  • (#10381) fixing flakiness in voting and forked chain tests
  • (#10390) net_plugin fix for privacy groups corner case

Other Changes

  • (#9805) chain_plugin db intrinsic table RPC calls incorrectly handling --lower and --upper in certain scenarios
  • (#9905) Add log path for unsupported block log version exception
  • (#9916) EPE-482 Fix compiler warnings in build
  • (#9967) updated to new docker hub repo EOSIO instead EOS
  • (#9073) Deep Mind off-chain ABI serializer & FC encoded hex output
  • (#9732) Fix unresolved set_kv_parameters_packed problem
  • (#9723) Remove compiler warnings from test_kv_rocksdb.cpp
  • (#9734) update bios to have 'temporary' setpparams action
  • (#9739) Fixing blockvault test for macos 10.14
  • (#9735) Adding enable-kv.sh script
  • (#9747) Prune test diagnostics
  • (#9750) Fix PostgreSQL transaction problem
  • (#9749) Added a new application method for sync from blockvault
  • (#9751) blockvault_client_plugin logger
  • (#9743) fixed get_kv_table_rows issues
  • (#9744) Fix backing store switching issues
  • (#9740) improve EOS VM OC cache lookup performance via hashed index
  • (#9752) sync from block vault during block production
  • (#9714) Remove unused code
  • (#9760) Optimizations
  • (#9726) adjust validate-reflection-test to work with any directory layout
  • (#9762) Added handling of duplicate reversible blocks.
  • (#9706) Default to returning WASM as returning WAST has been deprecated.
  • (#9766) update dependencies for deb and rpm packages
  • (#9767) Fix compiler warnings
  • (#9768) FIX libpqxx not found problem
  • (#9769) Version number changes in README.md for enable-kv.sh script
  • (#9770) Workaround the PowerTools name change
  • (#9772) Saving and restoring undo stack at shutdown and startup
  • (#9777) Add feature BLOCKCHAIN_PARAMETERS
  • (#9782) Update supported operating systems in README.md
  • (#9787) Fix build script problem with older version of cmake
  • (#9776) Add CentOS 8 Package Builder Step
  • (#9790) fix unstable nodeos_run_test.py
  • (#9778) Reduce logging for failed http plugin calls
  • (#9826) Add warning interval option for resource monitor plugin
  • (#9771) Fix libpqxx warnings on Mac
  • (#9724) Enable test test_state_history::test_deltas_contract_several_rows
  • (#9814) Re-enable full multi_index_tests
  • (#9837) fix populating some information for get account
  • (#9846) Add easter egg for release 2.1-rc2
  • (#9859) Fix problem when using ubuntu libpqxx package
  • (#9831) Fix or inhibit various compiler warnings while building on clang.
  • (#9874) Fix build problem on cmake 3.10
  • (#9881) Removed some unnecessary cmake commands as they get inherited from the parent cmake.
  • (#9883) Fix problem with libpqxx 7.3.0 upgrade
  • (#9888) Egonz/auto 313 final
  • (#9870) Consolidated Security Fixes for 2.0.9 - develop
  • (#9917) Create a fix to support requested encoding type in next_key
  • (#9918) Update abieos submodule - opaque type changes
  • (#9927) trace history log messages should print nicely in syslog
  • (#9935) Fix "cleos net peers" command error
  • (#9936) Update abieos submodule
  • (#9937) fix intermittent fork test failure in develop
  • (#9955) PowerTools is now powertools in CentOS 8.3
  • (#9962) Make get_kv_table_rows work without --lower and --upper and --index
  • (#9899) use oob cmake if possible so as to save script building time
  • (#9915) extra transaction data integration test
  • (#9889) EOS VM OC: Support LLVM 11
  • (#9885) replace old libsecp256k1 fork with upstream; boosts k1 recovery performance
  • (#9973) update fc
  • (#9940) Create eosio-debug-build Pipeline
  • (#9964) refactor get_kv_table_rows
  • (#9978) move fc::blob to/from_variant out of libchain to fc
  • (#9974) develop -- Fix incorrect merge of range fix in fork test from Rel 2.1
  • (#9984) EPE-389 Fix net_plugin stall during head cachup - merge develop
  • (#9987) Develop: add a second account to exhausive_snapshot_test
  • (#9919) Remove nonfunctional ENABLE_BLOCK_VAULT_CLIENT cmake option.
  • (#9982) Add unit tests for new fields added for get account in PR#9838
  • (#10013) [develop] Fix LRT triggers
  • (#10032) [develop] Fix MacOS base image failures
  • (#10044) Reduce Docker Hub Manifest Queries
  • (#10036) Add cleos system activate subcommand (to activate system feature like kv_database)
  • (#10041) [develop] Updated Mojave libpqxx dependency
  • (#10038) Updating develop to latest eos-vm eosio hash.
  • (#10039) Replacing db intrinsic uses of RocksDB lower_bound when direct read could be used
  • (#10037) implement splitting/extracting block log for eosio_blocklog
  • (#10053) [develop] Add Big Sur instances to CICD
  • (#10055) [develop] Revert Anka plugin version
  • (#10045) Fix multiversion test failure
  • (#10064) [develop] Fix docker steps on tagged builds.
  • (#10059) Cleos print error message from server when parse json failed
  • (#10056) add docker-compose based multiversion test
  • (#9966) add a dockerignore file ignoring .git directory
  • (#10019) revert changes to empty string as present for lower_bound, upper_bound, or index_value
  • (#10040) remove BOOST_ASIO_HAS_LOCAL_SOCKETS ifdefs
  • (#10078) add merge blocklog feature
  • (#10081) update fc
  • (#10086) allow fix_irreversible_block to without index file
  • (#9922) Remove reversible db
  • (#10087) add first_block_num for get_info command
  • (#10051) Add new loggers for dumping transaction trace
  • (#10095) abieos with to/from_json fix for SHiP transaction_trace
  • (#10103) plugin_http_api_test - fix timing issue
  • (#10100) Standardize JSON formatting of action data (epe 151)
  • (#10120) Adding test for nodeos --full-version check.
  • (#10126) Update eosio-resume-from-state Documentation
  • (#10125) fix compiling with boost 1.76; add include in chainbase
  • (#10144) huangminghuang/kv-get-row-time-tracking
  • (#10152) huangminghuang/docker-compose-debug
  • (#10149) [develop] Update timeouts for Mac builds.
  • (#10093) cache key values in iterator store in db_context_rocksdb
  • (#10157) [develop] Improve timeouts occurring on Anka builds for remaining pipelines.
  • (#10160) Updating nodeos parameter tests to use cmake locations.
  • (#10168) Subjective bill trx - develop
  • (#10181) Remove cerr - develop
  • (#10173) develop: Exit nodeos if fork_db is corrupted and lib cannot advance
  • (#10224) Add test case for decompress zlib funciton of transaction, see EPE70
  • (#10231) Support Running Version Tests on Fresh OS Installs
  • (#10236) disable appbase's automatic version discovery via git
  • (#10237) fix db_modes_test pipeline fails, see epe889
  • (#10262) Correct fix-irreversible-blocks option default value which was set in…
  • (#10261) ship-v2
  • (#10270) fix compile with gcc11
  • (#10272) Consolidated Security Updates for 2.0.12 - develop
  • (#10278) SHiP new unit test - delta generation using eosio.token actions
  • (#10276) Ensure container.size() > 0 before initiating RocksDB writes/deletes
  • (#10293) Merge back submodule chainbase pull 67 to eos develolp
  • (#10279) Fix issue with account query db for develop
  • (#10109) Change blockvault client plugin initialization log message
  • (#10298) don't specify default values for reversible blocks db configs
  • (#10306) remove reversible-blocks configs from db_modes_test
  • (#10134) add --no-auto-keosd to cli_test
  • (#10246) update boost tarball location
  • (#10313) [develop] Add annotate in pipeline runs.
  • (#10301) huangminghuang/update-abios
  • (#10318) Removed transaction_hook additions from global_property_v2 in abieos.
  • (#10297) EPE-412: use better error message when a port is taken
  • (#10326) remove some left over "Intl" cmake variables
  • (#10319) Update state_history_tests.cpp
  • (#10320) Added Privacy Test Case #4
  • (#10329) Initializing ssl_enabled.
  • (#10331) EPE897:Wrong cleos version test in eos/tests/
  • (#10333) As the wait return code is likely to be $NODEOS_PID (stopped child re…
  • (#10335) huangminghuang/fix-ship-block
  • (#10339) state-history-exit-on-write-failure
  • (#10305) fix boost unit test linkage; fixes build on Fedora 34
  • (#10310) remove old outdated MSVC bits in cmake files
  • (#10328) scenario 3 test added to feature privacy tests
  • (#10348) Removed delay on start with TLS connections
  • (#10344) Fix incorrect prune state of a signed_block issue
  • (#10356) flakiness fix for forked chain test
  • (#10363) to_json: use letter escapes
  • (#10376) Update EOS license year 2021 - develop
  • (#10372) Sanitize Branch Names for Docker Containers
  • (#10384) Copy RocksDB license into EOS repo
  • (#10387) Update license of submodule eosio-wasm-spec-tests to year 2021 - develop
  • (#10392) Addressing identified security vulnerability (node-fetch)
  • (#10405) test for existence of "data" field when printing action result, introduced by PR #10100
  • (#10413) Ro transactions remove account param
  • (#10350) Keep all block logs in retained directory
  • (#10377) Refactor block tracking to avoid re-sending to sender - develop
  • (#10414) feature privacy enhancements
  • (#10419) be explict about config.hpp location; fixes CMP0115 warning on latest cmake
  • (#10427) feature privacy snapshot test
  • (#10428) fix homebrew sha256 warning
  • (#10450) fix bug in trace_api_plugin no params returned GH issue 10435 / EPE 1066 #10435 #10449
  • (#10451) Add full cleos return object to final test assertion
  • (#10454) [develop] Update Anka nodes used for build script pipelines.
  • (#10457) Actually wait for the setup transaction to be added to a block.
  • (#10458) resolve flakiness in privacy scenario 3 test
  • (#10434) Always attempt to resync when receiving a block less than LIB.
  • (#10460) Support Stability Testing for Tests + CI Bug Fixes
  • (#10465) Bug Fixes for the eosio-test-stability Pipeline
  • (#10467) Another Bug Fix for the eosio-test-stability Pipeline
  • (#10470) Revert "Refactor block tracking to avoid re-sending to sender - develop"
  • (#10476) Add waits for token transfer block to improve reliability.
  • (#10471) Add validation to ensure transaction level resource_payer info matches transaction_extensions
  • (#10432) Update Zipkin connection retry - develop
  • (#10462) simplify build & fix binaries via a forked & modified libpqxx compatible with libpq 9.2
  • (#10481) multiversion test old version v2.0.9 -> release/2.1.x
  • (#10431) Test packaged EOSIO Linux artifacts against standard dockers.
  • (#10478) flakiness fix for eosio_blocklog_prune_test
  • (#10483) fix MacOS 10.15 pinned build problem with clang10
  • (#10485) Don't Always Push to DockerHub

Documentation

  • (#9695) [docs] update docs to reflect updated code using 128MiB
  • (#9728) [docs] Update URL in net_api_plugin description
  • (#9729) [docs] Update some chain_api_plugin descriptions
  • (#9755) [docs] Remove sudo command from install/uninstall script instructions
  • (#9757) [docs] Add BlockVault client logger to nodeos reference
  • (#9737) Update how-to-replay-from-a-blocks.log.md
  • (#9765) added next_key_bytes
  • (#9774) [docs] Add new fields to producer_api_plugin create_snapshot endpoint
  • (#9797) [docs] Correct link to the chain plugin
  • (#9780) [docs] Fix schemata version and update nodeos plugins
  • (#9788) [docs] Corrections to nodeos storage and read modes
  • (#9807) [docs] update link to chain plugin to be relative
  • (#9817) [docs] Fix blockvault plugin explainer and C++ reference links
  • (#9873) chain api plugin / get_activated_protocol_features modifications
  • (#9907) Add MacOS 10.15 (Catalina) to list of supported OSs in README
  • (#9904) [docs] dev branch: add how to local testnet with consensus
  • (#9951) [docs] dev - improve annotation for db_update_i64
  • (#9946) [docs] cleos doc-a-thon feedback
  • (#9948) [docs] cleos doc-a-thon feedback-3
  • (#9947) [docs] cleos doc-a-thon feedback-2
  • (#9949) [docs] cleos doc-a-thon feedback-4
  • (#10007) [docs] Update various cleos how-tos and fix index
  • (#10022) [docs] develop: improve cleos how to
  • (#10025) Documentation - correct description for the return value of the kv_get_data intrinsic
  • (#10110) Fixed get_kv_table_rows documentation to match the current code behavior.
  • (#10183) [docs] Update Create key pairs How-to
  • (#10230) Add comment why include_delta of code_object just returns false
  • (#10241) huangminghuang/ship-max-retained-files
  • (#10291) [docs][Develop] Update to how to and command ref
  • (#10308) [doc][develop] Add resource_monitor_plugin documentation
  • (#10346) [docs][develop] - match new template for "how to link permissions" and "set action permission"
  • (#10362) [docs]command ref docs fix - fix broken link, replace Set, fix callout
  • (#10360) [docs] Update cleos net commands and net plugin description
  • (#10069) [docs] Update List Keypairs cleos How-to
  • (#10072) [docs] Update Import keys cleos How-to
  • (#10198) [docs] Update Query account info How-to - 2.0
  • (#10075) [docs] Update Query Transaction Info cleos How-to
  • (#10399) [docs] Delisted Ubuntu 16.04 from installation instructions
  • (#10178) [docs] Update Create an account How-to
  • (#10422) [docs] Add usage and split/extract/merge options to eosio-blocklog
  • (#10443) [docs] documentation for 2.2 - read-only queries - cleos updates
  • (#10395) [docs] add transaction sponsorship cleos how to
  • (#10492) [docs] Add privacy access feature documentation

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.

26a4d28
Compare
Choose a tag to compare

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:password@mycompany.com

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

Upgrading From v2.0.x

Node operators running version v2.0.x should be able to upgrade to v2.1.0 using a snapshot. In addition, moving from a chainbase-backed node to a RocksDB-backed node or the reverse will also require a snapshot to migrate.

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 get_table_* 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:

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.

32a47e3
Compare
Choose a tag to compare

This release contains security updates and miscellaneous fixes.

Security updates

Consolidated Security Updates for v2.0.12 (#10264)

  • Apply three-strikes rule to all transaction failures
  • Apply unconditional subjective CPU check along with some additional logging
  • Provide options to enable subjective CPU billing for P2P and API transactions ,and provide an option to disable it for individual accounts

This release expands upon the subjective CPU billing introduced in (v2.0.10). Subjective billing (disabled by default) can now be applied to transactions that come in from either P2P connections, API requests, or both. By setting disable-subjective-billing to false both P2P and API transactions will have subjective CPU billing applied. Using disable-subjective-p2p-billing and/or disable-subjective-api-billing will allow subjective CPU billing to be enabled/disabled for P2P transactions or API transactions respectively. Another option , disable-subjective-account-billing = <account>, is used to selectively disable subjective CPU billing for certain accounts while applying subjective CPU billing to all other accounts.

cleos get account is enhanced to report subjective cpu bandwidth, which contains used subjective CPU billing in microseconds for a particular account on a given node.

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

Other changes

  • (#10155) [2.0.x] Improve timeouts occurring on Anka builds.
  • (#10171) Wlb/ctest generalization for parameter tests 2.0.x
  • (#10233) Support Running Version Tests on Fresh OS Installs
  • (#10244) migrate boost downloads from BinTray to JFrog Artifactory - 2.0
  • (#10250) Rel 2.0.x: Subjective CPU billing cleos enhancement and adding subjective_cpu_bill to /v1/chain/get_account result

Documentation

  • (#10186) Add EOSIO 2.0.11 release notes to dev portal - 2.0

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.

8f29da1
Compare
Choose a tag to compare

This release contains security and miscellaneous fixes.

Security bug fixes

Consolidated Security Fixes for v2.0.11 (#10147)

  • Fix issue with account query db that could result in incorrect data or hung processes

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

Other changes

  • (#10063) [release 2.0.x] Fix docker steps on tagged builds.
  • (#10135) Wlb/adding nodeos param tests 2.0.x
  • (#10133) fix compiling with boost 1.76; add include in chainbase - 2.0

Documentation

  • (#10094) [docs] Add EOSIO 2.0.10 release notes to dev portal - 2.0

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.

37d9df6
Compare
Choose a tag to compare

This release contains security, stability, and miscellaneous fixes.

Security bug fixes

Consolidated Security Fixes for v2.0.10 (#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.

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) EPE-389 net_plugin stall during head catchup - merge release/2.0.x

Other changes

  • (#9894) EOS VM OC: Support LLVM 11 - 2.0
  • (#9911) add step to the pipeline to build and push to dockerhub on release br…
  • (#9944) Create eosio-debug-build Pipeline
  • (#9969) Updating name for the new Docker hub repo EOSIO instead EOS
  • (#9971) Fix pinned builds error due to obsolete LLVM repo
  • (#10015) [release 2.0.x] Fix LRT triggers
  • (#10026) EPE-165: Improve logic for unlinkable blocks while sync'ing
  • (#10047) Reduce Docker Hub Manifest Queries
  • (#10088) [release 2.0.x] Specify boost version for unpinned MacOS 10.14 builds

Documentation

  • (#10011) [docs] Update various cleos how-tos and fix index - 2.0

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.

19ac0bf
Compare
Choose a tag to compare
Pre-release

This is a RELEASE CANDIDATE for version 2.1.0. The latest STABLE
release is v2.0.9.

This release contains security, stability, and miscellaneous fixes.

Security bug fixes

Consolidated Security Fixes for v2.1.0-rc3 (#9869)

  • 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

  • (#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

Other changes

  • (#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

  • (#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

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.

4ffe963
Compare
Choose a tag to compare
Pre-release

This is a RELEASE CANDIDATE for version 2.1.0. The latest STABLE release is v2.0.9.

This release contains security, stability, and miscellaneous fixes.

Security bug fixes

  • (#9828) Fix packed transaction version conversion -- Release 2.1.x

Note: This security fix is relevant to all nodes on EOSIO blockchain networks.

Stability bug fixes

  • (#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

Other changes

  • (#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

Documentation

  • (#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

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.

58f90b9
Compare
Choose a tag to compare

This release contains security and miscellaneous fixes.

Security bug fixes

Consolidated Security Fixes for 2.0.9 (#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) Fix stdout console logging: Merge back #9582 to 2.0.x

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.

c7487e7
Compare
Choose a tag to compare
Pre-release

This is a RELEASE CANDIDATE for version 2.1.0. The latest STABLE release is v2.0.8.

While EOSIO has always been innovative and highly-performant, this release focuses on making it easier to build large-scale applications on the platform, and to maintain them once they’re deployed. It is a reflection of our commitment to abstract away some of the complexities of blockchain development and make it approachable to a broader audience.

EOSIO 2.1.0-rc1 marks the first time we’re releasing a feature that is specifically intended for private blockchains only, with the the ability to remove Context-Free Data. This feature will provide a way for private blockchain administrators to delete a specifically designated section of data, without compromising the integrity of the chain.

The EOSIO 2.1.0-rc1 also includes additional features that optimize blockchain data storage, simplify table management, and provide clustering options for system administrators.

We encourage developers to test the additional features in the EOSIO 2.1.0-rc1, and provide us with feedback. If you would like to offer feedback on the release candidate of EOSIO 2.1.0 and work more closely with our team to improve EOSIO for developers, you can contact our developer relations team at developers@block.one.

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 add 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 of this is in 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.

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 enables 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 and MacOS 10.14 (Mojave).

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:password@mycompany.com

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 either the DB or 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.

Known Issues

A known issue exists with accessing the right version of libpq.so on Centos 7.x, Amazon Linux 2, and Ubuntu 16.04 when running with the prebuilt binaries attached to the v2.1.0-rc1 release notes in Github (binaries located at the bottom of this page). On those platforms please build EOSIO from source using the provided ~/eos/scripts/eosio_build.sh script using the instructions provided here to overcome the issue (you will need to perform a git checkout v2.1.0-rc1 followed by a git submodule update --init --recursive before running the script)

Deprecation and Removal Notices

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

Upgrading From previous versions of EOSIO

Upgrading From v2.0.x

Node operators running version v2.0.x should be able to upgrade to v2.1.0-rc1 using a snapshot. In addition, moving from a chainbase-backed node to a RocksDB-backed node or the reverse will also require a snapshot to migrate.

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

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 get_table_* reference in Chain API
  • (#9687) [docs] adding third party logging and tracing integration documentation for

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.