hyperhyperspace-core icon indicating copy to clipboard operation
hyperhyperspace-core copied to clipboard

Comparison with other p2p efforts

Open DrPyser opened this issue 2 years ago • 7 comments

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:

  • IPFS & IPLD
  • GUN
  • hypercore protocol(https://hypercore-protocol.org)

DrPyser avatar Jun 03 '22 23:06 DrPyser

Hi @DrPyser !

I'd say the main differences are:

  • The distributed datatypes defined through HHS are Byzantine fault tolerant (i.e. have representation invariants that can be upheld even in the presence of malign peers).
  • The underlying data representation format is a Merkle-DAG, which is very versatile (e.g. no problem to have multi-writers in a single structure, or to implement consensus mechanisms where necessary).
  • Being able to run a full peer inside a web browser from the get go (server-based peers take additional steps to make sure that browser can connect to them), hence supporting a browsing experience similar to that of any webpage, but using a distributed backend.

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

sbazerque avatar Jun 14 '22 00:06 sbazerque

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.

DrPyser avatar Jun 14 '22 05:06 DrPyser

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)

sbazerque avatar Jun 14 '22 10:06 sbazerque

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).

DrPyser avatar Jun 14 '22 17:06 DrPyser

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.

sbazerque avatar Jun 15 '22 00:06 sbazerque

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.

akramer-zibra avatar Jun 26 '22 15:06 akramer-zibra

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

sbazerque avatar Jun 26 '22 22:06 sbazerque