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.