EOSIO Software Release Recap

In the interest of community support we continue to patch earlier builds with various bug fixes and stability updates in parallel with the releases of our latest builds. 

This article contains a summary of the latest updates for EOSIO, EOSJS, eosio.contracts, and other developer resources.

EOSIO

EOSIO v2.0.3

On February 14, 2020 we released EOSIO v2.0.3. Updates introduced in this version of EOSIO focused on security, stability, and other fixes.

Security:

  • Added deadline to base58 encoding

Stability:

  • As with EOSIO v1.8.12, initialized all net_plugin class member variables

Other changes:

  • As with EOSIO v1.8.12, introduced method to skip sync from genesis and resume from state tests
  • As with EOSIO v1.8.12, replaced Travis with Github Actions to triple the amount of concurrent jobs
  • As with EOSIO v1.8.12, removed an unnecessary install 
  • Bumped script’s macOS version check to 10.14 as EOSIO will no longer build on older versions

EOSIO v1.8.12

On February 14, 2020 we also released EOSIO v1.8.12. Updates introduced in this version focused on stability and other changes.

Stability:

Other changes:

  • Introduced method to skip sync from genesis and resume from state tests
  • Replaced Travis with Github Actions to triple the amount of concurrent jobs
  • Removed an unnecessary install

EOSIO v2.0.2

On February 7, 2020, we released EOSIO v2.0.2. This update focuses on consolidated security patches, stability fixes, and other changes.

Security:

Stability:

  • Modified internal state to reset handshake when a socket is closed prior to asynchronous callback to alleviate net_plugin of any confusion
  • Now using post instead of dispatch to avoid reentrant calls in strand
  • Changed definition of max consecutive rejected blocks from 3 to 13, accounting for the drop late blocks feature
  • Fixed guards for read-only modes
  • Introduced possible fix for occasional node stall
  • Reverted consensus module that provided incorrect calculation for delayed starting time on production of initial block

Other changes:

  • As with EOSIO v1.8.11, introduced two mechanisms, cpu-effort-percent and last-block-cpu-effort-percent, to limit the window in which blocks may be produced
  • Reduced data limits on signatures, and introduced recommendation to utilize eosjs v20 to generate proper signatures as other libraries may be rejected by nodes
  • As with EOSIO v1.8.11, removed unneeded check to see if a node is building a block
  • As with EOSIO v1.8.11, introduced a simplified on_incoming_block check to read-only mode
  • As with EOSIO v1.8.11, expanded watermark to prevent any delegate from ever producing the same slot or earlier
  • Introduced the following documentation changes:
    • Removed of $ from shell codeblocks
    • Added backticks on proper names
    • Fixed typos, syntax errors
    • Removed outdated javascript example and protocol document from state history plugin pending further updates
    • Added Official Testnet URL as needed
  • Modified read only state to allow incoming transactions, facilitating interaction among peer to peer relay nodes between block producers and added warning log message
  • Removed a duplicate log message

EOSIO v1.8.11

On February 7, 2020 we also released EOSIO v1.8.11. This update introduced patches to promote additional stability and other fixes.

Stability:

  • Changed process priority from low to high for async_write to reduce latency under heavy strain, and scheduled sending sync blocks at low priority to prevent peer sync from overloading a node
  • Introduced fixes for ro/immutable modes
  • Added logic for handling unlinkable blocks resulting from 1.8.x syncing from 2.0.x peers

Other changes:

  • Introduced two mechanisms, cpu-effort-percent and last-block-cpu-effort-percent, to limit the window in which blocks may be produced
  • Removed unneeded check to see if a node is building a block
  • Introduced a simplified on_incoming_block check to read-only mode
  • Expanded watermark to prevent any delegate from ever producing the same slot or earlier

EOSIO v2.0.1

On January 28, 2020 we released the latest build of EOSIO to v2.0.1. This update focused on security, stability, and other improvements.

Security:

  • As with EOSIO v1.8.10, enhanced security with earlier block validation
  • As with EOSIO v1.8.10, improved handling of deferred transactions during block confirmation
  • As with EOSIO v1.8.10, reduced the net plugin logging handshake size limits

Stability:

  • Removed block id notify feature that caused issues with large numbers of connections
  • Changed reports to indicate when a validation block produces a different block id
  • As with EOSIO v1.8.10, introduced changes to the handling of late blocks that makes them more likely to be dropped, improving production stability overall
  • As with EOSIO v1.8.10, resolved a crash on exit error

Other changes:

  • As with EOSIO v1.8.10, updated the FC repository to eliminate a crash in logging
  • Updated README.md to fix broken documentation links
  • Identified an issue with Boost installation
  • Reverted FC to its proper place following a mistaken commit
  • Added a pipeline file for testing build script
  • As with EOSIO v1.8.10, forked to the EOSIO/anka-buildkite-plugin repo to reduce attack surfaces
  • As with EOSIO v1.8.10, added logic to prevent LRT pipelines from self triggering

