ouroboros-consensus-0.1.0.1: Consensus layer for the Ouroboros blockchain protocol
Safe Haskell None
Language Haskell2010

Ouroboros.Consensus.Ledger.SupportsPeerSelection

Synopsis

Documentation

class LedgerSupportsPeerSelection blk where Source #

Methods

getPeers :: LedgerState blk -> [( PoolStake , NonEmpty StakePoolRelay )] Source #

Return peers registered in the ledger ordered by descending PoolStake .

For example, for Shelley, the relays that have been registered in the ledger for the respective stake pools will be returned.

Ledgers/blocks that don't support staking can return an empty list.

Note: if the ledger state is old, the registered relays can also be old and may no longer be online.

newtype PoolStake Source #

The relative stake of a stakepool in relation to the total amount staked. A value in the [0, 1] range.

Instances

Instances details
Eq PoolStake
Instance details

Defined in Ouroboros.Network.PeerSelection.LedgerPeers

Fractional PoolStake
Instance details

Defined in Ouroboros.Network.PeerSelection.LedgerPeers

Num PoolStake
Instance details

Defined in Ouroboros.Network.PeerSelection.LedgerPeers

Ord PoolStake
Instance details

Defined in Ouroboros.Network.PeerSelection.LedgerPeers

Show PoolStake
Instance details

Defined in Ouroboros.Network.PeerSelection.LedgerPeers

NFData PoolStake
Instance details

Defined in Ouroboros.Network.PeerSelection.LedgerPeers

Re-exports for convenience

data DomainAccessPoint Source #

A product of a Domain and PortNumber . After resolving the domain we will use the PortNumber to form SockAddr .

Instances

Instances details
Eq DomainAccessPoint
Instance details

Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint

Ord DomainAccessPoint
Instance details

Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint

Show DomainAccessPoint
Instance details

Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint

ToJSON DomainAccessPoint
Instance details

Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint

FromJSON DomainAccessPoint
Instance details

Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint

data IP Source #

A unified IP data for IPv4 and IPv6 . To create this, use the data constructors. Or use read "192.0.2.1" :: IP , for example. Also, "192.0.2.1" can be used as literal with OverloadedStrings.

>>> (read "192.0.2.1" :: IP) == IPv4 (read "192.0.2.1" :: IPv4)
True
>>> (read "2001:db8:00:00:00:00:00:01" :: IP) == IPv6 (read "2001:db8:00:00:00:00:00:01" :: IPv6)
True

Constructors

IPv4

Fields

IPv6

Fields

Instances

Instances details
Enum IP
Instance details

Defined in Data.IP.Addr

Eq IP

Equality over IP addresses. Correctly compare IPv4 and IPv4-embedded-in-IPv6 addresses.

>>> (read "2001:db8:00:00:00:00:00:01" :: IP) == (read "2001:db8:00:00:00:00:00:01" :: IP)
True
>>> (read "2001:db8:00:00:00:00:00:01" :: IP) == (read "2001:db8:00:00:00:00:00:05" :: IP)
False
>>> (read "127.0.0.1" :: IP) == (read "127.0.0.1" :: IP)
True
>>> (read "127.0.0.1" :: IP) == (read "10.0.0.1" :: IP)
False
>>> (read "::ffff:127.0.0.1" :: IP) == (read "127.0.0.1" :: IP)
True
>>> (read "::ffff:127.0.0.1" :: IP) == (read "127.0.0.9" :: IP)
False
>>> (read "::ffff:127.0.0.1" :: IP) >= (read "127.0.0.1" :: IP)
True
>>> (read "::ffff:127.0.0.1" :: IP) <= (read "127.0.0.1" :: IP)
True
Instance details

Defined in Data.IP.Addr

Data IP
Instance details

Defined in Data.IP.Addr

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> IP -> c IP Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c IP Source #

toConstr :: IP -> Constr Source #

dataTypeOf :: IP -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c IP ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c IP ) Source #

gmapT :: ( forall b. Data b => b -> b) -> IP -> IP Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> IP -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> IP -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> IP -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> IP -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> IP -> m IP Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> IP -> m IP Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> IP -> m IP Source #

Ord IP
Instance details

Defined in Data.IP.Addr

Read IP
Instance details

Defined in Data.IP.Addr

Show IP
Instance details

Defined in Data.IP.Addr

IsString IP
Instance details

Defined in Data.IP.Addr

Generic IP
Instance details

Defined in Data.IP.Addr

Associated Types

type Rep IP :: Type -> Type Source #

type Rep IP
Instance details

Defined in Data.IP.Addr

data PortNumber Source #

Port number. Use the Num instance (i.e. use a literal) to create a PortNumber value.

>>> 1 :: PortNumber
1
>>> read "1" :: PortNumber
1
>>> show (12345 :: PortNumber)
"12345"
>>> 50000 < (51000 :: PortNumber)
True
>>> 50000 < (52000 :: PortNumber)
True
>>> 50000 + (10000 :: PortNumber)
60000

Instances

Instances details
Bounded PortNumber
Instance details

Defined in Network.Socket.Types

Enum PortNumber
Instance details

Defined in Network.Socket.Types

Eq PortNumber
Instance details

Defined in Network.Socket.Types

Integral PortNumber
Instance details

Defined in Network.Socket.Types

Num PortNumber
Instance details

Defined in Network.Socket.Types

Ord PortNumber
Instance details

Defined in Network.Socket.Types

Read PortNumber
Instance details

Defined in Network.Socket.Types

Real PortNumber
Instance details

Defined in Network.Socket.Types

Show PortNumber
Instance details

Defined in Network.Socket.Types

Storable PortNumber
Instance details

Defined in Network.Socket.Types

data RelayAccessPoint Source #

A relay can have either an IP address and a port number or a domain with a port number

Instances

Instances details
Eq RelayAccessPoint
Instance details

Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint

Ord RelayAccessPoint
Instance details

Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint

Show RelayAccessPoint
Instance details

Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint

ToJSON RelayAccessPoint
Instance details

Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint

FromJSON RelayAccessPoint
Instance details

Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint

NFData RelayAccessPoint
Instance details

Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint