Skip to content
This repository was archived by the owner on Feb 12, 2024. It is now read-only.
This repository was archived by the owner on Feb 12, 2024. It is now read-only.

Split package into core, node and app #2580

Closed
@rumkin

Description

@rumkin
  • Version: 0.39.0
  • Platform: All
  • Subsystem: Package

Type: Enhancement

Severity: Medium

Description:

This issue is a continuation of the #2550. Current ipfs package is overloaded and violates SOLID and KISS principles. It has too much responsibilities: run IPFS node, run web interface, serve as a library, etc.

I propose to split the package into submodules according to functionality:

  • IPFS core: for build IPFS into another products.
  • IPFS node: for running standalone node as a micro/web-service as a daemon. This is what ipfs package should be, as I think.
  • IPFS webapp: for node management and inspection.

Use cases

Built-in node

I'm using IPFS in my product for readonly downloads and as a local cache for the downloaded data. This is running inside of the client application which has its' own management tools and interfaces. Thus there is no need in web interface, cli tools or keys management. I need only minimal IPFS installation.

Overlays

Also I've created an overlay which serves only exact type of content received via IPFS. It validates data before serving it. Such content type could be one from limited set e.g. JSON schemas, JS bundles, git repo. So I need to preserve common interface and add custom error codes over provided by IPFS. And I have my own web interface and management tools.

Shards

Using IPFS as a part of a distributed file storage requires only network interface and core functionality.

Metadata

Metadata

Assignees

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions