Move discovery protocol spec
Full rewrite of puller code