Ouroboros-Network Repository Hackage Documentation
This site contains Haskell documentation of Ouroboros-Network - networking component of the Haskell implementation of Ouroboros protocols.
Documentation
- Introduction to the Design of Data Diffusion and Networking of Cardano Shelley
- The Shelley Networking Protocol
- Official Cardano Documentation
Packages
ouroboros-network-api - API shared by ouroboros-network packages and ouroboros-consensus, e.g. common types, APIs that are provided by the consensus layar. Among others, it includes:
/Block chain related data structures that the networking code needs to be aware of:/
- ouroboros-network-framework - our instantiations and implementation of servers, clients, abstractions for working with named pipes and unix sockets. These are higher level components, which don't dependent on ouroboros protocols, but build a solid foundation for the networking library. Among others, it includes
- Inbound Governor
- Server P2P
- Server NonP2P
- Socket
- Snocket
- Simulated Snocket
ouroboros-network-protocols - /Implementations, type level specifications, and APIs of all the protocols:/
Note
Handshake
mini-protocol is implemented inourboros-network-framework
: * Handshakeouroboros-network - networking library which supports /Ouroboros family of protocols/. It includes:
Network applications:
- Block Fetch Application
Tx Submission Applications:
APIs:
- Data Diffusion which combines all the pieces for supporting a node
- NodeToNode API
- NodeToClient API
- Peer Selection (aka outbound governor)
- cardano-client - a library which supports subscription mechanism via
node-to-client
protocol - network-mux - an implementation of a network multiplexer.
- ntp-client - an implementation of an NTP client.
- cardano-ping - a library which implements a ping over
node-to-node
andnode-to-client
protocols. Used bycardano-cli ping
command. - ouroboros-network-mock - a mock chain, used for testing.
- ouroboros-network-testing - helpful functions for testing purposes.
- monoidal-synchronisation - synchronisation primitives (first to finish, last to finish)
- Cardano
- Cardano
- Network
- Data
- Network
- Control
- Concurrent
- Class
- MonadSTM
- Class
- Concurrent
- Ouroboros
- Network
- Ouroboros.Network.BlockFetch
- Ouroboros.Network.DeltaQ
- Ouroboros.Network.Diffusion
- Ouroboros.Network.ExitPolicy
- Ouroboros.Network.KeepAlive
- Ouroboros.Network.NodeToClient
- Ouroboros.Network.NodeToNode
- PeerSelection
- Ouroboros.Network.PeerSelection.Governor
- Ouroboros.Network.PeerSelection.LedgerPeers
- Ouroboros.Network.PeerSelection.PeerMetric
- Ouroboros.Network.PeerSelection.PeerSelectionActions
- Ouroboros.Network.PeerSelection.PeerStateActions
- Ouroboros.Network.PeerSelection.PublicRootPeers
- Ouroboros.Network.PeerSelection.RootPeersDNS
- State
- Ouroboros.Network.PeerSelection.Types
- Ouroboros.Network.PeerSharing
- Ouroboros.Network.Tracers
- TxSubmission
- Network
- Ouroboros
- Network
- Test
- Ouroboros
- Network
- Test.Ouroboros.Network.BlockFetch
- Diffusion
- Test.Ouroboros.Network.KeepAlive
- Test.Ouroboros.Network.LedgerPeers
- Test.Ouroboros.Network.MockNode
- Test.Ouroboros.Network.Mux
- NodeToClient
- NodeToNode
- Test.Ouroboros.Network.Orphans
- Test.Ouroboros.Network.PeerSelection
- Test.Ouroboros.Network.PeerSelection.Instances
- Test.Ouroboros.Network.PeerSelection.Json
- Test.Ouroboros.Network.PeerSelection.KnownPeers
- Test.Ouroboros.Network.PeerSelection.LocalRootPeers
- Test.Ouroboros.Network.PeerSelection.MockEnvironment
- Test.Ouroboros.Network.PeerSelection.PeerGraph
- Test.Ouroboros.Network.PeerSelection.PeerMetric
- Test.Ouroboros.Network.PeerSelection.PublicRootPeers
- Test.Ouroboros.Network.PeerSelection.RootPeersDNS
- Test.Ouroboros.Network.PeerState
- Test.Ouroboros.Network.Testnet
- Test.Ouroboros.Network.TxSubmission
- Test.Ouroboros.Network.Version
- Network
- Ouroboros
- Ouroboros
- Network
- Ouroboros.Network.AnchoredFragment
- Ouroboros.Network.AnchoredSeq
- Ouroboros.Network.Block
- BlockFetch
- Ouroboros.Network.CodecCBORTerm
- Ouroboros.Network.ConsensusMode
- Ouroboros.Network.ControlMessage
- Ouroboros.Network.Handshake
- Ouroboros.Network.Magic
- NodeToClient
- NodeToNode
- PeerSelection
- Ouroboros.Network.Point
- Protocol
- Ouroboros.Network.SizeInBytes
- Util
- Network
- Data
- NoThunks
- Ouroboros
- Network
- Ouroboros.Network.Channel
- Ouroboros.Network.ConnectionHandler
- Ouroboros.Network.ConnectionId
- ConnectionManager
- Ouroboros.Network.Context
- Ouroboros.Network.Driver
- Ouroboros.Network.ErrorPolicy
- Ouroboros.Network.IOManager
- Ouroboros.Network.InboundGovernor
- Ouroboros.Network.Mux
- Ouroboros.Network.MuxMode
- Protocol
- Ouroboros.Network.RethrowPolicy
- Server
- Ouroboros.Network.Server2
- Ouroboros.Network.Snocket
- Ouroboros.Network.Socket
- Ouroboros.Network.Subscription
- Network
- Simulation
- Network
- Ouroboros
- Ouroboros
- Ouroboros
- Network
- Protocol
- BlockFetch
- ChainSync
- KeepAlive
- LocalStateQuery
- LocalTxMonitor
- LocalTxSubmission
- PeerSharing
- TxSubmission2
- Protocol
- Network
- Ouroboros
- Network
- Protocol
- BlockFetch
- ChainSync
- Handshake
- KeepAlive
- LocalStateQuery
- LocalTxMonitor
- LocalTxSubmission
- PeerSharing
- TxSubmission2
- Protocol
- Network
- Test
- Ouroboros
- Test
- QuickCheck