github.com/cosmos/cosmos-sdk@v0.50.10/ROADMAP.md (about) 1 # Roadmap 2023 2 3 Welcome to the Cosmos SDK's team roadmap. 4 5 > This document is meant to help the team get feedback on the proposed work and for others to follow where we stand in our process. This will be a living document updated on a regular basis. If you'd like to participate in any workscope or would like to suggest another feature please reach out to [Marko](marko@binary.builders) or [Sam](sam@binary.builders) and we will schedule a call to discuss the feature request. 6 7 8 ## Q1 9 10 ### Storage 11 12 * [x] [Produce a spec for the new store design](https://github.com/cosmos/cosmos-sdk/issues/12986) 13 * Research a new design for store. This could entail writing some POC's in order to identify design patterns 14 * [x] Store as its own go module 15 * Store module should be its own go.mod without a dependency on the Cosmos SDK 16 * [ ] [Begin implementation of store v2](https://github.com/cosmos/cosmos-sdk/pull/15028) 17 * Identify the migration path from store v1 -> store v2 18 * [ ] Parallel execution of state 19 * RFC/ADR is merged into the main on the sdk 20 * [ ] Optimistic execution 21 * RFC/ADR is merged into main on the sdk 22 23 24 ### Client UX 25 26 * [x] Release v1 of query support (auto-cli) 27 * A version of query support has been merged, documentation is missing 28 * [ ] Dynamic metadata support 29 * Dynamic support allows the Cosmos SDK to release a cmd line tool that could work with any chain. 30 * Add metadata support to latest version of Cosmos SDK and, if possible, backport to older versions 31 * [x] Multi-chain command **(Done)** 32 * Release a cmd line tool that can be pointed a grpc endpoint which then can produce cmd lines to interact with the chain 33 * [x] Auto-cli tx support 34 * Tx support for auto-cli/hubl 35 * This would fully remove the need for application developers to write cli commands for their modules 36 * [ ] [Consensus Key Rotation](https://github.com/cosmos/cosmos-sdk/issues/5231) 37 38 39 ### Dev UX 40 41 * [x] [Release collections v0.1](https://github.com/cosmos/cosmos-sdk/issues/14300) 42 * Collections is a new abstraction layer similar to the ORM. In the ADR phase it received support from many in the ecosystem. 43 * V1 release should allow modules to be migrated to collections. 44 * Migrate 3 modules to use collections api 45 * Migrating 3 modules to use collections would help in show users how to migrate users 46 * [ ] [Release ORM v1](https://github.com/cosmos/cosmos-sdk/issues/11088) 47 * [x] [Sign mode textual](https://github.com/cosmos/cosmos-sdk/issues/11970) 48 * Sign mode textual has been under construction for 2 quarters now, this quarter the goal is to move towards v1 and potentially line up a audit before final release. 49 * [x] Core API 50 * [Merge ADR for Core API](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-063-core-module-api.md) 51 * Migrate three modules to use core api 52 * [x] Module Dependency 53 * Give three modules their own go.mods 54 * [ ] [Metamask signing directly into the sdk](https://github.com/cosmos/cosmos-sdk/discussions/13892) 55 * [ ] [ADR-033 (internal message routing)](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-033-protobuf-inter-module-comm.md) 56 * Merge internal message router 57 * Add docs on how to use the router 58 * [x] [ADR-54 (dependency management)](https://github.com/cosmos/cosmos-sdk/pull/11802) 59 * Come to consensus on module dependency graph for the future 60 * Begin socializing conventions 61 * [ ] [Remove global bech32](https://github.com/cosmos/cosmos-sdk/issues/13140) 62 * [x] [Auth module](https://github.com/cosmos/cosmos-sdk/issues/14900) 63 * Produce a spec/ADR on a proposed new auth module. 64 * [x] [Implement Amino Json encoder](https://github.com/cosmos/cosmos-sdk/issues/10993) 65 66 ### Testing 67 68 * [x] [integration testing framework](https://github.com/cosmos/cosmos-sdk/issues/14145) 69 * design and merge a integration testing framework. 70 * The goals of the framework would that a module only needs to depend on modules that it depends on outside of testing, not all modules in the sdk like today. 71 72 73 ### ABCI 2.0 74 75 Issue: https://github.com/cosmos/cosmos-sdk/issues/12272 76 77 * [x] [ADR ABCI 2.0](https://github.com/cosmos/cosmos-sdk/issues/14674) 78 * Write ADR for integration of vote extensions & finalize block 79 80 **Blocked**: 81 82 > once cometBFT has a release candidate of ABCI 2.0 (cmt 0.38) 83 84 * Integrate ABCI 2.0 85 86 ### Security 87 88 * [ ] [Circuit breaker](https://github.com/cosmos/cosmos-sdk/issues/14226) 89 * Implement the circuit breaker module and prepare releases for Cosmos SDK versions 0.45, 0.46 and 0.47 90 91 92 ### IAVL 93 94 * [x] [ADR 001](https://github.com/cosmos/iavl/pull/608) 95 * Implementation has been completed, waiting on reviewers 96 * [x] [Prepare the migration path](https://github.com/cosmos/iavl/issues/675) 97 * Migration path has not been finalized 98 * [ ] Test on mainnets 99 * If possible we would like to test the new IAVL design on mainnets to observer behavior changes. 100 101 Issue: https://github.com/cosmos/iavl/issues/548 102 103 ## Q2 104 105 ### Storage 106 107 * [ ] [Storage v2](https://github.com/cosmos/cosmos-sdk/issues/12986) 108 * Objective: 109 * Goal is to get 60% of the way through the rewrite of storage 110 * Begin testing the rewrite on mainnets if possible 111 * External Audit 112 * Progress: 113 * On pause till ABCI 2.0 ships 114 * [ ] [Optimistic Execution](https://github.com/cosmos/cosmos-sdk/issues/15365) 115 * Objective: 116 * Users should be able to pick between delayed execution and optimistic 117 * RFC/ADR is merged 118 * Implementation started. 119 * Progess: 120 * On pause till ABCI 2.0 is merged 121 122 ### Client UX 123 124 * [ ] Hubl/AutoCLI 125 * Objective: 126 * Allow users to sign and submit transactions using hubl 127 * Add module support for autocli 128 * Deprecate/remove legacy cli (optional) 129 * Progress: 130 * Signing support is being refactored and is near completion 131 * Adapting modules to use autocli instead of manually written cli 132 * [ ] [Consensus Key Rotation](https://github.com/cosmos/cosmos-sdk/issues/5231) 133 * Objective: 134 * Allow users to rotate consensus keys for their validators 135 * Progress 136 * Merge pull request and updated ADR into main 137 * [ ] [Operator key rotation](https://github.com/cosmos/cosmos-sdk/issues/3863) 138 * Objective: 139 * Allow users to rotate operator keys for their validators 140 * Progress: 141 * secondary val index was added to support operator key rotation 142 * Pr is open and is being worked on 143 144 ### Dev UX 145 146 * Toolkit/SDK ADR. 147 * Objective: 148 * Produce a RFC/ADR on how to make core composable 149 * Merge RFC/ADR into main 150 * Progress: 151 * on pause until abci 2.0 integration is completed 152 * Adopt core api fully in modules 153 * Objective: 154 * Remove the Cosmos SDK and Comet as a dependency from all modules 155 * Release v1 of modules that have their dependency graph cleaned up 156 * Spin out 4 more modules into their own go.mods 157 * Progress: 158 * Core api has been integrated into all modules 159 * KvStoreService is being added to all modules 160 * [ ] [Remove global bech32](https://github.com/cosmos/cosmos-sdk/issues/13140) 161 * Objective: 162 * Depreacte global bech32 setting 163 * Progress: 164 * All modules except bank use the `address.Codec` 165 * [ ] Make sdk.Msg only be `proto.message` 166 * Objectives: 167 * Reduce sdk.Msg to only be proto.message 168 * Reduce boilerplate in `msgs.go` 169 * Progess: 170 * [x] [Make ValidateBasic Optional](https://github.com/cosmos/cosmos-sdk/issues/15648) 171 * [ ] [Make GetSigners be optional](https://github.com/cosmos/cosmos-sdk/issues/15677) 172 * [ ] Remove GetsignBytes for legacy amino encoding 173 * [ ] [Collections](https://github.com/cosmos/cosmos-sdk/issues/14300) 174 * Objectives 175 * Migrate all modules 176 * Add query support 177 * Add schema support 178 * Progress: 179 * We have migrated three modules 180 181 ### ABCI 2.0 182 183 * [ ] [ABCI 2.0](https://github.com/cosmos/cosmos-sdk/issues/12272) 184 * Objectives: 185 * Integrate comet 0.38 186 * QA 187 * Progress: 188 * Integration has started 189 190 191 ### Testing 192 193 * [ ] [Integration framework](https://github.com/cosmos/cosmos-sdk/issues/14145) 194 * Objectives: 195 * Migrate all modules 196 * Progress: 197 * We have migrated 2-4 modules currently 198 199 ### Modules 200 201 * [ ] [Invariant Checking](https://github.com/cosmos/cosmos-sdk/issues/15706) 202 * Objective: 203 * Design a new system for checking invairants 204 * Implement changes 205 * Audit current invariants 206 * Progress: 207 * NA 208 * [ ] [Accounts](https://github.com/cosmos/cosmos-sdk/issues/14900) 209 * Objective: 210 * Allow users to use account abstractions 211 * Implementation is completed 212 * External Audit is scheduled (if needed) 213 * Progress: 214 * RFC/ADR is in review 215 216 ### Research 217 218 * [ ] Commitment Structure 219 * Objective: 220 * Identify different commitment structures that could be used in the sdk and how they would be plugged (highlevel) 221 * Progress: 222 * Conversations in slack have started 223 * [ ] Cross lang 224 * Objective: 225 * Answer, what is needed to support many languages 226 * Answer, what sort of encoding of passing between the cgo/ffi boundary 227 * Progress: 228 * working group is meeting bi weekly 229 * ADR/RFC is in review 230 231 ## Q3 232 233 ### Storage 234 235 * Audit & release of storage refactor 236 * Identify further optimizations for storage 237 * Goal is to identify the next bottlenecks in storage or the state machine 238 239 ### Dev UX 240 241 * Complete Toolkit/SDK implementation refactor 242 * Goal is to release the new version of the sdk allowing for further composability 243 * Implement fee market abstractions 244 * Goal is to release an alpha version of fee market abstractions 245 246 ### Modules 247 248 * Governance 249 * Make gov and groups composable with each other, not duplicate 250 * Staking 251 * Research a new staking design 252 * Begin Implementation 253 254 255 ### Research 256 257 * Nonce Lanes 258 * Goal is to produce a spec and/or viability of using lanes for nonces instead of a single sequence number. 259 260 ## Q4 261 262 ### Research 263 264 * Stateless clients 265 * research how stateless clients could evolve in cosmos 266 267 268 269 270 This document will be updated at the end of the quarter on what was achieved and what was not. Shortly before the quarter concludes a new section will be added for the next quarter. We are working on updating the complete one year roadmap and will be posting it here as well.