EOSIO 2.0 is officially released, solving the biggest bottleneck of blockchain development, making EOS "faster, easier and more secure"

EOS Blockchain software development company Block.One has officially released version 2.0 of the EOS Blockchain network basic software EOSIO.

?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ????????????????????????????????????

In an announcement posted on Twitter on January 10, Block.One claimed that this update made the EOS blockchain "faster, easier, and even more secure."

Major changes to smart contract virtual machines

An official blog post about introducing the new software explains that EOS.io 2.0 includes a dedicated WebAssembly (WASM) engine on which EOS smart contracts can be run. According to its official website, WASM uses an instruction format designed to enable deployment on the Web and servers.

This change is expected to improve the performance of smart contract execution as it is said to be 16 times faster than the engine used in previous versions.

This major version update also introduces WebAuthn support. According to the official website, WebAuthn is a web authentication standard based on public key cryptography. The announcement explains how EOS developers use this standard:

"With this version of WebAuthn's support for EOSIO, developers can start testing transaction signatures with WebAuthn in their EOSIO applications."

However, sources said that no date has been set for this update.

Network code multithreading support

Block.One also claims to greatly improve the blockchain's network code by adding multithreading support to it. Multithreading is the ability of a central processing unit to execute multiple execution threads simultaneously.

Multithreading support should improve the performance of block propagation, transaction processing, block and transaction packing and unpacking, and other processes, as these are now handled by separate threads. The announcement reads as follows:

"By isolating these processes, we found that transaction and block processing performance on the multi-producer EOSIO network has improved significantly."

In addition, the update was released with a dedicated integrated development environment (IDE), which is said to speed up the entry for developers.

This is the second major announcement recently made by Block.One and could have a significant impact on the EOS ecosystem. According to a report in late December, Block.One also recently proposed major changes to the network resource allocation system, which will require users to rent network resources instead of purchasing network resources.

The following is the full text of the announcement issued by Block.One (translation):

EOSIO has been updated to a stable EOSIO version 2.0 with security, stability and other fixes. Additional information and release notes are available on GitHub .

EOSIO 2.0 was built with developers in mind. Our focus: make it faster, easier, and more secure to build on EOSIO.

We believe that the biggest bottleneck in blockchain development is the speed at which they execute smart contracts.

EOSIO is the first blockchain software to use the WebAssembly (WASM) engine to improve performance, but over time, we have surpassed the existing universal WASM engine and know that we can do more.

Our solution: Build our own solution and think about blockchain from scratch. EOS VM is our specially built blockchain WASM engine. Compared with Binaryen, which was released with EOSIO 1.0, EOS VMs run the EOS Mechanics WASM CPU benchmark up to 16 times faster.

Next, we want to address the barriers to entry for new developers-those who are heading to #eosiohackathon for the first time or developing for the first time on EOSIO. Usually, setting up a blockchain development environment is a multi-step process that can take hours or even days to complete. That's why we are building the EOSIO Quickstart Web IDE, a development tool that enables new developers to get started to get ready in minutes.

Finally, for all developers, one of the main pain points for attracting new users to blockchain applications is the protection of private and public keys, which can pose security risks if not handled properly. With this version of WebAuthn's support for EOSIO, developers can start using WebAuthn to test transaction signatures in their EOSIO applications, providing a degree of security for private keys that do not exist in today's blockchains.

There are four main components included in the EOSIO 2.0 release candidate:

  • EOS VM : A high-performance WebAssembly (WASM) engine dedicated to blockchain applications that promotes more efficient use of system resources when processing smart contracts and significantly improving performance.
  • EOSIO Quick Start Web IDE : A powerful, new, self-contained, web-based integrated development environment for building EOSIO smart contracts and associated web applications. It can be set up in minutes, runs in any browser, and helps lower the barriers to entry for new EOSIO blockchain developers.
  • WebAuthn support : A widely accepted standard for secure authentication that requires no transaction extensions or additional software to sign transactions.
  • Weighted threshold multi-signature block production support : A secure method for block producers to sign blocks with different keys on the main block and spare block production hardware using security keys.

EOS virtual machine (EOS VM)

We have developed a new dedicated WebAssembly (WASM) engine, called the EOS VM, to meet the growing demand for secure, deterministic execution on the EOSIO blockchain. Although the purpose is very good, Binaryen and WABT interpreters have problems with unlimited memory allocation, extended load times, and stack overflow, and they lack a sandbox at runtime. Together, these issues limit overall performance and reliability.

As the original WASM solution, the Binaryen interpreter was released with EOSIO 1.0 in June 2018, and was replaced in September of the same year with EOSIO 1.3 supporting WABT, which improved performance by 2 times. With EOSIO 2.0, we will release a new WASM engine called EOS VM, which consists of three components, each of which has its own features and provides specific performance enhancements.

