Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
-
class
LedgerSupportsPeerSelection
blk
where
- getPeers :: LedgerState blk -> [( PoolStake , NonEmpty StakePoolRelay )]
- newtype PoolStake = PoolStake { }
- data StakePoolRelay
- stakePoolRelayAccessPoint :: StakePoolRelay -> RelayAccessPoint
-
data
DomainAccessPoint
=
DomainAccessPoint
{
- dapDomain :: ! Domain
- dapPortNumber :: ! PortNumber
- data IP
- data PortNumber
-
data
RelayAccessPoint
where
- RelayAccessDomain ! Domain ! PortNumber
- RelayAccessAddress ! IP ! PortNumber
- pattern RelayDomainAccessPoint :: DomainAccessPoint -> RelayAccessPoint
Documentation
class LedgerSupportsPeerSelection blk where Source #
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.
Instances
CanHardFork xs => LedgerSupportsPeerSelection ( HardForkBlock xs) Source # | |
Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger.PeerSelection getPeers :: LedgerState ( HardForkBlock xs) -> [( PoolStake , NonEmpty StakePoolRelay )] Source # |
|
LedgerSupportsPeerSelection m => LedgerSupportsPeerSelection ( DualBlock m a) Source # | |
Defined in Ouroboros.Consensus.Ledger.Dual getPeers :: LedgerState ( DualBlock m a) -> [( PoolStake , NonEmpty StakePoolRelay )] Source # |
The relative stake of a stakepool in relation to the total amount staked. A value in the [0, 1] range.
Instances
Eq PoolStake | |
Fractional PoolStake | |
Num PoolStake | |
Defined in Ouroboros.Network.PeerSelection.LedgerPeers (+) :: PoolStake -> PoolStake -> PoolStake Source # (-) :: PoolStake -> PoolStake -> PoolStake Source # (*) :: PoolStake -> PoolStake -> PoolStake Source # negate :: PoolStake -> PoolStake Source # abs :: PoolStake -> PoolStake Source # signum :: PoolStake -> PoolStake Source # fromInteger :: Integer -> PoolStake Source # |
|
Ord PoolStake | |
Defined in Ouroboros.Network.PeerSelection.LedgerPeers |
|
Show PoolStake | |
NFData PoolStake | |
Defined in Ouroboros.Network.PeerSelection.LedgerPeers |
data StakePoolRelay Source #
A relay registered for a stake pool
CurrentRelay RelayAccessPoint |
One of the current relays |
FutureRelay RelayAccessPoint |
One of the future relays |
Instances
Eq StakePoolRelay Source # | |
Defined in Ouroboros.Consensus.Ledger.SupportsPeerSelection (==) :: StakePoolRelay -> StakePoolRelay -> Bool Source # (/=) :: StakePoolRelay -> StakePoolRelay -> Bool Source # |
|
Show StakePoolRelay Source # | |
|
|
NFData StakePoolRelay Source # | |
Defined in Ouroboros.Consensus.Ledger.SupportsPeerSelection rnf :: StakePoolRelay -> () Source # |
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
.
DomainAccessPoint | |
|
Instances
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
Instances
Enum IP | |
Defined in Data.IP.Addr |
|
Eq IP |
Equality over IP addresses. Correctly compare IPv4 and IPv4-embedded-in-IPv6 addresses.
|
Data IP | |
Defined in Data.IP.Addr 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 | |
Read IP | |
Show IP | |
IsString IP | |
Defined in Data.IP.Addr fromString :: String -> IP Source # |
|
Generic IP | |
type Rep IP | |
Defined in Data.IP.Addr
type
Rep
IP
=
D1
('
MetaData
"IP" "Data.IP.Addr" "iproute-1.7.12-7531Frr8UW3EGpk43IP3fV" '
False
) (
C1
('
MetaCons
"IPv4" '
PrefixI
'
True
) (
S1
('
MetaSel
('
Just
"ipv4") '
NoSourceUnpackedness
'
NoSourceStrictness
'
DecidedUnpack
) (
Rec0
IPv4
))
:+:
C1
('
MetaCons
"IPv6" '
PrefixI
'
True
) (
S1
('
MetaSel
('
Just
"ipv6") '
NoSourceUnpackedness
'
NoSourceStrictness
'
DecidedStrict
) (
Rec0
IPv6
)))
|
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
data RelayAccessPoint Source #
A relay can have either an IP address and a port number or a domain with a port number
pattern RelayDomainAccessPoint :: DomainAccessPoint -> RelayAccessPoint |
|