“In a comparative evaluation against another high-speed blockchain virtual machine, EOS Wasm, the execution performance of Ontology Wasm-JIT reached more than twice that of EOS Wasm.”

Recently, we were delighted to announce that Ontology Wasm-JIT is available on our latest version of Ontology, Ontology 2.0. In a comparative evaluation against another high-speed blockchain virtual machine, EOS Wasm, the execution performance of Ontology Wasm-JIT reached more than twice that of EOS Wasm.

In October of last year, the Ontology Wasm function officially went live on the mainnet, implementing a multi-smart contract virtual machine operation mechanism (Multi-VM) in a mainstream blockchain open platform. As an open standard supported by browser companies such as Google, Apple, and Microsoft, WebAssembly (Wasm) has the characteristics of efficient operation, memory security, no undefined behavior, and platform independence. After years of hard work by the compilers and standardization expert teams, Wasm has grown a mature community, providing a robust and friendly experience for developers.

Wasm advantages cover high-performance, low storage cost, and multi-language support, which includes:

- Efficient performance: uses binary code and shows superior performance in program execution.

- Low storage cost: Compared with text format, the binary-coded text takes up less storage space.

- Multi-language support: Users can write smart contracts using multiple languages ​​such as C / C ++, Rust, Go, and Assembly Script and compile them into bytecode in Wasm format.

Based on this, Wasm-JIT is a Wasm operation that can translate Wasm bytecode into Native machine code in advance and then execute the machine code directly. Compared to parsing and executing one by one, JIT operations can greatly improve the execution speed.

The execution speed is a remarkable advantage of Ontology Wasm-JIT. Compared with previous versions, the performance of this version brings an improvement by an order of magnitude. Compared with the EOS public chain that also uses high-speed Wasm, Ontology Wasm-JIT has reached higher performance speeds.

The table below shows the results of the same environment test on the Ontology and EOS open-source virtual machines. Since EOS has no gas fees, this test is based on a version of the Ontology Wasm-JIT without gas fees.

(Note: “Interpreter” represents Wasm’s parsing execution; ONT JIT and EOS JIT refer to the Ontology and EOS JIT’s executions, respectively; Compile and Execution respectively indicate the JIT compilation time and machine code execution time.)

Test link: https://github.com/carltraveler/wasmjit-perf

According to the above data, the JIT execution versions of EOS and ONT have tens or even hundreds of times better performance than the parsed version. At the same time, the JIT compilation phase on ONT has more optimizations, so the compilation is relatively time-consuming, but it can generate more efficient machine code. In the execution phase, EOS takes over twice as long as ONT. As a result, developers can achieve higher performance in a shorter time when using Ontology, greatly improving development efficiency.

Ontology Wasm-JIT is fully compatible with the parse execution version, which is developer-friendly, with a low learning curve. The performance improvement of Ontology Wasm-JIT can support more complex contract applications. In this way, developers can focus more time and energy on business-specific development without worrying about performance tuning of the contract. Specifically, at the business level, the actual energy consumption for the execution of a single contract instruction is lower, and the corresponding contract execution costs can be reduced, thereby reducing the user’s gas payment fees, achieving cost reduction and efficiency, and excellent execution results.

Ontology Wasm-JIT has launched on the Ontology testnet, and developers can start developing with it.

https://github.com/ontio/

Other important features of Ontology 2.0 will be announced in the Aristotle 2020 Roadmap, please stay tuned!

If you have any questions or feedback, please contact us via contact@ont.io.