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
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
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
Thanks!
Special thanks to the community contributors that submitted patches for this release:
- @conr2d
- @ndcgundlach
- @maoueh
- @georgipopivanov
- @killshot13
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.