GithubHelp home page GithubHelp logo

workshop's Introduction

kappa architecture workshop

by (in no particular order): noffle, okdistribute, and mafintosh

A small series of workshops to introduce kappa architecture and how to build p2p programs with modules like hypercore, multifeed, and kappa-core.

What is "peer-to-peer"?

Most networked programs you use are probably using centralized or client-server model. Under this model, one machine is a trusted authority (server), and every other machine is a relatively untrusted member of the network (client) that relies on the server for coordination, authentication, and authorization.

In a decentralized or peer-to-peer model, every peer is an equal authority in the network. Examples of peer-to-peer (p2p) procotols include bittorrent, bitcoin, or tor. Since there is no central source of truth or power, this tends to lend itself to some powerful properties:

  1. generally, these services cannot be shut down by external forces, since eliminating any one peer will not take down the rest
  2. generally, these services work well offline, since the full dataset tends to be stored on every peer
  3. generally, these services lend themselves well to collective ownership, since it's difficult for any one peer to force authority on other peers
  4. generally, these services tend to scale very well and very cheaply: the more popular data is, the more efficiently it can be found & shared

Peer-to-peer networks have some challenges as well:

  • writing p2p networks tends to be more challenging to design and code
  • you can't force peers to upgrade/change, so protocol or data format changes may take a long time to be used by all peers (if ever)
  • getting two laptops to find & connect to each other over a network tends to be less reliable than a laptop connecting to a public server with lots of uptime
  • if rare data exists only on a scarce few peers, and those peers go offline, data will become unavailable

Some folks have been throwing around the confusing term "serverless", which is misleading, since it's still centered on using another company's servers to control the networked system. Peer-to-peer programs continue to work in the absence of servers.

Is this production-ready?

Yes! From researchers in universities all the way to the remote reaches of the amazon rainforst, people are already using the tools you're learning in this workshop. Check out http://hypercore-protocol.org for an up-to-date list of those who use these applications.

OK, I'm ready

Get started

License

CC-BY-SA

workshop's People

Contributors

aral avatar hackergrrl avatar mafintosh avatar saul-bt avatar okdistribute avatar karissa avatar cblgh avatar martinheidegger avatar timgoeller avatar noffle avatar danielhamngren avatar

Watchers

 avatar James Cloos avatar

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.