Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- class LedgerSupportsPeerSelection blk where
- getPeers ∷ LedgerState blk → [(PoolStake, NonEmpty StakePoolRelay)]
- newtype PoolStake = PoolStake {}
- data StakePoolRelay
- stakePoolRelayAccessPoint ∷ StakePoolRelay → RelayAccessPoint
- data DomainAccessPoint = DomainAccessPoint {}
- data IP
- data PortNumber
- data RelayAccessPoint where
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.
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
Show StakePoolRelay Source # | |
Defined in Ouroboros.Consensus.Ledger.SupportsPeerSelection showsPrec ∷ Int → StakePoolRelay → ShowS # show ∷ StakePoolRelay → String # showList ∷ [StakePoolRelay] → ShowS # | |
NFData StakePoolRelay Source # | |
Defined in Ouroboros.Consensus.Ledger.SupportsPeerSelection rnf ∷ StakePoolRelay → () # | |
Eq StakePoolRelay Source # | |
Defined in Ouroboros.Consensus.Ledger.SupportsPeerSelection (==) ∷ StakePoolRelay → StakePoolRelay → Bool # (/=) ∷ StakePoolRelay → StakePoolRelay → Bool # |
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
A unified IP data for IP
and IP
.
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
Data IP | |
Defined in Data.IP.Addr gfoldl ∷ (∀ d b. Data d ⇒ c (d → b) → d → c b) → (∀ g. g → c g) → IP → c IP # gunfold ∷ (∀ b r. Data b ⇒ c (b → r) → c r) → (∀ r. r → c r) → Constr → c IP # dataTypeOf ∷ IP → DataType # dataCast1 ∷ Typeable t ⇒ (∀ d. Data d ⇒ c (t d)) → Maybe (c IP) # dataCast2 ∷ Typeable t ⇒ (∀ d e. (Data d, Data e) ⇒ c (t d e)) → Maybe (c IP) # gmapT ∷ (∀ b. Data b ⇒ b → b) → IP → IP # gmapQl ∷ (r → r' → r) → r → (∀ d. Data d ⇒ d → r') → IP → r # gmapQr ∷ ∀ r r'. (r' → r → r) → r → (∀ d. Data d ⇒ d → r') → IP → r # gmapQ ∷ (∀ d. Data d ⇒ d → u) → IP → [u] # gmapQi ∷ Int → (∀ d. Data d ⇒ d → u) → IP → u # gmapM ∷ Monad m ⇒ (∀ d. Data d ⇒ d → m d) → IP → m IP # gmapMp ∷ MonadPlus m ⇒ (∀ d. Data d ⇒ d → m d) → IP → m IP # gmapMo ∷ MonadPlus m ⇒ (∀ d. Data d ⇒ d → m d) → IP → m IP # | |
IsString IP | |
Defined in Data.IP.Addr fromString ∷ String → IP # | |
Enum IP | |
Generic IP | |
Read IP | |
Show IP | |
Eq IP | Equality over IP addresses. Correctly compare IPv4 and IPv4-embedded-in-IPv6 addresses.
|
Ord IP | |
type Rep IP | |
Defined in Data.IP.Addr type Rep IP = D1 ('MetaData "IP" "Data.IP.Addr" "iproute-1.7.14-6b9418fe82cf3ac270565b565c9ca31064fb16ef2588f0c5617a1ab13123b7ca" '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 |
|