For the purpose of internet-wide distributed system bootstrapping an easy and decentralized method is currently missing.

Currently, the problem is solved by using ad-hoc bootstrapping mechanisms; examples include connecting to an IRC channel (bitcoin), using a list of well-known hosts, connecting to a bootstrapping server (skype), manual or out-of-band bootstrapping (ed2k).

Until IPv6 any/multicasting is widely deployed, it should be possible to leverage the pervasivity of the web to attain the same effect. To do this, we propose a schema for in-band metadata.

Essentially, when we want to publish some information, we embed it into a fragment of the form:

fragment : header body
header   : "__metafrag_" schema "_"
schema   : [a-z]+
body     : [a-zA-Z0-9]+

The following are examples of well-formed fragments:

__metafrag_rv_a98ghjruisv
__metafrag_x_0432785943
__metafrag_yadda_YADDAyaddaYADDAyadda

The format is chosen to be simply recognizable, indexable and searchable using general-purpose search engines.

Example rendezvous schema

To advertise the availability of nodes for a P2P system called FooBar, we could decide to define a suitable FooBar rendezvous schema:

schema : "rvfoobar"
body   : ip port?
ip     : [0-9A-F](8) | [0-9A-F](32)
port   : [0-9A-F](4)

The following are examples of well-formed FooBar rendezvous fragments:

__metafrag_rvfoobar_BB09E287
__metafrag_rvfoobar_BB09E287349B
__metafrag_rvfoobar_A4923B05FD9543CCC94BACD89000001F
__metafrag_rvfoobar_A4923B05FD9543CCC94BACD89000001F74AA

To bootstrap, a node would simply perform a websearch for the string "__metafrag_rvfoobar_" (or even just for the string "metafrag rvfoobar") and then parse the returned results for occurences of well-formed FooBar rendezvous fragments.

It's obvious that such a system does not guarantee any form of built-in security. Data contained in the body might be malicious, tampered, in a wrong format or simply incorrect. It MUST be treated as such.

1985-2017 CAFxX