EOSIO 1.3.0 Release Notes
This release comprises several additional features and fixes, in addition to the cumulative patches made against v1.2
A blog post providing more information can be found here
DEPRECATION NOTICES
eosiocppwas scheduled to be removed in v1.3.0 but is NOT. It remains deprecated and the timeline for removal is undefined. It has been supplanted by on-going effort in the eosio.cdt repositorycleoscurrently attempts to auto-launchkeosdand communicate over TCP socket when no instance exists. This is deprecated and v1.4.0 will change this default to named-socket communication. Please see the notes below for details on how to take advantage of named-sockets in v1.3.0binaryenas a WebAssembly runtime is deprecated and will be removed in v1.4.0 in favor ofwabt. At that time the default WebAssembly runtime will becomewabt. Please see the notes below for details on the new interpreter backend.
Changes
New WebAssembly Interpreter: wabt (#5416)
WABT (pronounced: wabbit) is a well respected standards compliant WebAssembly interpreter. Internal profiling indicated that it was up to 2x faster at retiring contract transactions compared to our current default interpreter: binaryen. This release includes a complete integration of WABT into the EOSIO blockchain allowing nodes to take advantage of the decreased cost of transaction processing. This can be enabled by setting the wasm-runtime configuration for nodeos to wabt.
Trusted Producer: Light Validation (#5631)
In order to facilitate faster propagation of transactions and blocks within the local network of API, P2P and block-signing nodes operated by a given block producer, the option to grant light-validation to blocks created by that producer's block-signing node has been added to nodeos. This can be enabled by adding the producer's own account name as the trusted-producer value on the nodeos command line for all internal nodes.
MongoDB improvements (#5339) (#5670)
MongoDB now stores the block information and the RAM usage as part of action_trace data allowing greater insight into how actions utilize resources.
Additionally, the ability to filter actions based on wildcards in any combination of the receiver, contract, action filters allows for greater flexibility when tracking a subset of the actions on a given chain.
HTTP over Unix Socket support for keosd (#5425)
keosd now supports HTTP-RPC requests delivered over a Unix socket. This allows operators to take advantage of greater security and permissions concepts available to named sockets. By default, keosd will accept requests at ~/eosio-wallet/keosd.sock however, this is configurable. For more details, see the write-up attached to #5425
Unknown configuration items in config.ini will now error on startup (#5678)
Prior to 1.3.0 unknown configuration items in config.ini would be silently ignored. This behavior has been changed in 1.3.0 to an error that prevents startup of nodeos. Users with old auto-generated config.ini files may need to remove some options that are no longer available in nodeos for example wallet-dir or unlock-timeout
Other Changes
- Transaction trace logging for visibility of transactions on P2P (#5725)
- Fix typo in
cleoshelp text (#5639) - Doxygen fixes for copy of eosiolib (#5603)
- Unit test fixes (#5634)
- Fix wording for Inline Action Depth Reached (#5635)
- Support iteration over scopes & tables in cleos (#5486)
- Remove unused variable (#5582)
- Spelling and whitespace corrections in transaction.h (#5580)
- Inverted check for flag for no auto keosd (#5574)
- Fix Spurious Long Running Test Failures (#5558)
- Launcher tests (#5476)
- Print separators properly with
cleos get account(#5506) cleossupport for delayed transaction(#5492)- Remove old exchange contract (#5477)
- New test to ensure require_recipient to generator is ignored (#5446)
- Chain api: get code hash (#5434)
- add
cleos set contract/code/abi --clear(#5442) - Correct cleos get table help text from 'contract' to 'account' (#5448)
- Stop creating anonymous volumes during image build (#5444)
- Docker Improvements (#5452)
- Build secp256k1 as a submodule (#5478)
- Updates to fc:
- A handful of fc changes to support unix sockets for HTTP RPC (EOSIO/fc#12)
- Optimize sha256 comparison (EOSIO/fc#16)
- Change various
asserts in fc code to useFC_ASSERT(EOSIO/fc#19) - Fix uninitialized data bug in fc cryptographic hash classes when constructing from a hex string (EOSIO/fc#21)
- Fixed framework casing for case sensitive MacOS builds (#5386)
- Improve error for malformed signature (#5305)
- use
config::producers_account_nameinstead ofN(eosio.prods)(#5277) - Add new
get_raw_abiRPC to chain API (#5375) - Support for ABI version 1.1 in
abi_serializer: added variants and binary extensions; major version number in ABI is now enforced (#5652, #5673) - Fixed bugs in
abi_serializer(#5680) - When clearing state DB, erase contents of the state directory but not the directory itself (#5696)
- Add optional
--pay-ram-to-openflag for thecleos transfercommand to prepend aneosio.token::openaction before theeosio.token::transferaction (#5581) get_accountRPC in chain API now tries to determine the core symbol from the installed system contract rather than relying on the build configuration parameter (#5704)- Improvements to
cleos get accountsub-command: robust against mismatch of core symbol between API node and cleos; now also prints account creation time in output (#5704) - Proper matching of transaction ID prefix within
get_transactionRPC of thehistory_plugin(#5723) - avoid plugin through irreversible_block signal change block before apply_block (#5611)