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

Comparison with other p2p efforts #24

Open
DrPyser opened this issue Jun 3, 2022 · 7 comments
Open

Comparison with other p2p efforts #24

DrPyser opened this issue Jun 3, 2022 · 7 comments

Comments

@DrPyser
Copy link

DrPyser commented Jun 3, 2022

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
Copy link
Member

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.

@DrPyser
Copy link
Author

DrPyser commented Jun 14, 2022

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
Copy link
Member

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
Copy link
Author

DrPyser commented Jun 14, 2022

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
Copy link
Member

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
Copy link

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
Copy link
Member

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants