# Cardano Protocol

**URL:** <https://forum.cardano.org/t/cardano-protocol/56393>\
**Category:** Cardano Projects\
**Tags:** cardano, cardano-node\
**Created:** [5 April 2021 17:44 UTC](https://forum.cardano.org/t/cardano-protocol/56393 "2021-04-05T17:44:51Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Alex\_Norris](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.cardano.org/alex_norris/32/11968_2.png) [@Alex\_Norris](https://forum.cardano.org/u/Alex_Norris)\
**Post date:** [5 April 2021 17:44 UTC](https://forum.cardano.org/t/cardano-protocol/56393/1 "2021-04-05T17:44:51Z")

</div>

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](https://tools.ietf.org/html/rfc2328#appendix-A.3.2)

Many Thanks,  
Alex

---

<div class="post-metadata">

**Author:** ![Alex\_Norris](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.cardano.org/alex_norris/32/11968_2.png) [@Alex\_Norris](https://forum.cardano.org/u/Alex_Norris)\
**Post date:** [5 April 2021 20:55 UTC](https://forum.cardano.org/t/cardano-protocol/56393/3 "2021-04-05T20:55:51Z")

</div>

> **[network-spec.pdf](https://hydra.iohk.io/build/4110312/download/2/network-spec.pdf)**
>
> 248.26 KB

This appears to be the best answer so far.

---

<div class="post-metadata">

**Author:** ![Alex\_Norris](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.cardano.org/alex_norris/32/11968_2.png) [@Alex\_Norris](https://forum.cardano.org/u/Alex_Norris)\
**Post date:** [6 April 2021 08:11 UTC](https://forum.cardano.org/t/cardano-protocol/56393/4 "2021-04-06T08:11:07Z")

</div>

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.
