Code Monkey home page Code Monkey logo

telehash's Introduction

This is the old/depreicated v1 repo, all of the work since 2013 is now located at https://github.com/telehash/.


TeleHash - Distributed JSON - http://telehash.org/

  • org/ telehash.org contents (all docs so far)
  • perl/ test implementations and utils in Perl
  • c/ basic test stuff in C
  • ruby/ rudimentary testing in Ruby
  • erlang/ basic announcer in erlang
  • switchd/ plans to create a utility daemon to do the dirty work
  • diag/ graffle/diagrams of protocol states

What tech does one need to implement a switch?

  • UDP
  • JSON
  • SHA1
  • XOR'ing the 160 bits of a SHA1 hash
  • handling both network events and timers (and possibly interactions with the "app" it's serving)

What does a switch need to do?

- listen for UDP packets (off a random port)
- send something to an initial seed to discover its public IP:PORT
- announce itself and try to discover other switches nearby to it
- maintain the "lines" it has active with any other switches
	- validate sender/status
	- track bytes sent/received
- answer requests for nearby switches
- accept "taps" from other switches
- match incoming signals against any active taps and forward them
- that's plenty :) 

telehash's People

Contributors

aflatter avatar cmars avatar dwaite avatar hackervera avatar jamii avatar jaytaph avatar quartzjer avatar rillian avatar tav avatar trel avatar welterde avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

telehash's Issues

Idea: Emscripten > Javascript

Hi,

I see a lot of potential in TeleHash, if you could make it work within the browser too.
I've seen video-/audio-codecs, game-engines, operating-systems and a lot of other stuff getting converted to javascript. So converting to javascript should not be impossible and not too hard, although admittedly also not easy at all. The main problem would be to slim TeleHash down to the bare essentials.

I think using Websockets, Webworkers, Localstorage andIndexDB as architecture and Matrix3D() for speeding up DHT calculations would be perfect. Binary TeleHash would need an update to prefer browserTeleHashes, because they're less reliable.

What do you think?

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.