Skip to content

Discussion : Separate zetaclient and zetacored into separate repositiories #4529

@kingpinXD

Description

@kingpinXD

Backgroud: Zetaclient and Zetacore now follow separate release cycles, and it would be easier to manage if we could separate out the binaries into separate repositories

Ideally we should separate them out cleanly to make sure zwtaclient is not dependant on zetacore. this would mean extracting the common logic out to a spearate repository that can be used by both zetacore and zetaclient

  ┌─────────────────────────────────────────────────────────┐                                                                       
  │            github.com/zeta-chain/zeta-types             │                                                                       
  │  ┌──────────────┐ ┌──────────────┐ ┌─────────────────┐  │                                                                       
  │  │ proto/types  │ │   pkg/*      │ │ encoding config │  │                                                                       
  │  │ (generated)  │ │ (chains,     │ │ (codec setup)   │  │                                                                       
  │  │              │ │  crypto...)  │ │                 │  │                                                                       
  │  └──────────────┘ └──────────────┘ └─────────────────┘  │                                                                       
  └─────────────────────────────────────────────────────────┘                                                                       
             ↑                              ↑                                                                                       
             │                              │                                                                                       
  ┌──────────┴───────────┐      ┌──────────┴───────────┐                                                                            
  │  zeta-chain/zetacore │      │ zeta-chain/zetaclient│                                                                            
  │                      │      │                      │                                                                            
  │  - x/*/keeper        │      │  - chains/           │                                                                            
  │  - app/              │      │  - orchestrator/     │                                                                            
  │  - cmd/zetacored     │      │  - tss/              │                                                                            
  │                      │      │  - zetacore/ (client)│                                                                            
  │  Imports:            │      │                      │                                                                            
  │  └─ zeta-types       │      │  Imports:            │                                                                            
  │                      │      │  └─ zeta-types       │                                                                                                                            
  └──────────────────────┘      └──────────────────────┘    
  • The first step in this design would involve extrating the proto types into a separate repo and using that , this refactor is substantial
    Currently, all types are defined in the proto package, and they are generated in the respective module x/crosschain/types, x/observer/types . This is a design that all cosmos chains follow inluding the SDK. Moving the types would add additional friction in our development flow, which has anything to do with types

Based on this I would recommend not to split the two repositiories .

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions