A modest proposal.
C. Scott Ananian
cscott at cscott.net
Tue Feb 19 15:45:07 EST 2008
I propose installing a handler for a new URI type in our browse
application. The links will look like:
friend:name.xxx.school.country.xs.laptop.org
where:
name is a Punycode encoding of the XO nickname. Technically, the
IDN ToASCII mapping operation is performed on the nickname, truncated
on the right if necessary so the result is 63 characters or less; see
http://en.wikipedia.org/wiki/Internationalized_domain_name.
xxx is an encoded version of the the XO public key. The number is
written in a variable base number system where the first three digits
are base 36, base 37, and base 26 and the digits are mapped into
characters starting with lowercase alphabetic, then numeric, then a
hyphen. If I've done my math correctly
(http://en.wikipedia.org/wiki/Birthday_paradox ), this requires about
220 students to have the same name before a collision has a 50% chance
of occuring. If the server uses an independent means to prevent
duplicate nicknames, the xxx can be replaced with 'fun'.
'school.country.xs.laptop.org' is filled in by registration with a
school server. If you do not have access to a school server, then you
can register with xofriends.org (or another independent service) and
use that suffix.
Clicking on a link of this form would add this person to your buddy
list. Communicating with a this form of buddy would, in parallel, (a)
attempt to contact the IPv6 Link-Local address formed from the lower
64 bits of the SHA-256 of the complete friend domain string (not
including the URI scheme or colon) and (b) attempt to look up the
hostname and contact the IPv4 or IPv6 address returned. (If the DNS
responds, you SHOULD use this address for further communication in
this session, since it may persist even if you roam off your current
mesh.) A simple service at a well-known port would confirm status and
list sharable activities.
Via a network manager hook, XOs should report their current IPv4/IPv6
addresses to the 'school.country.xs.laptop.org' part of their local
domain name, which will export it via the standard dynamic DNS
mechanisms.
--scott
--
( http://cscott.net/ )
More information about the Devel
mailing list