Skip to content

[META] - Splitting this repository in several separated repositories for each independent project #5367

Open
@nielstron

Description

@nielstron

Internal/External
External otherwise.

Area
Meta

Describe the feature you'd like
This repository hosts several components that build on top of the cardano-node but are not an integral part of it. Ideally, these should be in a seperate repository and build largely independent of the main node.

The main pain point is the bundling of CLI and cardano-node

This has several advantages

  • independence. In the current status a fix or new feature in the cardano CLI requires a cardano node upgrade - which triggers all security checks for the node (which are reasonable) because of a change in the user interface (which is unreasonable).
  • introduces the need for a proper documentation of the node API (I.e. the socket). Currently there are very few (external) projects building on the socket directly and I don't know if there is even a proper documentation for it. This should change. Most projects interact with the node through the CLI, ogmios or cardano-db-sync-ish things, which is an unnecessary bottleneck.
  • proper documentation of intercompatability. If the node upgrade is required (I.e. protocol upgrade) but the CLI breaks in the same release (this happened for me around Vasil hardfork) then an old CLI can be used with a new node.However this is super experimental and no proper documentation exists on when and how this works. If repos are separated then it could be properly reported which version of CLI is compatible with which version of node.

Describe alternatives you've considered
None

Additional context / screenshots
Arised from a discussion with @KtorZ where we both faced the problem of having CLI fixes pending for months (!) because they would trigger a new release of the node. Meanwhile UX suffers greatly through this stiffness.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Staletype: enhancementAn improvement on the existing functionality

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions