[zeromq-dev] ZRE interoperability

Pieter Hintjens ph at imatix.com
Sun Jun 29 17:35:38 CEST 2014

On Sun, Jun 29, 2014 at 1:47 PM, Chris Laws <clawsicus at gmail.com> wrote:

> I did not initially realize that there were 20/ZRE and 36/ZRE versions.

Sorry about that. There's a small note in the header of RFC 20, I'll
add a more explicit note in the first paragraph.

> When running C, Go and Python chat examples, my Pyre node would crash upon
> receipt of 17 byte length identities (a v2 feature). Apart from checking the
> sender identity length in the HELLO is there any way to detect that a peer
> is v1 or v2?

Rookie mistake on my behalf. I've a protocol signature but no
versioning. The version number has to go into every message. I'll add
that into V2 and update the C code....

... ok, done, pull requests pending.

> The czmq and Go based ZRE libs define a version (e.g. zyre's ZRE_MSG_VERSION
> in zre_msg.h) but do not seem to use it anywhere.

Removed that constant, it was useless.

> The ZRE beacons have a version, v1, but this does not actually inform the
> receiver of the peers TCP version which may be v2. ZRE seems to be a
> combination of the UDP and TCP protocols so should this in fact report v2
> for ZRE implementations using v2 of the protocol (36/ZRE)?

Right, the beacon version is independent.

> Establishing a simple interoperability test (such as the simple chat
> example) would be a great way to ensure each implementation's protocol
> compliance and serve as a useful tool for testing and refining the protocol
> specification.

Nice idea...


More information about the zeromq-dev mailing list