ouroboros-network
Ouroboros-Network Repository Hackage Documentation
This site contains Haskell documentation of
- Ouroboros-Network - networking component of the Haskell implementation of Ouroboros protocols
- Ouroboros-Consensus - Ouroboros Consensus family of protocols which integrate with `Ouroboros-Network`
Module Structure And Network Components
IOSim & Monad Classes
- io-sim -
IOSim
monad which allows us to test networking code in simulation. - io-classes - abstract classes under
Class
which allow to use realIO
or theSimIO
monad in a polymorphic way.
- io-sim -
Network - low level networking libraries, independent of our choices
Ouroboros.Network
- 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
ouroboros-network - networking library which supports /Ouroboros family of protocols/. It includes:
Implementations, type level specifications, and APIs of all the protocols:
/Block chain related data structures that the networking code needs to be aware of:/
Network applications:
- Block Fetch Application
Tx Submission Applications:
- Peer Selection
- Data Diffusion which combines all the pieces for supporting a node
- NodeToNode API
- NodeToClient API
Signatures
Modules
- Cardano
- Control
- Concurrent
- Data
- Network
- Ouroboros
- Consensus
- Ouroboros.Consensus.Block
- Ouroboros.Consensus.BlockchainTime
- Byron
- Crypto
- Ouroboros.Consensus.Byron.EBBs
- Ouroboros.Consensus.Byron.Ledger
- Ouroboros.Consensus.Byron.Ledger.Block
- Ouroboros.Consensus.Byron.Ledger.Config
- Ouroboros.Consensus.Byron.Ledger.Conversions
- Ouroboros.Consensus.Byron.Ledger.Forge
- Ouroboros.Consensus.Byron.Ledger.HeaderValidation
- Ouroboros.Consensus.Byron.Ledger.Inspect
- Ouroboros.Consensus.Byron.Ledger.Integrity
- Ouroboros.Consensus.Byron.Ledger.Ledger
- Ouroboros.Consensus.Byron.Ledger.Mempool
- Ouroboros.Consensus.Byron.Ledger.NetworkProtocolVersion
- Ouroboros.Consensus.Byron.Ledger.Orphans
- Ouroboros.Consensus.Byron.Ledger.PBFT
- Ouroboros.Consensus.Byron.Ledger.Serialisation
- Ouroboros.Consensus.Byron.Node
- Ouroboros.Consensus.Byron.Protocol
- ByronDual
- ByronSpec
- Ouroboros.Consensus.ByronSpec.Ledger
- Ouroboros.Consensus.ByronSpec.Ledger.Accessors
- Ouroboros.Consensus.ByronSpec.Ledger.Block
- Ouroboros.Consensus.ByronSpec.Ledger.Conversions
- Ouroboros.Consensus.ByronSpec.Ledger.Forge
- Ouroboros.Consensus.ByronSpec.Ledger.GenTx
- Ouroboros.Consensus.ByronSpec.Ledger.Genesis
- Ouroboros.Consensus.ByronSpec.Ledger.Ledger
- Ouroboros.Consensus.ByronSpec.Ledger.Mempool
- Ouroboros.Consensus.ByronSpec.Ledger.Orphans
- Ouroboros.Consensus.ByronSpec.Ledger.Rules
- Ouroboros.Consensus.ByronSpec.Ledger
- Ouroboros.Consensus.Cardano
- Ouroboros.Consensus.Config
- Ouroboros.Consensus.Forecast
- Fragment
- HardFork
- Ouroboros.Consensus.HardFork.Abstract
- Ouroboros.Consensus.HardFork.Combinator
- Ouroboros.Consensus.HardFork.Combinator.Abstract
- Ouroboros.Consensus.HardFork.Combinator.AcrossEras
- Ouroboros.Consensus.HardFork.Combinator.Basics
- Ouroboros.Consensus.HardFork.Combinator.Block
- Ouroboros.Consensus.HardFork.Combinator.Compat
- Ouroboros.Consensus.HardFork.Combinator.Condense
- Ouroboros.Consensus.HardFork.Combinator.Degenerate
- Embed
- Ouroboros.Consensus.HardFork.Combinator.Forging
- Ouroboros.Consensus.HardFork.Combinator.Info
- Ouroboros.Consensus.HardFork.Combinator.InjectTxs
- Ouroboros.Consensus.HardFork.Combinator.Ledger
- Ouroboros.Consensus.HardFork.Combinator.Mempool
- Ouroboros.Consensus.HardFork.Combinator.Node
- Ouroboros.Consensus.HardFork.Combinator.PartialConfig
- Ouroboros.Consensus.HardFork.Combinator.Protocol
- Ouroboros.Consensus.HardFork.Combinator.Serialisation
- Ouroboros.Consensus.HardFork.Combinator.State
- Ouroboros.Consensus.HardFork.Combinator.Translation
- Util
- Ouroboros.Consensus.HardFork.Combinator.Util.DerivingVia
- Ouroboros.Consensus.HardFork.Combinator.Util.Functors
- Ouroboros.Consensus.HardFork.Combinator.Util.InPairs
- Ouroboros.Consensus.HardFork.Combinator.Util.Match
- Ouroboros.Consensus.HardFork.Combinator.Util.Tails
- Ouroboros.Consensus.HardFork.Combinator.Util.Telescope
- Ouroboros.Consensus.HardFork.History
- Ouroboros.Consensus.HardFork.Simple
- Ouroboros.Consensus.HeaderStateHistory
- Ouroboros.Consensus.HeaderValidation
- Ledger
- Ouroboros.Consensus.Ledger.Abstract
- Ouroboros.Consensus.Ledger.Basics
- Ouroboros.Consensus.Ledger.CommonProtocolParams
- Ouroboros.Consensus.Ledger.Dual
- Ouroboros.Consensus.Ledger.Extended
- Ouroboros.Consensus.Ledger.Inspect
- Ouroboros.Consensus.Ledger.Query
- Ouroboros.Consensus.Ledger.SupportsMempool
- Ouroboros.Consensus.Ledger.SupportsPeerSelection
- Ouroboros.Consensus.Ledger.SupportsProtocol
- Ouroboros.Consensus.Mempool
- MiniProtocol
- BlockFetch
- ChainSync
- LocalStateQuery
- LocalTxMonitor
- LocalTxSubmission
- Mock
- Network
- Ouroboros.Consensus.Node
- Ouroboros.Consensus.Node.DbLock
- Ouroboros.Consensus.Node.DbMarker
- Ouroboros.Consensus.Node.ErrorPolicy
- Ouroboros.Consensus.Node.Exit
- Ouroboros.Consensus.Node.InitStorage
- Ouroboros.Consensus.Node.NetworkProtocolVersion
- Ouroboros.Consensus.Node.ProtocolInfo
- Ouroboros.Consensus.Node.Recovery
- Ouroboros.Consensus.Node.RethrowPolicy
- Ouroboros.Consensus.Node.Run
- Ouroboros.Consensus.Node.Serialisation
- Ouroboros.Consensus.Node.Tracers
- Ouroboros.Consensus.NodeId
- Ouroboros.Consensus.NodeKernel
- Protocol
- Ouroboros.Consensus.Protocol.Abstract
- Ouroboros.Consensus.Protocol.BFT
- Ouroboros.Consensus.Protocol.LeaderSchedule
- Ledger
- Ouroboros.Consensus.Protocol.MockChainSel
- Ouroboros.Consensus.Protocol.ModChainSel
- Ouroboros.Consensus.Protocol.PBFT
- Ouroboros.Consensus.Protocol.Praos
- Ouroboros.Consensus.Protocol.Signed
- Ouroboros.Consensus.Protocol.TPraos
- Ouroboros.Consensus.Protocol.Translate
- Shelley
- Ouroboros.Consensus.Shelley.Crypto
- Ouroboros.Consensus.Shelley.Eras
- Ouroboros.Consensus.Shelley.HFEras
- Ouroboros.Consensus.Shelley.Ledger
- Ouroboros.Consensus.Shelley.Ledger.Block
- Ouroboros.Consensus.Shelley.Ledger.Config
- Ouroboros.Consensus.Shelley.Ledger.Forge
- Ouroboros.Consensus.Shelley.Ledger.Inspect
- Ouroboros.Consensus.Shelley.Ledger.Integrity
- Ouroboros.Consensus.Shelley.Ledger.Ledger
- Ouroboros.Consensus.Shelley.Ledger.Mempool
- Ouroboros.Consensus.Shelley.Ledger.NetworkProtocolVersion
- Ouroboros.Consensus.Shelley.Ledger.PeerSelection
- Ouroboros.Consensus.Shelley.Ledger.Protocol
- Ouroboros.Consensus.Shelley.Ledger.Query
- Ouroboros.Consensus.Shelley.Ledger.SupportsProtocol
- Ouroboros.Consensus.Shelley.Node
- Protocol
- Ouroboros.Consensus.Shelley.ShelleyHFC
- Storage
- Ouroboros.Consensus.Storage.ChainDB
- Ouroboros.Consensus.Storage.ChainDB.API
- Ouroboros.Consensus.Storage.ChainDB.Impl
- Ouroboros.Consensus.Storage.ChainDB.Impl.Args
- Ouroboros.Consensus.Storage.ChainDB.Impl.Background
- Ouroboros.Consensus.Storage.ChainDB.Impl.BlockCache
- Ouroboros.Consensus.Storage.ChainDB.Impl.ChainSel
- Ouroboros.Consensus.Storage.ChainDB.Impl.Follower
- Ouroboros.Consensus.Storage.ChainDB.Impl.Iterator
- Ouroboros.Consensus.Storage.ChainDB.Impl.LgrDB
- Ouroboros.Consensus.Storage.ChainDB.Impl.Paths
- Ouroboros.Consensus.Storage.ChainDB.Impl.Query
- Ouroboros.Consensus.Storage.ChainDB.Impl.Types
- Ouroboros.Consensus.Storage.ChainDB.Init
- Ouroboros.Consensus.Storage.Common
- FS
- Ouroboros.Consensus.Storage.IO
- Ouroboros.Consensus.Storage.ImmutableDB
- Ouroboros.Consensus.Storage.ImmutableDB.API
- Ouroboros.Consensus.Storage.ImmutableDB.Chunks
- Ouroboros.Consensus.Storage.ImmutableDB.Impl
- Ouroboros.Consensus.Storage.ImmutableDB.Impl.Index
- Ouroboros.Consensus.Storage.ImmutableDB.Impl.Iterator
- Ouroboros.Consensus.Storage.ImmutableDB.Impl.Parser
- Ouroboros.Consensus.Storage.ImmutableDB.Impl.State
- Ouroboros.Consensus.Storage.ImmutableDB.Impl.Types
- Ouroboros.Consensus.Storage.ImmutableDB.Impl.Util
- Ouroboros.Consensus.Storage.ImmutableDB.Impl.Validation
- LedgerDB
- Ouroboros.Consensus.Storage.Serialisation
- Ouroboros.Consensus.Storage.VolatileDB
- Ouroboros.Consensus.Storage.ChainDB
- Ouroboros.Consensus.Ticked
- Ouroboros.Consensus.TypeFamilyWrappers
- Ouroboros.Consensus.Util
- Ouroboros.Consensus.Util.AnchoredFragment
- Ouroboros.Consensus.Util.Args
- Ouroboros.Consensus.Util.Assert
- Ouroboros.Consensus.Util.CBOR
- Ouroboros.Consensus.Util.CallStack
- Ouroboros.Consensus.Util.Condense
- Ouroboros.Consensus.Util.Counting
- Ouroboros.Consensus.Util.DepPair
- Ouroboros.Consensus.Util.EarlyExit
- Ouroboros.Consensus.Util.Enclose
- Ouroboros.Consensus.Util.FileLock
- Ouroboros.Consensus.Util.HList
- Ouroboros.Consensus.Util.IOLike
- MonadSTM
- Ouroboros.Consensus.Util.OptNP
- Ouroboros.Consensus.Util.Orphans
- Ouroboros.Consensus.Util.RedundantConstraints
- Ouroboros.Consensus.Util.ResourceRegistry
- Ouroboros.Consensus.Util.SOP
- Ouroboros.Consensus.Util.STM
- Ouroboros.Consensus.Util.Singletons
- Ouroboros.Consensus.Util.TentativeState
- Ouroboros.Consensus.Util.Time
- Ouroboros.Consensus.Util.TraceSize
- Ouroboros.Consensus.Util.Versioned
- Network
- Ouroboros.Network.AnchoredFragment
- Ouroboros.Network.AnchoredSeq
- Ouroboros.Network.Block
- Ouroboros.Network.BlockFetch
- Ouroboros.Network.Channel
- Ouroboros.Network.CodecCBORTerm
- Ouroboros.Network.ConnectionHandler
- Ouroboros.Network.ConnectionId
- ConnectionManager
- Ouroboros.Network.DeltaQ
- Ouroboros.Network.Diffusion
- Ouroboros.Network.Driver
- Ouroboros.Network.ErrorPolicy
- Ouroboros.Network.IOManager
- Ouroboros.Network.InboundGovernor
- Ouroboros.Network.KeepAlive
- Ouroboros.Network.Linger
- Ouroboros.Network.Magic
- MockChain
- Ouroboros.Network.Mux
- Ouroboros.Network.MuxMode
- Ouroboros.Network.NodeToClient
- Ouroboros.Network.NodeToNode
- PeerSelection
- Ouroboros.Network.PeerSelection.EstablishedPeers
- Ouroboros.Network.PeerSelection.Governor
- Ouroboros.Network.PeerSelection.Governor.ActivePeers
- Ouroboros.Network.PeerSelection.Governor.EstablishedPeers
- Ouroboros.Network.PeerSelection.Governor.KnownPeers
- Ouroboros.Network.PeerSelection.Governor.Monitor
- Ouroboros.Network.PeerSelection.Governor.RootPeers
- Ouroboros.Network.PeerSelection.Governor.Types
- Ouroboros.Network.PeerSelection.KnownPeers
- Ouroboros.Network.PeerSelection.LedgerPeers
- Ouroboros.Network.PeerSelection.LocalRootPeers
- Ouroboros.Network.PeerSelection.PeerMetric
- Ouroboros.Network.PeerSelection.PeerStateActions
- Ouroboros.Network.PeerSelection.RelayAccessPoint
- Ouroboros.Network.PeerSelection.RootPeersDNS
- Ouroboros.Network.PeerSelection.Simple
- Ouroboros.Network.PeerSelection.Types
- Ouroboros.Network.Point
- Protocol
- BlockFetch
- ChainSync
- Ouroboros.Network.Protocol.ChainSync.Client
- Ouroboros.Network.Protocol.ChainSync.ClientPipelined
- Ouroboros.Network.Protocol.ChainSync.Codec
- Ouroboros.Network.Protocol.ChainSync.Examples
- Ouroboros.Network.Protocol.ChainSync.PipelineDecision
- Ouroboros.Network.Protocol.ChainSync.Server
- Ouroboros.Network.Protocol.ChainSync.Type
- Ouroboros.Network.Protocol.Handshake
- KeepAlive
- Ouroboros.Network.Protocol.Limits
- LocalStateQuery
- LocalTxMonitor
- LocalTxSubmission
- TxSubmission2
- Ouroboros.Network.RethrowPolicy
- Server
- Ouroboros.Network.Server2
- Ouroboros.Network.Snocket
- Ouroboros.Network.Socket
- Ouroboros.Network.Subscription
- Testing
- Ouroboros.Network.Tracers
- TxSubmission
- Util
- Consensus
- Simulation
- Network
- Test
- Consensus
- Byron
- Cardano
- Ledger
- Shelley
- ThreadNet
- Util
- Test.Util.Blob
- Test.Util.BoolProps
- Test.Util.ChainUpdates
- Test.Util.ChunkInfo
- Test.Util.Classify
- Test.Util.Corruption
- FS
- Test.Util.FileLock
- HardFork
- Test.Util.InvertedMap
- Test.Util.LogicalClock
- Test.Util.MockChain
- Test.Util.Nightly
- Orphans
- Test.Util.Paths
- Test.Util.QSM
- Test.Util.QuickCheck
- Test.Util.Range
- Test.Util.RefEnv
- Test.Util.SOP
- Test.Util.Schedule
- Serialisation
- Test.Util.Shrink
- Test.Util.Slots
- Test.Util.Split
- Test.Util.Stream
- Test.Util.TestBlock
- Test.Util.Time
- Test.Util.Tracer
- Test.Util.WithEq
- Consensus