Skip to content
Old v1 repo, please see http://github.org/telehash now.
Java Perl JavaScript C CSS Python Other
Find file
Failed to load latest commit information.
Mu @ 3bd7403 added more shizit Jan 30, 2011
c
diags consumption of json via udp may impair your ability to be boring Jan 3, 2010
erlang @ 5d45d0e Added erlang submodule Mar 23, 2011
ezcrypto-js @ 1342d04
java
node-sqlite @ 409251a added more shizit Jan 30, 2011
node.js
org
perl Fix spelling of its vs it's in source and documentation. Oct 3, 2011
python Started on a Python telehash implementation. Aug 9, 2010
ruby extend ruby test client a bit Aug 9, 2010
switchd Fix spelling of its vs it's in source and documentation. Oct 4, 2011
.gitignore ignore stuff Mar 2, 2013
.gitmodules
LICENSE
README.md finally deprecating this mostly v1 repo, adding pointers to new locat… Oct 24, 2013
notes.txt Fix spelling of its vs it's in source and documentation. Oct 4, 2011

README.md

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 :) 
Something went wrong with that request. Please try again.