Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2021 Theme Proposal] Composability of core implementations #62

Closed
dchoi27 opened this issue Nov 19, 2020 · 3 comments
Closed

[2021 Theme Proposal] Composability of core implementations #62

dchoi27 opened this issue Nov 19, 2020 · 3 comments

Comments

@dchoi27
Copy link
Member

dchoi27 commented Nov 19, 2020

Note, this is part of the 2021 IPFS project planning process - feel free to add other potential 2021 themes for the IPFS project by opening a new issue or discuss this proposed theme in the comments, especially other example workstreams that could fit under this theme for 2021. Please also review others’ proposed themes and leave feedback here!

Theme description

Strategically refactor large parts out of the core of IPFS and demarcate the different modules while creating a seamless experience working across the InterPlanetary Stack.

Hypothesis

It is currently difficult to hack on the InterPlanetary Stack, either as a contributor or someone building tools, due to the lack of composability and modularity of the Stack. This limits contributions to the ecosystem to those who are already very deep on the history and context.

Vision statement

The composability of the InterPlanetary Stack unlocks huge value - upgrade pathways of existing parts of the stack are much clearer, the stack is extensible and the community builds their own implementations of pieces of the stack, and it enables a rich tooling ecosystem which makes the experience of developing end user applications much easier. There is a clear spec for the InterPlanetary Stack, increasing alignment across the project and making it easier for new developers to understand how to contribute.

Why focus this year

Improving composability can be a huge point of leverage, improving already active development efforts on IPFS, bringing new contributors into the ecosystem, and clearing up misconceptions (e.g., what is an IPFS, IPFS vs. Filecoin). Doing this before more technical debt builds up can potentially make things much easier in the long run.

Example workstreams

Separating spec from implementations, strategy around what lives in core vs. modules of IPFS implementations (like in node), refactoring to pull big parts of the stack out of the core, clarifying what an IPFS is vs. implementations, making docs clear to reflect this and implementation options for modules, upgrade paths for these various modules (e.g., CLI, HTTP API, DHT, UnixFS, CID, Bitswap/GraphSync, IPNS, DNSLink, multistream), seamless integration of IPLD and IPFS workflows

Other content

@aschmahmann
Copy link

Adding my 2c here that I think having upgrade paths for modules is really important to enable protocol improvements and to encourage experimentation.

It also seems like some components of this theme (e.g. clarifying the difference between IPFS and an IPFS implementation) seem required in order to complete IPFS v1.0. Others may not be strictly required but could be quite helpful (e.g. strategy around core vs modules) since it may enable us to leave certain things out of IPFS v1.0 but still provide mechanisms for people to build or include their own versions of those modules in their IPFS implementations.

@carsonfarmer
Copy link

I'd like to add a +1 here from @textileio's perspective. In particular, we are interested in composability of IPLD codecs across the IPFS stack. So an enthusiastic +1 for better custom IPLD - IPFS workflows would be great. In particular, a near-term move towards supporting go-ipld-prime would be ideal. Something like the first half of 2021 would be reasonable. Our team is ready to start writing custom codecs, and moving some of our custom application logic and bit further "down" the stack to be shared with other application developers as soon as possible. See also @sanderpick's comments on this theme: #65 (comment)

@github-actions
Copy link

github-actions bot commented Oct 1, 2023

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.

@github-actions github-actions bot added the Stale label Oct 1, 2023
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Oct 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants