#!/usr/bin/env python | |
# | |
# author: github.com/jbenet | |
# license: MIT | |
# | |
# tikz2svg: convert tikz input into svg | |
# depends on: | |
# - pdflatex: comes with your tex dist | |
# - pdf2svg: brew install pdf2svg |
Building decentralised services is an exercise in accidental complexity. Connectivity is the first hurdle. Users move around, go on- and off-line and lurk behind NAT. For centralised systems we have ICE. For decentralised systems there is no standard solution.
Mist will take an abstract address representing a user, locate their machine, punch a hole and return a local UDP proxy to talk to that user. It will be cross-platform, provide a simple api and be easy to use with existing UDP programs.
As a bonus, the implementation also provides a p2p pubsub system.
The design is based heavily on Jeremy Miller's telehash protocol (although simplified and streamlined) and draws ideas from libswift. It is also based on lessons learned from my telehash implementation.