@wanderingbort wanderingbort released this Jul 17, 2018 · 845 commits to master since this release

Assets 2

Features Introduced in 1.1.0

Note, the EOSIO Developer Portal documentation has not been updated yet, this work is being done over the next few days. This notice will be removed once the documentation has been updated.

MongoDB Plugin (#4304)

The MongoDB Plugin (eosio::mongo_db_plugin) is an optional plugin that provides archiving of blockchain data into a MongoDB. This creates a read-only copy of the data in the blockchain that enables highly-scalable and convenient queries on that data.

For information on deploying and accessing a MongoDB cluster, please visit The EOSIO Developer Portal.

Read-Mode: HEAD (#4373)

Configuring an instance of nodeos for Read-Mode: HEAD means that all RPC endpoints will return data as of the latest (head) block of the chain. This excludes any changes from unconfirmed transactions that may be relaying on the peer-to-peer network. This mode can be useful to determine what transactions have been applied to the blockchain by at least one producer but may not have reached finality.

Future read modes will provide even stronger guarantees for the data returned by the RPC.

For more information on configuring nodeos to run in Read-Mode: HEAD, please visit The EOSIO Developer Portal.

nodeos Quality of Life Improvements

Faster Syncing (#4649)

Previously, when a new node was syncing the blockchain it would also attempt to remain a good network citizen and validate/relay transactions that it learned about. If the chain was too far out of sync, not only did the accuracy of the validation degrade but the cost of doing the validation increased.

In version 1.1.0, nodeos will no longer attempt to relay transactions when they are too far out of sync to provide meaningful validation. The result is a significant performance improvement when syncing into a network for the first time or if a node falls behind.

Database Size Guards (#4666)

The two in-memory databases that drive EOSIO, state DB and reversible block DB, are now protected by usage guards which allow running instances of nodeos to detect imminent overages and gracefully shutdown the process before hitting the dreaded BAD_ALLOC exception that caused dirty databases and required a long replay to fix. Recovering from exhausted databases is now as easy as modifying a single config and restarting the process without any need for replays or resyncs to the network.

For information on configuring the database sizes and guards, please visit The EOSIO Developer Portal.

Preview Releases in 1.1.0

This release includes a few features which, while not production ready, represent the direction the EOSIO blockchain software. We invite community members to test and provide feedback on these features as they progress towards their respective releases.

Fair Warning, these features should be considered "ALPHA" quality.

Hardware Wallet support in keosd

Hardware wallets provide superior security to software alternatives. As part of an on-going effort to make it easy for users to secure their keys on EOSIO blockchains, keosd will be gradually adding support for accessible and widely available hardware wallet technologies.

OSX Secure Enclave (#4244)

Apple's Secure Enclave is present in several of their popular laptop and desktop offerings. keosd now allows any user who owns a recent Apple computer to begin securing their EOSIO accounts with hardware-based keys via the Secure Enclave.

Once the wallet is unlocked, you can issue cleos wallet create_key -n SecureEnclave commands to create keys within the Secure Enclave wallet. You may not import keys.

In order to access Secure Enclave your executable must be signed. For more information on building a signed preview release of keosd with Secure Enclave support, please visit The EOSIO Developer Portal.

YubiHSM 2 (#4526)

The YubiHSM 2 is an external hardware security module that can be added to any user's computer with a USB port. keosd now allows any user on supported Linux distributions and MacOS to begin securing their EOSIO accounts with hardware-based keys via the YubiHSM 2. This may be particularly interesting for block-producers running on hard-iron. We are seeking feedback on the level of interest in support for the YubiHSM 2, please add feedback to #4526.

For more information on building a preview release of keosd with YubiHSM 2 support, please visit The EOSIO Developer Portal.

Login Plugin (#4375)

The login plugin is the first component supporting the concept of applications authenticating with the EOSIO blockchain. The plugin API allows you to verify a user is able to sign to satisfy a specified authority. The API for the plugin is preliminary and may change in the future.

Other Changes

  • [cleos/RPC] Support for secondary indices when reading table data (#4053)
  • [cleos] Support for proposing whole transactions to eosio.msig (#4248)
  • [cleos] Support for eosio.sudo (#4431)
  • [cleos] Support for issuing atomic delegatebw/buyram transactions (#4297)
  • [cleos] Support for buyram in KiB (#4427)
  • [cleos] Major pass at improving error messaging (#4587)
  • [RPC] Endpoint for fetching scheduled transactions (#4470)
  • [nodeos] Support for greylisting accounts, preventing access to the unclaimed resources in an uncongested chain (#4368)
  • [nodeos] Support finer control over timing of block transmission to compensate for network lag between producers (#4118)
  • [nodeos] Support for checkpoints which can enforce the chain includes well-known-valid blocks during sync (#4471)
  • [nodeos] Support for exporting and importing reversible block database as portable file format (#4253 and #4680)
  • [nodeos] Improved producer watermark tracking (#4560)
  • [nodeos] Logging updated to use ISO timestamps (#4255)