Figure 5: Technical Design of Forerunner<\/p><\/div>\n
Implementation and Evaluation on Ethereum<\/h2>\n
To validate our approach, we implemented Forerunner as a transaction accelerator for an Ethereum node and measured the speedups achieved. We found that the implementation works reliably in a real Ethereum node and can correctly handle all the real-world Ethereum transactions and smart contracts . The highlight of our evaluation is that it was conducted in live Ethereum nodes on the live traffic of a blockchain as they happened in real time. This exposes our approach to real-world code and data, real-world uncertainties of futures, and real-world time budget for pre-execution and other pre-processing tasks, which is very important for understanding the true effectiveness of a speculative execution technique. To achieve any amount of speedup, our technique needed to finish everything, from prediction to specialization and memoization, correctly and fast enough in a live system.<\/p>\n
Our main evaluation ran continuously for 10 days, processing 13 million transactions. The average speedup achieved over all these transactions was 6.1. Worth mentioning is that there were 5% of the transactions that were not heard by our nodes during the dissemination phase, and so there was no chance to carry out pre-execution for them in the live evaluation. If these unheard transactions were excluded from the calculations, the effective average speedup achieved by our approach would be 8.4. In contrast, the traditional approach can only achieve a speedup of 2 on the same workload, as its single-future method fails approximately 50% of the time due to the large amount of many-future transactions . Our approach, on the other hand, can accelerate almost all these many-future transactions. In total, 98.41% of the transactions were accelerated. This result shows that our more sophisticated approach is crucial to breaking through the speedup limit imposed by many-future transactions. We believe that further engineering efforts may lead to even higher speedup.<\/p>\n
<\/p>\n
Conclusion and Future Work<\/h2>\n
By addressing the many-future challenge, Forerunner enables speculative execution to be used as a profitable building block in the construction of high-throughput blockchain systems. Before this vision can be fully realized, the following needs to be carefully studied in future work: a) tradeoffs between the costs incurred and the speedups achieved; b) further optimizations to achieve Forerunner\u2019s full performance potential with as low costs as possible; c) problems that arise in the integration with concrete public or consortium blockchains. Hopefully, the insights behind Forerunner can inspire new techniques that are useful in scenarios beyond blockchain.<\/p>\n","protected":false},"excerpt":{"rendered":"
SOSP is a top-tier bi-annual conference in the systems research area. In the recent SOSP 2021, researchers from MSR Asia, along with collaborators from Zhejiang University, presented a paper: \u201cForerunner: Constraint-Based Speculative Transaction Execution for Ethereum.\u201d This technology is intellectually intriguing because it represents the first many-future speculative execution technique, which generalizes how pre-executions can be leveraged to accelerate the actual execution.<\/p>\n","protected":false},"author":34512,"featured_media":796274,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"msr-content-parent":199560,"footnotes":""},"research-area":[],"msr-locale":[268875],"class_list":["post-796229","msr-blog-post","type-msr-blog-post","status-publish","has-post-thumbnail","hentry","msr-locale-en_us"],"msr_assoc_parent":{"id":199560,"type":"lab"},"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-blog-post\/796229"}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-blog-post"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-blog-post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/users\/34512"}],"version-history":[{"count":6,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-blog-post\/796229\/revisions"}],"predecessor-version":[{"id":796280,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-blog-post\/796229\/revisions\/796280"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media\/796274"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=796229"}],"wp:term":[{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=796229"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=796229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}