Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Hydra.Cluster.Scenarios
Contents
Synopsis
- data EndToEndLog
- = ClusterOptions { }
- | FromCardanoNode NodeLog
- | FromFaucet FaucetLog
- | FromHydraNode HydraNodeLog
- | FromMithril MithrilLog
- | StartingFunds { }
- | RefueledFunds {
- actor :: String
- refuelingAmount :: Coin
- utxo :: UTxO
- | RemainingFunds { }
- | PublishedHydraScriptsAt {
- hydraScriptsTxId :: [TxId]
- | UsingHydraScriptsAt {
- hydraScriptsTxId :: [TxId]
- | CreatedKey { }
- oneOfThreeNodesStopsForAWhile :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- restartedNodeCanObserveCommitTx :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- restartedNodeCanAbort :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- nodeReObservesOnChainTxs :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- singlePartyHeadFullLifeCycle :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- singlePartyOpenAHead :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> (HydraClient -> SigningKey PaymentKey -> HeadId -> IO a) -> IO a
- singlePartyCommitsFromExternal :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- singlePartyUsesScriptOnL2 :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- singlePartyUsesWithdrawZeroTrick :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- recomputeIntegrityHash :: (AlonzoEraPParams ppera, AlonzoEraTxWits txera, AlonzoEraTxBody txera, EraTx txera) => PParams ppera -> [Language] -> Tx txera -> Tx txera
- singlePartyCommitsScriptBlueprint :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- persistenceCanLoadWithEmptyCommit :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- singlePartyCommitsFromExternalTxBlueprint :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- canCloseWithLongContestationPeriod :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- canSubmitTransactionThroughAPI :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- threeNodesNoErrorsOnOpen :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- nodeCanSupportMultipleEtcdClusters :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- initWithWrongKeys :: ChainBackend backend => FilePath -> Tracer IO EndToEndLog -> backend -> [TxId] -> IO ()
- startWithWrongPeers :: ChainBackend backend => FilePath -> Tracer IO EndToEndLog -> backend -> [TxId] -> IO ()
- canCommit :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> NominalDiffTime -> backend -> [TxId] -> IO ()
- canRecoverDeposit :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- canSeePendingDeposits :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> NominalDiffTime -> backend -> [TxId] -> IO ()
- canDecommit :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- canSideLoadSnapshot :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- threeNodesWithMirrorParty :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO ()
- respendUTxO :: HydraClient -> SigningKey PaymentKey -> NominalDiffTime -> IO ()
- refuelIfNeeded :: ChainBackend backend => Tracer IO EndToEndLog -> backend -> Actor -> Coin -> IO ()
- returnFundsToFaucet :: ChainBackend backend => Tracer IO EndToEndLog -> backend -> Actor -> IO ()
- headIsInitializingWith :: Set Party -> Value -> Maybe HeadId
- checkFanout :: HeadId -> UTxO -> Value -> Maybe ()
- expectErrorStatus :: Int -> Maybe ByteString -> HttpException -> Bool
Documentation
data EndToEndLog Source #
Constructors
ClusterOptions | |
FromCardanoNode NodeLog | |
FromFaucet FaucetLog | |
FromHydraNode HydraNodeLog | |
FromMithril MithrilLog | |
StartingFunds | |
RefueledFunds | |
Fields
| |
RemainingFunds | |
PublishedHydraScriptsAt | |
Fields
| |
UsingHydraScriptsAt | |
Fields
| |
CreatedKey | |
Instances
oneOfThreeNodesStopsForAWhile :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
restartedNodeCanObserveCommitTx :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
restartedNodeCanAbort :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
nodeReObservesOnChainTxs :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
singlePartyHeadFullLifeCycle :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
Step through the full life cycle of a Hydra Head with only a single participant. This scenario is also used by the smoke test run via the `hydra-cluster` executable.
Arguments
:: ChainBackend backend | |
=> Tracer IO EndToEndLog | |
-> FilePath | |
-> backend | |
-> [TxId] | |
-> (HydraClient -> SigningKey PaymentKey -> HeadId -> IO a) | Continuation called when the head is open |
-> IO a |
Open a Hydra Head with only a single participant but some arbitrary UTxO committed.
singlePartyCommitsFromExternal :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
Single hydra-node where the commit is done using some wallet UTxO.
singlePartyUsesScriptOnL2 :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
singlePartyUsesWithdrawZeroTrick :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
Open a head and run a script using Rewarding
script purpose and a zero
lovelace withdrawal.
recomputeIntegrityHash :: (AlonzoEraPParams ppera, AlonzoEraTxWits txera, AlonzoEraTxBody txera, EraTx txera) => PParams ppera -> [Language] -> Tx txera -> Tx txera Source #
Compute the integrity hash of a transaction using a list of plutus languages.
singlePartyCommitsScriptBlueprint :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
persistenceCanLoadWithEmptyCommit :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
singlePartyCommitsFromExternalTxBlueprint :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
Single hydra-node where the commit is done from a raw transaction blueprint.
canCloseWithLongContestationPeriod :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
Initialize open and close a head on a real network and ensure contestation period longer than the time horizon is possible. For this it is enough that we can close a head and not wait for the deadline.
canSubmitTransactionThroughAPI :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
threeNodesNoErrorsOnOpen :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
Three hydra nodes open a head and we assert that none of them sees errors. This was particularly misleading when everyone tries to post the collect transaction concurrently.
nodeCanSupportMultipleEtcdClusters :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
Hydra nodes ABC run on ABC cluster and connect to each other. Hydra nodes BC shut down. Hydra nodes BC run on BC cluster and connect to each other. Hydra nodes BC shut down. Hydra nodes BC run and connect ABC cluster again.
initWithWrongKeys :: ChainBackend backend => FilePath -> Tracer IO EndToEndLog -> backend -> [TxId] -> IO () Source #
Two hydra node setup where Alice is wrongly configured to use Carol's
cardano keys instead of Bob's which will prevent him to be notified the
HeadIsInitializing
but he should still receive some notification.
startWithWrongPeers :: ChainBackend backend => FilePath -> Tracer IO EndToEndLog -> backend -> [TxId] -> IO () Source #
canCommit :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> NominalDiffTime -> backend -> [TxId] -> IO () Source #
Open a a two participant head and incrementally commit to it.
canRecoverDeposit :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
Open a a single participant head, deposit and then recover it.
canSeePendingDeposits :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> NominalDiffTime -> backend -> [TxId] -> IO () Source #
Make sure to be able to see pending deposits.
canDecommit :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
Open a a single participant head with some UTxO and incrementally decommit it.
canSideLoadSnapshot :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
Can side load snapshot and resume agreement after a peer comes back online with healthy configuration
threeNodesWithMirrorParty :: ChainBackend backend => Tracer IO EndToEndLog -> FilePath -> backend -> [TxId] -> IO () Source #
Three hydra nodes open a head and we assert that none of them sees errors if a party is duplicated.
L2 scenarios
respendUTxO :: HydraClient -> SigningKey PaymentKey -> NominalDiffTime -> IO () Source #
Finds UTxO owned by given key in the head and creates transactions respending it to the same address as fast as possible, forever. NOTE: This relies on zero-fee protocol parameters.
Utilities
refuelIfNeeded :: ChainBackend backend => Tracer IO EndToEndLog -> backend -> Actor -> Coin -> IO () Source #
Refuel given Actor
with given Lovelace
if current marked UTxO is below that amount.
returnFundsToFaucet :: ChainBackend backend => Tracer IO EndToEndLog -> backend -> Actor -> IO () Source #
Return the remaining funds to the faucet
headIsInitializingWith :: Set Party -> Value -> Maybe HeadId Source #
checkFanout :: HeadId -> UTxO -> Value -> Maybe () Source #
Arguments
:: Int | Expected http status code |
-> Maybe ByteString | Optional string expected to be present somewhere in the response body |
-> HttpException | Expected exception |
-> Bool |