Cardano Protocol

Hey All,

I’ve had a bad day trying to reverse engineer an old broken library only to realise it’s only Byron compatible. Sad times.

From my network background I am used to protocols being described with RFCs and then they can be implemented in whatever language by whatever vendors exist out there. The point is that if everyone is working to the ratified RFCs we can have interoperability between the various implementations, when a piece of equipment does not follow the ratified standard it is considered a bug or bad software.

Given that the Ouraboros protocol is just that, a protocol I was wondering where one might find a packet flow description of how the protocol should work at a network layer. I have read through the Ouraboros papers and not found any information on the implementation at a network layer.

Right now it would seem to me that the only documentation of the protocol is at a very high level in these research papers and other than that one has to read the source code of the current Haskell implementation.

Can someone please point me in the direction of what I am looking for? I am sure I am just being dense as usual and overlooking something obvious.

An example of what I am referring to, the OSPF v2 RFC and description of Hello packets

Many Thanks,

1 Like

Network Engineer here. I would love this. They are making the “Mastering Cardano” book which should be a summary of all the published papers.

This appears to be the best answer so far.


Be aware the document is fairly out of date -.-" considering this is supposed to be a peer reviewed protocol the notion that the RFCs are not correct is a poor show. The research might be there but it could be implemented completely incorrectly. RFC means Request For Comment, considering this is a protocol when you get to the bottom line it’s a poor show.

Not only that but the actual documentation only describes the generic states, not what data is passed and in what format. The research might be solid and even the code might be solid but no one can say whether it is implemented correctly because “correctly” has not been defined.