EOSIO v1.8.10

On January 28, 2020 we also released EOSIO v1.8.10. This update focused on security, stability, and other changes.

Security Improvements:

  • Enhanced security with earlier block validation
  • Improved handling of deferred transactions during block confirmation
  • Reduced the net plugin logging handshake size limits

Stability Improvements:

  • Updated the FC repository to eliminate a crash in logging
  • Introduced changes to the handling of late blocks that makes them more likely to be dropped, improving production stability overall
  • Resolved a crash on exit error

Other changes:

  • Fixed discovery of openssl in tester cmake when OPENSSL_ROOT_DIR is not set
  • Added better sleep pre-execute for Anka commands + boost fix
  • Forked to the EOSIO/anka-buildkite-plugin repo to reduce attack surfaces
  • Allowed for aliases of variants in ABI
  • Added logic to prevent LRT pipelines from self triggering

Contracts

eosio.contracts v1.9.1

On February 3, 2020 we released eosio.contracts v1.9.1. With this update, a number of bugfixes and changes were introduced.

System Contract:

  • We identified and patched a bug in the producer scheduling logic in v1.9.0 of the system contract that, when triggered, include a pause in payments to block producers, block producer changes, and the closing of name auction. A simple update to v1.9.1 resolves this issue.

Other changes:

  • Introduced logic to retry downloading the CDT binary, updated built/test commands to support the new logic, and improved logging output
  • Switched out TravisCI in favor of Github Actions
  • Cleaned details in annotations to be compatible with mdjavadoc generator

Dependencies:

  • It is important to note that, In this update, the eosio.system and eosio.bios contracts contained within can only be deployed on an EOSIO blockchain following the activation of the WTMSIG_BLOCK_SIGNATURES consensus upgrade. If starting a fresh blockchain, older versions of the eosio.bios contract (v1.7.x or v1.8.x) may be used to activate this protocol feature.

EOSJS

EOSJS v21.0.0-rc2

Another February 7, 2020 release is the EOS JS v21.0.0 release candidate. This release candidate focuses on enhancing the elliptic library, introduces new commands as well as the use of minified files for production environments, and other changes.

Elliptic library:

  • Introduced helper functions to perform actions that sign, verify, and recovery key signatures

Commands:

  • Deprecated table_key parameter and replaced with index_position
  • Added yarn build-web command that creates both debug and minified files in dist_web

Minified files:

  • Introduced recommendation to use minified files as opposed to debug files in production environments to reduce load times on end user

Other changes:

  • Merged pull request #649 from EOSIO/develop-version-bump to lock versions
  • Added functions from eosjs-ecc to PrivateKey/PublicKey/Signature classes to handle format conversions and call elliptical functions
  • Removed the Travis CI configuration pending future updates
  • Introduced zero padding to r and s signatures so they will generate signatures with the proper amount of bytes
  • Fixed an issue with an invalid symbol
  • Removed certain warnings and related documentation
  • Added IMPORTANT.md and changed related section in the README.md document
  • Adjusted minified and debug files created by yarn build-web to follow new minified file convention
  • Removed usages of the now deprecated table_key command
  • Updated documentation to properly reference the new doc version

Other Updates

Elemental Battles

In addition, on February 7, 2020 we updated the repository for Elemental Battles, an educational tutorial and card game, to eosio-card-game-repo v1.1.10.

Tropical Stay App v1.1.0

We continue to explore innovative approaches to improve account security on EOSIO. On January 18, 2020, we released Tropical Stay App to v1.1.0. The Tropical Stay Example Application provides a guideline for developers on how to integrate multi factor authentication powered by WebAuthn with EOSIO web applications. WebAuthn allows applications to authenticate user credentials by way of hardware devices. This most recent version of Tropical Stay provides examples on how to set up a hardware authenticator, such as aYubiKey or an iOS device with TouchID or FaceID, with WebAuthn to validate account signatures.

Stay Connected

We are committed to the ongoing improvement of EOSIO software, tools, and resources. If you would like to offer feedback and work more closely with our team to improve EOSIO for developers, you can send our developer relations team an email at developers@block.one.

To keep up-to-date with future announcements, you can also subscribe to our mailing list on the EOSIO website. We are excited to be regularly improving the usability of the software for EOSIO developers as we continue to lay a foundation for the mass adoption of blockchain technology.

. . .

Important Note: All material is 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 material, you accept and agree to the terms of the notice.

Developer Tools EOSIO EOSIO Tools EOSJS Reference Smart Contracts

Leave a Reply

Your email address will not be published. Required fields are marked *