[zeromq-dev] ZRE interoperability

Chris Laws clawsicus at gmail.com
Sun Jun 29 13:47:24 CEST 2014


Hi list,

I've just spent some time trailing the interoperability of the C, Go and
Python ZRE implementations. I encountered some issues with the Python
version - which I later determined are due to it being a v1 implementation.
I did not initially realize that there were 20/ZRE and 36/ZRE versions.

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?

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.

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)?

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.

Regards,
Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20140629/4e6009d7/attachment.htm>


More information about the zeromq-dev mailing list