ZeroTierOne/root-topology
2014-10-03 11:59:50 -07:00
..
local-testnet More work on adding testnet and user-mode capabilities for local network simulation. 2014-10-03 11:59:50 -07:00
supernodes Accept supernode dictionaries in Topology, also fix (unused) field name in one of these. 2014-08-14 18:06:18 -04:00
bin2c.c bin2c warning removed 2014-09-03 12:25:28 -07:00
Makefile Fix an oversight in signed dictionaries: the timestamp and signing identity should themselves be part of the signature. Also include the raw dictionary in addition to the bin2c version in root-topology/ 2014-08-08 12:46:00 -04:00
mktopology.cpp Add noupdate flag in root topologies, add ability for mktopology to read from a template. 2014-09-03 11:56:36 -07:00
README.md Add noupdate flag in root topologies, add ability for mktopology to read from a template. 2014-09-03 11:56:36 -07:00
ZT_DEFAULT_ROOT_TOPOLOGY.c Regenerate root topology dictionary with field fix. 2014-08-14 18:54:53 -04:00
ZT_DEFAULT_ROOT_TOPOLOGY.dict Regenerate root topology dictionary with field fix. 2014-08-14 18:54:53 -04:00

This folder contains the source files to compile the signed network root topology dictionary. Users outside ZeroTier won't find this useful except for testing, since the root topology must be signed by the root topology authority (public identity in root-topology-authority.public) to be considered valid.

Keys in the root topology dictionary are:

  • supernodes: contains another Dictionary mapping supernode address to supernode definition
    • ##########: supernode address, contains supernode definition
      • id: supernode identity (public) in string-serialized format
      • udp: comma-delimited list of ip/port UDP addresses of node
      • tcp: comma-delimited list of ip/port TCP addresses of node
      • desc: human-readable description (optional)
      • dns: DNS name (optional, not currently used for anything)
  • noupdate: if the value of this is '1', do not auto-update from ZeroTier's servers

ZT_DEFAULT_ROOT_TOPOLOGY.c contains the current default value, and this URL is periodically checked for updates:

http://download.zerotier.com/net/topology/ROOT

Obviously nothing prevents OSS users from replacing this topology with their own, changing the hard coded topology signing identity and update URL in Defaults, and signing their own dictionary. But doing so would yield a network that would have a tough(ish) time talking to the main one. Since the main network is a free service, why bother? (Except for building testnets, which ZeroTier already does for internal testing.)