| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Test.Cardano.Network.Diffusion.Testnet.Simulation
Contents
Synopsis
- data SimArgs = SimArgs {}
- renderSimArgs :: SimArgs -> String
- mainnetSimArgs :: Int -> TxDecisionPolicy -> SimArgs
- data NodeArgs = NodeArgs {
- naSeed :: Int
- naDiffusionMode :: DiffusionMode
- naPublicRoots :: Map RelayAccessPoint PeerAdvertise
- naConsensusMode :: ConsensusMode
- naBootstrapPeers :: Script UseBootstrapPeers
- naAddr :: NtNAddr
- naPeerSharing :: PeerSharing
- naLocalRootPeers :: [(HotValency, WarmValency, Map RelayAccessPoint (LocalRootConfig PeerTrustable))]
- naLedgerPeers :: Script LedgerPools
- naPeerTargets :: (PeerSelectionTargets, PeerSelectionTargets)
- naDNSTimeoutScript :: Script DNSTimeout
- naDNSLookupDelayScript :: Script DNSLookupDelay
- naChainSyncExitOnBlockNo :: Maybe BlockNo
- naChainSyncEarlyExit :: Bool
- naFetchModeScript :: Script FetchMode
- naTxs :: [Tx Int]
- data ServiceDomainName
- data DiffusionScript = DiffusionScript SimArgs DomainMapScript [(NodeArgs, [Command])]
- data HotDiffusionScript = HotDiffusionScript SimArgs DomainMapScript [(NodeArgs, [Command])]
- data DiffusionSimulationTrace
- prop_diffusionScript_fixupCommands :: DiffusionScript -> Property
- prop_diffusionScript_commandScript_valid :: DiffusionScript -> Property
- fixupCommands :: [Command] -> [Command]
- diffusionSimulation :: BearerInfo -> DiffusionScript -> IOSim s Void
- data Command
- data DiffusionTestTrace
- = DiffusionLocalRootPeerTrace (TraceLocalRootPeers PeerTrustable NtNAddr)
- | DiffusionPublicRootPeerTrace TracePublicRootPeers
- | DiffusionLedgerPeersTrace TraceLedgerPeers
- | DiffusionPeerSelectionTrace (TracePeerSelection ExtraState PeerTrustable (ExtraPeers NtNAddr) ExtraTrace NtNAddr)
- | DiffusionPeerSelectionActionsTrace (PeerSelectionActionsTrace NtNAddr NtNVersion)
- | DiffusionDebugPeerSelectionTrace (DebugPeerSelection ExtraState PeerTrustable (ExtraPeers NtNAddr) NtNAddr)
- | DiffusionConnectionManagerTrace (Trace NtNAddr (ConnectionHandlerTrace NtNVersion NtNVersionData))
- | DiffusionSimulationTrace DiffusionSimulationTrace
- | DiffusionConnectionManagerTransitionTrace (AbstractTransitionTrace ConnStateId)
- | DiffusionInboundGovernorTransitionTrace (RemoteTransitionTrace NtNAddr)
- | DiffusionInboundGovernorTrace (Trace NtNAddr)
- | DiffusionServerTrace (Trace NtNAddr)
- | DiffusionFetchTrace (TraceFetchClientState BlockHeader)
- | DiffusionChurnModeTrace TraceChurnMode
- | DiffusionTxSubmissionInbound (TraceTxSubmissionInbound Int (Tx Int))
- | DiffusionTxLogic (TraceTxLogic NtNAddr Int (Tx Int))
- | DiffusionDebugTrace String
- | DiffusionDNSTrace DNSTrace
- | DiffusionMuxTrace (WithBearer (ConnectionId NtNAddr) Trace)
- ppDiffusionTestTrace :: DiffusionTestTrace -> String
- newtype TestAddress addr = TestAddress {
- getTestAddress :: addr
- data RelayAccessPoint
- newtype Script a = Script (NonEmpty a)
- newtype PeerAddr = PeerAddr Int
- newtype DNSLookupDelay = DNSLookupDelay {}
- newtype DNSTimeout = DNSTimeout {}
- data DomainAccessPoint
- type MockDNSMap = Map (Domain, TYPE) MockDNSLookupResult
- genDomainName :: Gen ByteString
Documentation
Diffusion Simulator Arguments
Contains all necessary randomly generated values needed to run diffusion in simulation.
Constructors
| SimArgs | |
Fields
| |
renderSimArgs :: SimArgs -> String Source #
Render SimArgs, ignores saTxDecisionPolicy; useful for quickcheck
coverage checking.
mainnetSimArgs :: Int -> TxDecisionPolicy -> SimArgs Source #
Simulation arguments.
Slot length needs to be greater than 0 else we get a livelock on the IOSim.
Quota values matches mainnet, so a slot length of 1s and 1 / 20 chance that someone gets to make a block.
Diffusion Simulator Node Arguments
Contains all necessary randomly generated values needed to run a node in simulation.
Constructors
| NodeArgs | |
Fields
| |
data ServiceDomainName Source #
Constructors
| DomainName Domain | a well configured domain name |
| Misconfigured Domain | a domain name which is advertised but its' IPs are wrong. |
| NoDomainName |
Instances
| Arbitrary ServiceDomainName Source # | |
| Show ServiceDomainName Source # | |
Defined in Test.Cardano.Network.Diffusion.Testnet.Simulation Methods showsPrec :: Int -> ServiceDomainName -> ShowS # show :: ServiceDomainName -> String # showList :: [ServiceDomainName] -> ShowS # | |
data DiffusionScript Source #
Multinode Diffusion Simulator Script
SimArgs with all the values needed for running the simulation, followed
by a list of NodeArgs where each element represents one running node and
respective Commands.
Constructors
| DiffusionScript SimArgs DomainMapScript [(NodeArgs, [Command])] |
Instances
| Arbitrary DiffusionScript Source # | |
| Show DiffusionScript Source # | |
Defined in Test.Cardano.Network.Diffusion.Testnet.Simulation Methods showsPrec :: Int -> DiffusionScript -> ShowS # show :: DiffusionScript -> String # showList :: [DiffusionScript] -> ShowS # | |
data HotDiffusionScript Source #
Multinode Hot Diffusion Simulator Script
List of SimArgs. Each element of the list represents one running node.
Constructors
| HotDiffusionScript SimArgs DomainMapScript [(NodeArgs, [Command])] |
Instances
| Arbitrary HotDiffusionScript Source # | |
| Show HotDiffusionScript Source # | |
Defined in Test.Cardano.Network.Diffusion.Testnet.Simulation Methods showsPrec :: Int -> HotDiffusionScript -> ShowS # show :: HotDiffusionScript -> String # showList :: [HotDiffusionScript] -> ShowS # | |
data DiffusionSimulationTrace Source #
Diffusion Simulation Trace so we know what command is concurrently running
Constructors
| TrJoiningNetwork | |
| TrKillingNode | |
| TrReconfiguringNode | |
| TrUpdatingDNS | |
| TrRunning | |
| TrErrored SomeException | |
| TrTerminated | |
| TrSay String |
Instances
| Show DiffusionSimulationTrace Source # | |
Defined in Test.Cardano.Network.Diffusion.Testnet.Simulation Methods showsPrec :: Int -> DiffusionSimulationTrace -> ShowS # show :: DiffusionSimulationTrace -> String # showList :: [DiffusionSimulationTrace] -> ShowS # | |
fixupCommands :: [Command] -> [Command] Source #
diffusionSimulation :: BearerInfo -> DiffusionScript -> IOSim s Void Source #
Run an arbitrary topology in IOSim.
Constructors
| JoinNetwork DiffTime | |
| Kill DiffTime | |
| Reconfigure DiffTime [(HotValency, WarmValency, Map RelayAccessPoint (LocalRootConfig PeerTrustable))] | |
| Skip DiffTime |
Tracing
data DiffusionTestTrace Source #
Constructors
Instances
| Show DiffusionTestTrace Source # | |
Defined in Test.Cardano.Network.Diffusion.Testnet.Simulation Methods showsPrec :: Int -> DiffusionTestTrace -> ShowS # show :: DiffusionTestTrace -> String # showList :: [DiffusionTestTrace] -> ShowS # | |
Re-exports
newtype TestAddress addr #
Constructors
| TestAddress | |
Fields
| |
Instances
data RelayAccessPoint #
Constructors
| RelayAccessDomain !Domain !PortNumber | |
| RelayAccessSRVDomain !Domain | |
| RelayAccessAddress !IP !PortNumber |
Instances
| Arbitrary RelayAccessPoint | |
| FromJSON RelayAccessPoint | |
Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint Methods parseJSON :: Value -> Parser RelayAccessPoint # parseJSONList :: Value -> Parser [RelayAccessPoint] # | |
| ToJSON RelayAccessPoint | |
Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint Methods toJSON :: RelayAccessPoint -> Value # toEncoding :: RelayAccessPoint -> Encoding # toJSONList :: [RelayAccessPoint] -> Value # toEncodingList :: [RelayAccessPoint] -> Encoding # omitField :: RelayAccessPoint -> Bool # | |
| ToJSONKey RelayAccessPoint | |
Defined in Ouroboros.Network.OrphanInstances | |
| FromCBOR RelayAccessPoint | |
| ToCBOR RelayAccessPoint | |
Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint Methods toCBOR :: RelayAccessPoint -> Encoding # encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy RelayAccessPoint -> Size # encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [RelayAccessPoint] -> Size # | |
| NFData RelayAccessPoint | |
Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint Methods rnf :: RelayAccessPoint -> () # | |
| Show RelayAccessPoint | |
Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint Methods showsPrec :: Int -> RelayAccessPoint -> ShowS # show :: RelayAccessPoint -> String # showList :: [RelayAccessPoint] -> ShowS # | |
| Eq RelayAccessPoint | |
Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint Methods (==) :: RelayAccessPoint -> RelayAccessPoint -> Bool # (/=) :: RelayAccessPoint -> RelayAccessPoint -> Bool # | |
| Ord RelayAccessPoint | |
Defined in Ouroboros.Network.PeerSelection.RelayAccessPoint Methods compare :: RelayAccessPoint -> RelayAccessPoint -> Ordering # (<) :: RelayAccessPoint -> RelayAccessPoint -> Bool # (<=) :: RelayAccessPoint -> RelayAccessPoint -> Bool # (>) :: RelayAccessPoint -> RelayAccessPoint -> Bool # (>=) :: RelayAccessPoint -> RelayAccessPoint -> Bool # max :: RelayAccessPoint -> RelayAccessPoint -> RelayAccessPoint # min :: RelayAccessPoint -> RelayAccessPoint -> RelayAccessPoint # | |
Instances
| Functor Script | |
| Foldable Script | |
Defined in Test.Ouroboros.Network.Data.Script Methods fold :: Monoid m => Script m -> m # foldMap :: Monoid m => (a -> m) -> Script a -> m # foldMap' :: Monoid m => (a -> m) -> Script a -> m # foldr :: (a -> b -> b) -> b -> Script a -> b # foldr' :: (a -> b -> b) -> b -> Script a -> b # foldl :: (b -> a -> b) -> b -> Script a -> b # foldl' :: (b -> a -> b) -> b -> Script a -> b # foldr1 :: (a -> a -> a) -> Script a -> a # foldl1 :: (a -> a -> a) -> Script a -> a # elem :: Eq a => a -> Script a -> Bool # maximum :: Ord a => Script a -> a # minimum :: Ord a => Script a -> a # | |
| Traversable Script | |
| Arbitrary a => Arbitrary (Script a) | |
| NFData a => NFData (Script a) | |
Defined in Test.Ouroboros.Network.Data.Script | |
| Show a => Show (Script a) | |
| Eq a => Eq (Script a) | |
newtype DNSLookupDelay #
Constructors
| DNSLookupDelay | |
Fields | |
Instances
| Arbitrary DNSLookupDelay | |
| Show DNSLookupDelay | |
Defined in Test.Ouroboros.Network.PeerSelection.RootPeersDNS Methods showsPrec :: Int -> DNSLookupDelay -> ShowS # show :: DNSLookupDelay -> String # showList :: [DNSLookupDelay] -> ShowS # | |
newtype DNSTimeout #
Constructors
| DNSTimeout | |
Fields | |
Instances
| Arbitrary DNSTimeout | |
| Show DNSTimeout | |
Defined in Test.Ouroboros.Network.PeerSelection.RootPeersDNS Methods showsPrec :: Int -> DNSTimeout -> ShowS # show :: DNSTimeout -> String # showList :: [DNSTimeout] -> ShowS # | |
data DomainAccessPoint #
Constructors
| DomainAccessPoint !Domain PortNumber | |
| DomainSRVAccessPoint !Domain |
Instances
| Arbitrary DomainAccessPoint | |
| Show DomainAccessPoint | |
Defined in Test.Ouroboros.Network.PeerSelection.RootPeersDNS Methods showsPrec :: Int -> DomainAccessPoint -> ShowS # show :: DomainAccessPoint -> String # showList :: [DomainAccessPoint] -> ShowS # | |
| Eq DomainAccessPoint | |
Defined in Test.Ouroboros.Network.PeerSelection.RootPeersDNS Methods (==) :: DomainAccessPoint -> DomainAccessPoint -> Bool # (/=) :: DomainAccessPoint -> DomainAccessPoint -> Bool # | |
| Ord DomainAccessPoint | |
Defined in Test.Ouroboros.Network.PeerSelection.RootPeersDNS Methods compare :: DomainAccessPoint -> DomainAccessPoint -> Ordering # (<) :: DomainAccessPoint -> DomainAccessPoint -> Bool # (<=) :: DomainAccessPoint -> DomainAccessPoint -> Bool # (>) :: DomainAccessPoint -> DomainAccessPoint -> Bool # (>=) :: DomainAccessPoint -> DomainAccessPoint -> Bool # max :: DomainAccessPoint -> DomainAccessPoint -> DomainAccessPoint # min :: DomainAccessPoint -> DomainAccessPoint -> DomainAccessPoint # | |
type MockDNSMap = Map (Domain, TYPE) MockDNSLookupResult #