Launch App

Sommelier Protocol Team Weekly Update #2

Welcome to the weekly Protocol team update on the Sommelier protocol upgrades! This is the second week of the Informal's audit and the team's delivery of upgrades to the Sommelier Gravity Bridge.

One of the issues informal systems presented after their audit on the gravity bridge is the improvement of the orchestrator’s asynchronous runtime. The orchestrator is a single binary that combines the Eth Signer, Oracle, and Relayer for ease of use by the Validator Operator.

The use of Tokio::time in place of Instant::now for time management

First, the Orchestrator asynchronous runtime execution time was reduced efficiently with the use of tokio::time::*. Previously, the Orchestrator asynchronous runtime used instant::now() to manage time like gRPC to Cosmos.

Instant is a Rust standard library that measures a monotonically nondecreasing clock. However, offloading these low-level details to Future on Tokio runtime increases performance. This is because Futures are optimized to be polled efficiently. Also using Instant::now() leads to non-exact timeouts and loop speed because the checks are always if the elapsed time is greater or lesser than a fixed Duration.

This means that switching from Instant::now() to tokio::time::* can increase general performance as well as task execution time in the Orchestrator runtime.

Multi-threaded support for the Orchestrator

Another improvement that informal’s audit suggests is multi-threaded support for the Orchestrator via the use Tokio runtime instead of actix_rt. The Orchestrator uses actix_rt, a Tokio-based single-threaded async runtime for the Actix ecosystem.

However, multi-threaded support in the Orchestrator will enable multi-threaded performance improvements. For instance, with multi-threaded support concurrent execution of two or more tasks for maximum utilization of CPU will be allowed.

Parallelization at Many Loops

The ability to enable parallelization at many loops is another benefit of multi-threaded programming. Loop-level parallelism involves the extraction of parallel tasks from loops. This helps to speed up the overall execution time of the program.

Parallelization of the Orchestrator will involve Sommelier’s protocol team using rayon and futures::stream. Both rayon and future::stream are data-parallelism libraries that make it easy to convert sequential computations into parallel. These libraries make it easy for sequential iterator to execute in parallel.

To learn more about Sommelier, please visit

To use Sommelier, try the Pairings App at

To participate in the community, please join the Telegram group

To follow the project on Github, please star the project

More articles

This website does not constitute an offer to sell or a solicitation of interest to purchase any securities in any country or jurisdiction in which such offer or solicitation is not permitted by law. Nothing on this website is meant to be construed as investment advice and we do not provide investment advisory services, nor are we regulated or permitted to do so. This website is provided for convenience only. Sommelier does not manage any portfolios. You must make an independent judgment as to whether to add liquidity to portfolios.

Users of the Sommelier website should familiarize themselves with smart contracts to further consider the risks associated with smart contracts before adding liquidity to any portfolios.

Note that the website may change, and we are under no obligation to update or advise as to these changes. There is no guarantee that the Sommelier Mainnet, including any software, products or token use cases mentioned on the website, will be built, or offered by Sommelier. In particular, actual results and developments may be materially different from any forecast, opinion or expectation expressed in this website, or documents contained in it, and the past performance of any portfolio must not be relied on as a guide to its future performance.

To the extent permitted by law, the company and its directors, officers, employees, agents exclude all liability for any loss or damage arising from the use of, or reliance on, the material contained on this website whether or not caused by a negligent act or omission. The release, publication or distribution of this website and any materials herein may be restricted in some jurisdiction and therefore you must inform yourself of and observe any such restrictions.

© 2022 Sommelier by Bajanss OÜ –Maakri 36-50, Tallinn, Estonia 10145