Trio of Powerful Components Performed by Blockchain WebAssembly

  • The EOS VM interpreter is a WebAssembly interpreter that provides extremely fast parsing / loading, deterministic and efficient time-bound execution. Designing the interpreter from scratch allows us to make room for future debugging support for smart contracts.
  • The EOS VM Just-In-Time (JIT) compiler is a WebAssembly compiler that uses WASM and generates native code on the fly. Compared to interpreters such as WABT, Binaryen and EOS VM interpreters, this architecture is able to execute WASM smart contracts very quickly and offers significant performance advantages. The absolute speed of this JIT solution allows us to use it on the blockchain without the need for other solutions for longer block compilation times.
  • The EOS VM Optimized Compiler is the third component of the EOS VM. It uses a dedicated compiler framework (LLVM) that utilizes a multipass compilation architecture. The native code generated by the optimized compiler is usually an order of magnitude faster than the same code executed in WABT, Binaryen, the EOS VM interpreter, and the EOS VM JIT. Most importantly, it is even faster than existing WAVM engines, but unlike WAVM, it can be safely used on the blockchain with our layered design.

Extremely fast execution

Our benchmark tests for different components achieved the following performance enhancements in our test environment:

Artboard-1-copy-63

1. The EOS mechanical benchmark comes from a benchmark written by the EOSIO community and runs on an AWS z1d.metal instance. 2. The replay benchmark test compares the time required for the replay function provided by the EOSIO system to complete the same replay on a specified WASM engine and execute it on an AWS z1d.metal instance.

The above performance benchmarks show the relative advantages of various EOS VM components. EOSIO 2.0 uses EOS VM JIT as the first-line compiler for most smart contract execution, while EOS VM Optimized Compiler attempts to compile the same smart contract in the background and deploy it for subsequent execution on the chain at extremely fast speed. This layered architecture enables EOSIO 2.0 to take advantage of fast startup and optimized smart contract code compilation capabilities.

The EOS VM and its components are also highly customizable, so developers can implement all aspects of it in a specific way that fits their desired functionality. Learn more by referring to the EOS VM repository on GitHub.

Major improvements in network code

We added multithreading support to net_plugin. Now, almost all processing in net_plugin, including block propagation, transaction processing, block / transaction packing / decompression, and other processes, is handled by a separate thread than the main application thread. By isolating these processes, we found that transaction and block processing performance on the multi-producer EOSIO network has improved significantly. More details are provided in the EOSIO 2.0.0 release notes .

EOSIO Quick Start Web IDE

EOSIO 2.0 enhancements are aimed at developers, and this new tool will make it easier to start and share and collaborate on EOSIO projects.

Setting up a development environment for EOSIO currently requires a multi-step process that runs locally on the developer's computer, which can be quite complicated for someone new to it. Despite being in the Alpha phase, the EOSIO Quick Start Web IDE is intended to remove barriers to entry for developers. This tool runs in a cloud service, enabling new developers to build smart contract and web application development environments and a fully integrated single-node personal testnet, so they can go from entry to build in minutes.

The EOSIO Quick Start Web IDE makes it easier for new blockchain developers to access EOSIO, simplifying the process and making learning EOSIO development quick and easy. Developers can start with the demo application, make changes seamlessly, and view updates in real time, as well as submit code to the git repository directly from the browser.

As new developers start building with the EOSIO Quick Start Web IDE, we look forward to receiving feedback from the community.

WebAuthn support for EOSIO

WebAuthn is a strong standard for user authentication, collaborated by the World Wide Web Consortium (W3C), Online Fast Authentication (FIDO) Alliance with the help of Google, Mozilla, Microsoft, Yubico and other companies. WebAuthn allows you to use hardware devices to authenticate and sign transactions in a browser without installing extensions or other software on the device.

WebAuthn creates an encryption key pair on a device such as YubiKey and shares the public key only with remote servers over a secure and authenticated channel. By managing authentication credentials entirely in hardware devices, WebAuthn has been shown to substantially mitigate attack types such as phishing throughout. Because hardware devices are essential and passwords are not stored on a central server, implementing WebAuthn-based authentication can even help prevent large-scale data breaches where passwords are stolen.

With this version of WebAuthn's support for EOSIO, developers can start testing transaction signatures with WebAuthn in their EOSIO applications. EOSIO's support for WebAuthn is a step towards secure and seamless transaction signing without the need to track private keys or other account information. We will continue to study mechanisms to support community-oriented and enterprise-level participants who wish to adapt their applications for WebAuthn integration, and we encourage application developers to join the first batch of private applications that are trying to adopt the technology First adopters.

Weighted Threshold Multi-Signature Block Production

Block producers must be able to provide high availability for their core services running the blockchain. A common method to achieve this is a redundant infrastructure, which can effectively maintain block production in the event of a hardware failure or network problem. Weighted threshold multi-signature block production is the first of many features designed to provide block producers with a complete high-availability solution.

Current consensus rules require that each block producer only needs one cryptographic block signing key. This key, whether stored on disk and loaded by software or protected by a hardware wallet, represents a single point of failure for block producer operations. If the key is lost or temporarily unable to access the hardware module containing the key, the block producer has no choice but to lose the block, which will affect the throughput of the entire network.

In order to improve the security and scalability of zone production, weighted threshold multi-signature block support provides a permission layer that allows multiple block signing keys to be used in a flexible scheme, which will enable redundant block signing infrastructure Can exist without sharing any sensitive data. Learn more about weighted threshold multi-signature block production on GitHub.