Traditional public blockchain systems typically had very limited transaction throughput due to the bottleneck of the consensus protocol itself. With recent advances in consensus technology, the performance limit has been greatly lifted, typically to thousands of transactions per second. With this, transaction execution has become a new performance bottleneck. Exploiting parallelism in transaction execution is a clear and direct way to address this and further increase transaction throughput. Although some recent literature introduced concurrency control mechanisms to execute smart contract transactions in parallel, the reported speedup that they can achieve is far from ideal. The main reason is that the proposed parallel execution mechanisms cannot effectively deal with the conflicts inherent in many blockchain applications. In this work, we thoroughly study the historical transaction execution traces in Ethereum. We observe that application-inherent conflicts are the major factors that limit the exploitable parallelism during execution. We propose to use partitioned counters and special commutative instructions to break up the application conflict chains in order to maximize the potential speedup. During our evaluations, these techniques doubled the parallel speedup achievable to an 18x overall speedup compared to serial execution, approaching the optimum. We also propose an OCC scheduler with deterministic aborts, which makes it suitable for practical integration into public blockchain systems.
翻译:由于共识协议本身的瓶颈,传统的公共连锁系统通常由于共识协议本身的瓶颈,其交易吞吐量非常有限。由于共识协议本身本身的瓶颈,业绩限制已大大解除,通常每秒数千次交易。由于这一点,交易执行已成为新的业绩瓶颈。在交易执行中利用平行做法是解决这一问题和进一步增加交易吞吐量的一个明确和直接的方法。虽然最近一些文献引入了货币控制机制,以平行执行智能合同交易,但所报告的加快速度远不理想。主要原因是,拟议的平行执行机制无法有效处理许多连锁应用中固有的冲突。在这项工作中,我们彻底研究Etheerum的历史性交易执行痕迹。我们发现,应用程序插入的矛盾是限制执行过程中可利用的平行做法的主要因素。我们提议使用分隔式反射线和特别通气指示打破应用冲突链,以最大限度地实现潜在速度。在我们的评估中,这些技术使平行的加速速度翻了一倍,与序列执行相比,达到18x的总体速度。我们彻底研究了Ethereal development on the ful lishal shalutions and droom developmental lactions