Skip to content

quartzjer/TeleHash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

133f421 · Oct 24, 2013
Jan 30, 2011
Feb 25, 2011
Jan 3, 2010
Mar 23, 2011
Jan 30, 2011
Oct 4, 2011
Jan 30, 2011
Oct 4, 2011
Oct 24, 2013
Oct 4, 2011
Aug 8, 2010
Aug 8, 2010
Oct 4, 2011
Mar 2, 2013
Mar 23, 2011
Jan 23, 2010
Oct 24, 2013
Oct 4, 2011

Repository files navigation

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

Releases

No releases published

Packages

No packages published

Contributors 12