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
eosiocpp
was 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 repositorycleos
currently attempts to auto-launchkeosd
and 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.0binaryen
as 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
cleos
help 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) cleos
support 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
assert
s 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_name
instead ofN(eosio.prods)
(#5277) - Add new
get_raw_abi
RPC 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-open
flag for thecleos transfer
command to prepend aneosio.token::open
action before theeosio.token::transfer
action (#5581) get_account
RPC 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 account
sub-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_transaction
RPC of thehistory_plugin
(#5723) - avoid plugin through irreversible_block signal change block before apply_block (#5611)