Giter Site home page Giter Site logo

hello-peers's Introduction

hello-peers

A demo for localFirst P2P with Holepunch's eco-system in the browser.

  • served over websockets and styled with tailwindcss

alt text

Relay Server

  1. Hyperswarm (a Kademlia DHT with hole-punching builtin)

When you create a p2p connection (like with WebRTC) you typically need a "signaling server" to arrange the connection. Hyperswarm replaces that server with a distributed signaling system.

  1. HyperDHT ( the Distributed Hash Table powering Hyperswarm built on top of dht-rpc)

Mainly used to facilitate finding and connecting to peers using end-to-end encrypted Noise streams. In the HyperDHT, peers are identified by a public key, not by an IP address. If you know someone's public key. you can connect to them regardless of where they're located, even if they move between different networks

  1. Hyperswarm Relay (Relaying the Hyperswarm DHT over framed streams to bring decentralized networking to everyone.)

The protocol is versioned and built on top of protomux.

Data Management

  1. Hypercore (a secure, distributed append-only log built for sharing large datasets and streams of real-time data)

A Hypercore can only be modified by its creator; internally it signs updates with a private key that's meant to live on a single machine, and should never be shared. However, the writer can replicate to many readers, in a manner similar to BitTorrent but Unlike BitTorrent, a Hypercore can be modified after its initial creation, and peers can receive live update notifications whenever the writer adds new blocks.

  1. Hyperbee (an append only B-tree based on Hypercore.

It uses a single Hypercore for storage, using a technique called embedded indexing As with the Hypercore, a Hyperbee can only have a single writer on a single machine; the creator of the Hyperdrive is the only person who can modify it because they're the only one with the private key. That said, the writer can replicate to many readers, as described in the Hypercore.

  1. Autobase (experimental module used to transform higher-level data structures (like Hyperbee) into multiwriter data structures with minimal additional work)

Autobase is used to automatically rebase multiple causally-linked Hypercores into a single, linearized Hypercore.

  1. Hyperdeebee (a MongoDB-like database built on top of Hyperbee with support for indexing based on Hyperbee Indexed DB)

The Software Development Kit

. hyper-sdk (A Software Development Kit for the hypercore-protocol) As you might have already noticed, Hypercore-protocol and it's ecosystem consists of a bunch of low level building blocks for working with data in distributed applications. Although this modularity makes it easy to mix and match pieces, it adds complexity when it comes to actually building something.

The Hyper SDK combines the lower level pieces of the Hyper stack into high level APIs that you can use across platforms so that you can focus on your application rather than the gritty details of how it works.

The blog

Find the blog that explains how this demo was put together HERE

hello-peers's People

Contributors

jermsam avatar ruulul avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

ruulul rsync25

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.