[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Sks-devel] Recon Details
From: |
Phil Pennock |
Subject: |
Re: [Sks-devel] Recon Details |
Date: |
Mon, 28 Oct 2013 17:35:32 -0400 |
On 2013-10-28 at 15:59 +0100, Thomas Spycher wrote:
> I’m the guy asking for Gossiping peers and the message of John Clizbe has
> bring me to an other mystery in the GPG World.
> I think i do understand the hkp protocol very well. I do understand the idea
> behind gossiping as well. The theory about recon i think i do understand, but
> what i do not understand is how the reconciliation is actually done! I was
> digging trough the sks sourcecode and due to i’m not natively ocaml speaking,
> i’m having my problems figuring out how it works.
>
> Can someone explain an recon session? Or giving examples based on a telnet
> session?!
There's some academic papers by Yaron Minsky on the set reconciliation
algorithm he devised, linked to at:
https://bitbucket.org/skskeyserver/sks-keyserver/wiki/Home
Port 11370 speaks a protocol which just identifies what needs to be
transferred. Each side then performs HKP GET requests against
peering_port+1 (ie, 11371) to retrieve the keys, using normal key
retrieval. Thus you need both ports to be open to peers.
If recollection serves (it might not), the recon protocol is binary,
bi-directional and custom. Casey Marshall examined it closely so that
he could reimplement it in Go (Golang), for use in Hockeypuck:
https://launchpad.net/hockeypuck
and I'd start looking at his conflux library:
https://github.com/cmars/conflux
-Phil
pgp78JQs5Lbju.pgp
Description: PGP signature