Block-STM: Scaling Blockchain Execution by Turning Ordering Curse to a Performance Blessing

03/14/2022
by   Rati Gelashvili, et al.
0

Block-STM is a parallel execution engine for smart contracts, built around the principles of Software Transactional Memory. Transactions are grouped in blocks, and every execution of the block must yield the same deterministic outcome. Block-STM further enforces that the outcome is consistent with executing transactions according to a preset order, leveraging this order to dynamically detect dependencies and avoid conflicts during speculative transaction execution. At the core of Block-STM is a novel, low-overhead collaborative scheduler of execution and validation tasks. Block-STM is implemented on the main branch of the Diem Blockchain code-base. The evaluation demonstrates that Block-STM is adaptive to workloads with different conflict rates and utilizes the inherent parallelism therein. Block-STM achieves up to 140k tps in the benchmarks, which is a 20x improvement over the sequential baseline with 32 threads. The throughput on a contended workload is up to 60k tps.

READ FULL TEXT

Authors

page 1

page 2

page 3

page 4

09/05/2018

Entitling Concurrency to Smart Contracts Using Optimistic Transactional Memory

Blockchain platforms such as Ethereum and several others execute complex...
06/27/2019

DiPETrans: A Framework for Distributed Parallel Execution of Transactions of Blocks in Blockchain

In most of the modern day blockchain, transactions are executed serially...
01/11/2022

Utilizing Parallelism in Smart Contracts on Decentralized Blockchains by Taming Application-Inherent Conflicts

Traditional public blockchain systems typically had very limited transac...
03/31/2019

Achieving Greater Concurrency in Execution of Smart Contracts using Object Semantics

Popular blockchain such as Ethereum and several others execute complex t...
03/11/2020

Scaling Hyperledger Fabric Using Pipelined Execution and Sparse Peers

Many proofs of concept blockchain applications built using Hyperledger F...
05/22/2019

LazyLedger: A Distributed Data Availability Ledger With Client-Side Smart Contracts

We propose LazyLedger, a design for distributed ledgers where the blockc...
09/12/2019

Flow: Separating Consensus and Compute

Throughput limitations of existing blockchain architectures are one of t...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.