Dev Update

The next software release milestone (v0.25.0) of the Cosmos-SDK has seen some delay due to added scope. We wanted to test as many features as possible in Game of Stakes and thus we circled back to add fixes, refactors, and key functionalities to the initial scope of SDK 0.25 (see all the issues tagged #game_of_stakes).

Game of Stakes registrations have opened and they will close on October 15, right around the time when you could expect the GoS feature-complete SDK software and Gaia-9000 to launch.

The remaining blockers are: vesting, staking refactor, and the final part of fee distribution.

Cosmos-SDK v0.25.0 will include all remaining major features (everything up to “Lower Priority”) that we plan to have at mainnet launch.

Key Features in Cosmos-SDK v0.25.0

Notes from Tendermint’s Cosmos-SDK Core Developer, Christopher Goes:

Issue # 2312 : Staking refactor — we’ve restructured how Gaia calculates validator set updates to reduce the surface for subtle optimization bugs. The staking refactor is an implementation change, not a functionality change — but it allows us to remove most of the complex optimization logic that had been causing a lot of subtle bugs.

— we’ve restructured how Gaia calculates validator set updates to reduce the surface for subtle optimization bugs. The staking refactor is an implementation change, not a functionality change — but it allows us to remove most of the complex optimization logic that had been causing a lot of subtle bugs. Issue # 1896 : Slashing period — we’ve added the concept of a “slashing period” to limit the liability of validators for multiple infractions committed in quick successions (which might be caused by software bugs).

— we’ve added the concept of a “slashing period” to limit the liability of validators for multiple infractions committed in quick successions (which might be caused by software bugs). Issue # 1944 : Fee distribution — we’ve implemented the simplified “piggy bank fee distribution” module, which handles fees & provisions, including commission and the reserve pool.

— we’ve implemented the simplified “piggy bank fee distribution” module, which handles fees & provisions, including commission and the reserve pool. Issue # 2204 : Flexible multi-signature CLI support — we’ve added a set of CLI commands to generate, sign, and broadcast transactions in stages.

— we’ve added a set of CLI commands to generate, sign, and broadcast transactions in stages. Issue #2219: Upstream Tendermint update — we’ve updated to Tendermint v0.24.0 (although by the time we release SDK 0.25 it might be Tendermint 0.25.0 because we want to pull an additional upstream change).

Tendermint v0.24.0 Update

Notes from Tendermint’s Head of Tendermint Labs, Zaki Manian:

Tendermint v0.24 was released in September. When the validator set changes, the previous validator set commits to validator set change and then the change is activated on the next block. This simplifies the efficient light client proofs that make IBC and trustless mobile clients possible.

Tendermint also now provides a secure monotonic time source we called BFT Time in consensus.

Ethermint Version 2.0 is Underway

Updates from Tendermint’s Senior Ethermint Developer, Aleksandr Bezobchuk:

Essentially we’re at a development “pause”. We’ve made substantial progress integrating Geth and running mainnet transactions. However, this has shed light on certain challenges in continuing development. Namely, two core challenges. One, we’ve discovered a handful of performance bottlenecks during our benchmarks and two, continuing to use Geth as a library to build Ethermint is proving to be difficult in order to facilitate the use of a single coin in Ethermint while combining functionality of the EVM and the SDK modules (i.e having a holistic view of accounts and balances).

Alexey Akhunov is making good progress in modifying the IAVL+ tree implementation to be used within Turbo-Geth and I am looking into the feasibility of how much we need to tweak Geth in order to get it to play nicely in terms of integrating with the SDK modules. This will ultimately lead us to potentially using Turbo-Geth as a client instead of Geth.

I anticipate progress in these domains to be rapid and I am increasing my development and focus on them. Our goal is to have a fully running node within a month or two.

Some issues for reference:

Issue #486: StateDB/EVM Integration with SDK modules

Issue #482: Integrate Bank Module and EVM

General Update