A Golang implementation of the Cardano Ouroboros network protocol

Implementation status

The Ouroboros protocol consists of a simple multiplexer protocol and various mini-protocols that run on top of it. This makes it easy to implement only parts of the protocol without negatively affecting usability of this library.

The multiplexer and handshake mini-protocol are "fully" working. The focus will be on the node-to-client (local) protocols, but the node-to-node protocols will also be implemented in time.


  • BlockFetch
  • ChainSync (NtC)
  • ChainSync (NtN)
  • Handshake
  • KeepAlive
  • LocalTxMonitor
  • LocalStateQuery*
  • LocalTxSubmission
  • TxSubmission2

*Work in progress

Compare similar projects togo-ouroboros-network