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
_______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
