Skip to content

Extract DA-Interface from rollkit into its own repository  #1122

Closed

Description

@nashqueue

Currently, Rollkit defines the DA-Interface inside the rollkit repo.

This means that all implementations are inside the rollkit repository. This lead to dependency issues like the following:

  1. Dependency clash between celestia-core's comet-bft fork and the comet-bft version that rollkit uses. This prevented us from importing celestia-node as a library and made us copy types in celestia-openrpc
  2. When implementing Bitcoin as da we faced an interesting dependency where tendermint had a btcd library which clashed with the newer Bitcoin version.

This is how it looks right now :

graph TB
  style R fill:#99cc99
  style O fill:#99cc99
  style CN fill:#99cc99
  style C fill:#D3D3D3
  style M fill:#D3D3D3
  style B fill:#D3D3D3
  style B2 fill:#D3D3D3
  R["rollkit/rollkit"]
  C1 -->|"Imports"| O["rollkit/celestia-openrpc"]
  R -->|"Includes"| D["da.go"]
C1 -->|"Implements"| D
  M1 -->|"Implements"| D
  B1 -->|"Implements"| D
  C--> C1["celestia.go"]
  M--> M1["mock.go "]
  B --> B1["bitcoin.go"] 
  R --> C["celestia"]
  R --> M["mock "]
  R --> B["bitcoin ( only in fork) "] 
  B1 --> |"Imports"| B2["bitcoin-da"]
  O -->|"Copies"| CN["celestia/celestia-node"]
  O -- "RPC" --> CN

Loading

This is the proposed new structure where we don't import every da-client anymore as they live in separate repositories.

graph TB
  style R fill:#99cc99
  style CN fill:#99cc99
  style C fill:#99cc99
  style B fill:#99cc99
  style D fill:#99cc99
  style M fill:#D3D3D3
  R["rollkit/rollkit"]
  D["go-da"]
  D --> D1["da.go"]
  B["bitcoin-da"]
  C["celestia-da"] --> C1["celestia.go"]
  R --> M["mock"]
  B --> B1["bitcoin.go"]
  M --> M1["mock.go"]
  R --> |"Imports"| D
  C1 --> |"Imports"| CN["celestia/celestia-node"]
  R  --> |"RPC"| C1
R --> |"RPC"| B1



  M1 --> |"Implements"| D1
  B1 --> |"Implements"| D1
  C1 --> |"Implements"| D1
Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

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