Releases: EOSIO/eos
EOSIO v2.0.13 Release Notes
This release contains stability and miscellaneous updates.
Stability Updates
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.
EOSIO v2.2.0-rc1 Release Notes
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](https://github.com/EOSIO/e...
EOSIO v2.1.0 Release Notes
EOSIO v2.1.0 Release Notes
This release is the stable release of EOSIO v2.1.0 and contains features, security, stability and miscellaneous updates.
Security Updates
Consolidated Security Updates for v2.1.0 (#9869)
- Fixes to packed_transaction cache
- Transaction account fail limit refactor
Note: These security updates are relevant to all nodes on EOSIO blockchain networks.
Stability Updates
- (#9828) Fix packed transaction version conversion -- Release 2.1.x
- (#9811) Fix the truncate bug in Ship - 2.1
- (#9812) Fix snapshot test_compatible_versions failure and reenable it - release/2.1.x
- (#9813) fix balance transfer issue - release/2.1.x
- (#9829) Fix ship truncate problem with stride
- (#9835) Fix Ship backward compatibility issue
- (#9838) fix populating some information for get account
- (#9864) fix incorrect transaction_extensions declaration
- (#9880) Fix ship big vector serialization
- (#9896) Fix state_history zlib_unpack bug
- (#9909) Fix state_history::length_writer
- (#9986) EPE-389 fix net_plugin stall during head_catchup - merge release/2.1.x
- (#9988) refactor kv get rows 2.1.x
- (#9989) Explicit ABI conversion of signed_transaction - merge 2.1.x
- (#10027) EPE-165: Improve logic for unlinkable blocks while sync'ing
- (#10028) use p2p address for duplicate connection resolution
Changes
Action Return Values (#8327)
New protocol feature: ACTION_RETURN_VALUE
. When activated, this feature provides a way to get return values which are strongly committed to in block headers from actions into external processes without having to rely on get_table or using the debug console via print statements. This allows smart contract developers to be able to process the return value from an action directly, further streamlining the smart contract development process. An example can be seen here.
Configurable WASM Limits (#8360)
New protocol feature: CONFIGURABLE_WASM_LIMITS
. When activated, this feature allows privileged contracts to set the constraints on WebAssembly code.
Extensible Blockchain Parameters (#9402)
The basic means of manipulating consensus parameters for an EOSIO blockchain has been a pair of intrinsic functions: get_blockchain_parameters_packed
and set_blockchain_parameters_packed
. These intrinsics are tied to a specific and inflexible definition of blockchain parameters and include no convenient means to version the set of parameters; which is an inconvenience to add/remove/modify in future consensus upgrades.
To alleviate this, Nodeos now has a new protocol feature: BLOCKCHAIN_PARAMETERS
. When activated, this protocol feature is intended to eventually supplant the existing intrinsics and provide greater flexibility for future consensus upgrades. When activated it will allow contracts to link to the new intrinsics.
Health Logging For Nodeos running The State History Plugin (#9208) (#9239) (#9277)
Nodeos now has added support for a separate logger to the state history plugin and includes some additional logging messages for receiving requests and sending replies. In addition, the trace and chain state log can now be split in the state history plugin as well.
Instrumentation Support for Nodeos (#9631)
Nodeos now supports integration with Zipkin, an open source distributed tracing system. This will enable system administrators to optimize Nodeos execution for performance-critical applications.
Key Value Tables (#8223, #9298)
New protocol feature: KV_DATABASE
. When activated, this feature provides a Key Value API. This new API is a more flexible, simplified way for developers to create and search on-chain tables. Developers can also modify the table structure after it has been created, which is currently impossible with multi-index tables.
Developers will also be able to split up tables they have already written. An example is the case where the developer has a table that stores a user’s first and last name along with other information. The developer could now decide to split the original table into two separate tables, one containing the first names and one containing the last names.
As with the existing db api, contracts can flexibly specify which authorizing account provides the RAM resources for this data.
A new data type in EOSIO.CDT v1.8.0 called eosio::kv::map
provides the underlying functionality and should be used in contracts over the type called eosio::kv::table
that is currently in a developer preview state.
An example can be seen here. You can follow the instructions here to quickly create a test chain with Key Value support.
Prune Context-Free Data (#9061)
From inception, EOSIO has supported the concept of Context-Free Data, or data that may be removed without affecting the integrity of the chain. This release includes functionality that is designed to allow administrators to designate specific data as Context-Free and subsequently remove, or prune, that data from the blockchain while maintaining system stability.
Once this data has been pruned, full validation is no longer possible, only light validation, which requires implicit trust in the block producers. Due to this factor, the Prune Context-Free Data feature is only suitable for a private blockchain as part a larger privacy, security, or regulatory compliance solution.
Support For Ubuntu 20.04, CentOS 7.x, and CentOS 8 (#9332) (#9475)
EOSIO now supports Ubuntu 20.04, CentOS 7.x, and CentOS 8, in addition to previous releases supporting Amazon Linux 2, CentOS 7, Ubuntu 16.04, Ubuntu 18.04, MacOS 10.14 (Mojave), MacOS 10.15 (Catalina).
Reimplement Chainbase Using Intrusive Instead of multi_index (#58)
Nodoes now features an upgraded version of chainbase using intrusive instead of multi_index. This makes chainbase more performant and features per container memory pools, full exception safety, lighter weight representation of the undo stack, and avl trees instead of rb trees.
[Developer Preview] Blockvault (#9705)
Nodeos now supports clustering for the block producer node, enabling blockchain administrators to implement industry standard disaster recovery architectures. Two or more nodes may be deployed as a single logical producer. If the primary node goes down, a system properly configured to leverage this solution can attain similar data recovery guarantees to that of industry leading database and cloud services, with minimal service disruption.
While this feature increases resiliency for block production on public networks, it also provides particular value for private chains running with a single logical producer. Single-producer chains can use it to provide immediate finality with tools to mitigate the risk of a single point of failure.
To use this feature, nodeos
must be configured as a producer with the appropriate --block-vault-backend
option specified. For example:
nodeos --plugin eosio::producer_plugin --producer-name myproducera --plugin eosio::blockvault_client_plugin --block-vault-backend postgresql://user:[email protected]
For more information on using this feature please see the README.md
file in directory ~/eos/plugins/blockvault_client_plugin/README.md
.
This feature is being released as a "developer preview" and is not yet ready for production usage. We look forward to community feedback to further develop and harden this feature.
[Developer Preview] RocksDB Storage for DB and Key Value APIs (#9340) (#9529)
RocksDB is now supported as a storage option behind both the DB and Key Value APIs. This gives blockchain system administrators the flexibility to choose between RAM or RocksDB to optimize Nodeos performance for their workloads.
To use this feature, nodeos
must specify which backing store to use by passing the flag --backing-store=rocksdb
.
For more information on using this feature please see the 10_how-to-configure-state-storage.md
file in directory ~/eos/docs/01_nodeos/02_usage/60_how-to-guides/10_how-to-configure-state-storage.md
.
This feature is being released as a "developer preview" and is not yet ready for production usage. We look forward to community feedback to further develop and harden this feature.
Upgrading from previous versions of EOSIO
Upgrading From v2.0.x
Node operators running version v2.0.x should be able to ...
EOSIO v2.0.12 Release Notes
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.
EOSIO v2.0.11 Release Notes
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.
EOSIO v2.0.10 Release Notes
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.
EOSIO v2.1.0-rc3 Release Notes
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.
EOSIO v2.1.0-rc2 Release Notes
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.
EOSIO v2.0.9 Release Notes
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
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.
EOSIO v2.1.0-rc1 Release Notes
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 [email protected].
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:[email protected]
For more information on using this feature please see the README.md
file in directory ~/eos/plugins/blockvault_client_plugin/README.md
.
This feature is being released as a "developer preview" and is not yet ready for production usage. We look forward to community feedback to further develop and harden this feature.
[Developer Preview] RocksDB Storage for DB and Key Value APIs (#9340) (#9529)
RocksDB is now supported as a storage option behind 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-rc...