hyperhyperspace / hyperhyperspace-core

A library to create p2p applications, using the browser as a full peer.
https://www.hyperhyperspace.org
MIT License
203 stars 12 forks source link

Comparison with other p2p efforts #24

Open DrPyser opened 2 years ago

DrPyser commented 2 years ago

Hi, just read the white paper, and this project seems great.

There are a lot of similar p2p projects with similar goals and principles currently going on.

I suggest we list here similar projects and discuss the differences, overlaps and potential for collaboration & integration. After all, interoperability in one ecosystem is worthless if its only another isolated platform that compete without i nteroperability with each others.

Off the top of my head:

sbazerque commented 2 years ago

Hi @DrPyser !

I'd say the main differences are:

If you're curious about more specific stuff feel free to ask.

DrPyser commented 2 years ago

Thanks @sbazerque!

I believe some of those solutions also share some of those properties. IPFS & IPLD also use merkle dag as basis of implementation. hypercore is based on a replicated append-only log and merkle dag.

sbazerque commented 2 years ago

You're welcome :)

Well, what you said cannot be understated:

There are a lot of similar p2p projects with similar goals and principles currently going on.

The idea of making apps more decentralized and interoperable is "in the air".

Conceptually, perhaps Holochain is closer, I feel it's more focused on providing a backend for actual apps (but technically it goes about it quite differently).

Is there some specific use-case you'd like to compare these technologies against? Did you take a look at the home app we're building on top of HHS? (still WIP)

DrPyser commented 2 years ago

To be clear, I'm not seeking to compare projects in order to find a winner for a particular use case. Obviously, there will be differences in implementation and performance relative to different use cases.

Those projects have existed for years now. I'm under the impression the activity might have stalled unfortunately.

I guess i feel that people seem to be reinventing more or less the same thing, for the same reasons, without helping each other and learning from each other.

I want to suggest to carefully consider what has been done and is being done in parallel in order to combine efforts or otherwise collaborate towards the common goal. At a minimum, this should involve serious consideration for interoperability.

For example, that's a fundamental goal of the IPLD project, to unify data models for different hash-based data and content-addressing systems, from blockchain projects to git, to IPFS and others.

All projects seem to have great ideas and application space, and perhaps all need to exist separately to explore different ways of doing some things, but the same principles and ideas seem to be underlying their foundations. Ideally, there eventually should emerge a core set of specifications, libraries, tools, etc that are shared, developed and maintained collaboratively, ensuring both interoperability, stability and endurance through time(lack of activity on one project shouldn't mean the good work done there is lost).

sbazerque commented 2 years ago

Good call on IPLD. Yeah, HHS could have been based on IPLD!

All projects seem to have great ideas and application space, and perhaps all need to exist separately to explore different ways of doing some things, but the same principles and ideas seem to be underlying their foundations. Ideally, there eventually should emerge a core set of specifications, libraries, tools, etc that are shared, developed and maintained collaboratively, ensuring both interoperability, stability and endurance through time(lack of activity on one project shouldn't mean the good work done there is lost).

I agree. This feels like the early PC days: lots of almost-useful projects and innovation sprouting up like crazy everywhere. Stuff still needs to pass the test of going mainstream, if it does I think things will naturally standardize around a few projects / sets of abstractions that seem to work in practice. Disentangling most of the p2p, content-addressed stuff from the financial parts of the ecosystem, while building bridges where they make sense, seems like an important thing that's missing.

akramer-zibra commented 2 years ago

This is a lovely discussion and helps me to go further with our project. I am evaluating hyperhyperspace as data layer for an offline-first-mobile-first application using ionic framework with react and capacitor as platform. Hyperhyperspace impresses me with its clean structure and well thought design! I previously played around with hypercore, which seems an also very valuable approach, but I struggled with its various modules and its entangled NodeJS APIs... So I am very happy to have stumbled over this nice library.

sbazerque commented 2 years ago

Thanks! Those are really kind words @akramer-zibra

The design evolved as the ideas for the library came together, some parts are still a bit rough. Using the HashedObject & SpaceEntryPoint abstraction for data and its sharing boundaries, in conjunction with the MeshNode for mesh access, hide most of the remaining cruft, though. Overall it's in fairly good shape :)

You're welcome to create issues here if you face any problems, you can also join HHS' discord here:

https://discord.gg/9epr3XrRnW