Hey, Adi Seredinschi here. I am with the Informal Systems cooperative and I would like to nominate my organization to the RPGF program for their contributions to two areas of interest, as follows.
Contribution to IBC
Informal Systems bootstrapped their development work on IBC as soon as the organization was established in January 2020. One of our first open-source repositories was GitHub - informalsystems/hermes: IBC Relayer in Rust. This initial repository hosted, among others, English and TLA+ specifications of the core parts of the IBC protocol, model checking results (which led to some changes to the protocol), plus Rust implementations of an IBC relayer and IBC modules.
In summer 2022, the repository was split in two main parts:
- GitHub - informalsystems/hermes: IBC Relayer in Rust which hosts the IBC relayer, and
- GitHub - cosmos/ibc-rs: Rust implementation of the Inter-Blockchain Communication (IBC) protocol. which hosts the IBC modules in Rust.
The Hermes IBC relayer started being used in production IBC operations with the launch of IBC in 2021, and was an essential piece of the IBC production rollout and growth. The majority of production operations today employ Hermes for its reliability, comprehensive features, and documentation. The documentation (https://hermes.informal.systems/) and discussions & issues in the Hermes repository are of separate interest because they document several challenges, outages, or corner cases that the IBC protocol faced in production so far.
Building a core IBC stack in Rust had a benefit for correctness, because it led to manual code inspection across the two implementations (Go and Rust), which still leads to discovering bugs, inconsistencies, or under-specified behavior.
Contributions to Tendermint and related libraries
On the Tendermint front, an important contribution was to the Tendermint light client, both on a research side as well as implementation. Concerning research, Informal contributed to the specification of the light client, which was formally verified and documented in this repo tendermint/spec/light-client at main · tendermint/tendermint · GitHub as well as academic publication intended for a broader audience (https://arxiv.org/pdf/2010.07031.pdf). Concerning implementation, the GitHub - informalsystems/tendermint-rs: Tendermint in Rust! repository hosts a variety of Rust libraries, most importantly a Tendermint light client implementation, used in production IBC today.
Towards bridging the gap between our IBC & Tendermint work, we also prototyped GitHub - informalsystems/basecoin-rs: An example ABCI application making use of tendermint-rs and ibc-rs. This project served as a basic method of bootstrapping a Tendermint ABCI application which uses both tendermint-rs libraries and the IBC modules in Rust and therefore to build a non-Cosmos-SDK node that is IBC-compatible. The major impact of
basecoin-rs is that it allowed us to test integration of our IBC modules and Tendermint libraries, as well as the Hermes IBC relayer, against a production (Gaia) node. This effort was heavily inspired from work done by an EPFL student while interning at Informal Systems in the fall of 2020: GitHub - CharlyCst/tendermock: A mocked Tendermint node for integration testing of IBC protocol..
Starting in summer 2022, Informal Systems also started stewarding the Tendermint Core (soon to be renamed) implementation in Go. Our first mandate was restoring confidence in the software and restoring the integrity of the team after several iterations of churn in team composition, which led to withdrawing releases v0.35 and v0.36. On a technical aspect, this meant our major area of focus is QA and overall increasing confidence in the quality of the software. It also involves shipping ABCI 2.0, ongoing as part of releases v0.37 and v0.38, which includes salvaged code (i.e., cherry picked) from earlier withdrawn releases. Finally, it also involves ensuring a tighter integration of Tendermint Core with its growing array of user-cases, beyond the Cosmos stack, such as privacy-first applications and the wider IBC-powered Interchain.
Main contact: Arianne Flemming firstname.lastname@example.org.