• Features
  • About
  • Resources
  • Community
  • Events
  • Blog
  • Jobs

Sommelier Protocol Team Weekly Update #1

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

Informal’s Audit on the Gravity Bridge: Logging errors at the highest possible error level

Informal systems carried out an audit on Althea’s bridge. This audit on the Althea’s bridge involved the exposure of some issues which I and the rest of the Sommelier Protocol team are resolving.

One of this issue is the ignoring of high-level errors thereby logging the result at the lowest trace level. For instance, if errors are ignored while communicating with Cosmos via GRPC or submitting a Cosmos transaction the validator will get slashed within a few hours.

Improved Error Handling for GRPC calls to Cosmos

The Sommelier protocol team has upped the log level for failed message relaying by the orchestrator from info! to error!. Also, error message for a failed GRPC call in Cosmos has been improved to include number of messages in the chunk and the types of messages the chunk contained.

This means that if an error occurs while communicating with Cosmos via GRPC, the application will panic and the process stopped, disallowing validator slashing.

In other news, the Sommelier Protocol Gravity bridge Application (Gorc) has been upgraded to Abscissa 0.6.0.beta.1.

Upgrading the Gravity-Bridge to Abscissa Beta

The Sommelier Protocol Gravity bridge Application uses Abscissa. Abscissa is a microframework for building Rust applications (either CLI tools or network/web services), aiming to provide a large number of features with a minimal number of dependencies, and with a strong focus on security.

The Abscissa framework comes with enormous benefits like application-level logging, unified error-handling subsystem with generic error type, support for colored terminal output and so on that won’t be available if the application is created from scratch with a command-line option parser like Gumdrop and Clap.

Upgrading Gorc to Abscissa Beta

Initial versions of Abscissa were built with Gumdrop. This is because Gumdrop is effectively a "custom derive first" crate and in that regard felt much more cohesive. Also, Gumdrop has lesser dependencies when compared to Clap. However, with the Clap version 3, Clap better conforms to the expected behavior for command-line applications and is more widely used by the Rust community and thus more likely to be maintained for a long time. For instance, Clap provides help support for nested commands, providing better help messages for subcommands.

Upgrading the Gorc (Gravity Orchestrator) application to Abscissa beta involves replacing the Gumdrop crate with Clap in the Gorc application.

Help support for Nested Commands

Gumdrop struggles with help in subcommands, thereby requiring an additional boilerplate from Abscissa. However, even with a boilerplate in place, it is still difficult to create a friendly help screen or get useful help messages for subcommands as seen in this issue opened by a user.

With this upgrade, when the user enters a wrong command, Clap suggests commands and also displays the subcommands of a command.

To learn more about Sommelier, please visit https://sommelier.finance/

To use Sommelier, try the Pairings App at https://app.sommelier.finance/

To participate in the community, please join the Telegram group https://t.me/getsomm or Discord https://discord.gg/ZcAYgSBxvY.

To follow the project on Github, please star the project https://github.com/PeggyJV/sommelier.

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.