diff --git a/cardano-testnet/cardano-testnet.cabal b/cardano-testnet/cardano-testnet.cabal index 748efcd6ea5..52baecc8852 100644 --- a/cardano-testnet/cardano-testnet.cabal +++ b/cardano-testnet/cardano-testnet.cabal @@ -209,6 +209,7 @@ test-suite cardano-testnet-test Cardano.Testnet.Test.Gov.TreasuryDonation Cardano.Testnet.Test.Gov.TreasuryGrowth Cardano.Testnet.Test.Gov.TreasuryWithdrawal + Cardano.Testnet.Test.CommandLineExecutable Cardano.Testnet.Test.Misc Cardano.Testnet.Test.Node.Shutdown Cardano.Testnet.Test.SanityCheck diff --git a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/CommandLineExecutable.hs b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/CommandLineExecutable.hs new file mode 100644 index 00000000000..bea1d50240f --- /dev/null +++ b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/CommandLineExecutable.hs @@ -0,0 +1,87 @@ +{-# LANGUAGE OverloadedStrings #-} + +module Cardano.Testnet.Test.CommandLineExecutable + ( hprop_cardano_testnet_executable + ) where + +import Control.Monad +import Control.Monad.IO.Class (liftIO) +import Data.Aeson (decodeFileStrict', encodeFile, (.=)) +import Data.Aeson.Types (Value (Object)) +import Data.Maybe (fromJust) +import Data.Time.Clock (addUTCTime, getCurrentTime) +import Data.Time.Clock.POSIX (utcTimeToPOSIXSeconds) +import Data.Time.Format (defaultTimeLocale, formatTime) +import System.Directory +import System.Exit (ExitCode (..)) +import System.FilePath +import System.IO (hClose, hGetContents) +import System.Process + +import Testnet.Property.Util (integrationWorkspace) + +import Hedgehog +import qualified Hedgehog as H +import qualified Hedgehog.Extras as H + +{- HLINT ignore "Use uncurry" -} + +-- | Function to update the @systemStart@ field of the Shelley genesis +-- and return the value set a seconds in Posix time. +updateShelleySystemStart :: Value -> IO (Value, Int) +updateShelleySystemStart (Object obj) = do + currentTime <- getCurrentTime + let futureTime = addUTCTime 15 currentTime + formattedTime = formatTime defaultTimeLocale "%Y-%m-%dT%H:%M:%SZ" futureTime + timestamp = round $ utcTimeToPOSIXSeconds futureTime + return (Object (obj <> ("systemStart" .= formattedTime)), timestamp) +updateShelleySystemStart _ = error "Expected a JSON object" + +-- Function to update the @startTime@ field of the Byron genesis +updateByronStartTime :: Int -> Value -> Value +updateByronStartTime newStartTime (Object obj) = + Object (obj <> ("startTime" .= newStartTime)) +updateByronStartTime _ _ = error "Expected a JSON object" + +-- | Test the `cardano-testnet` executable +-- Execute me with: +-- @cabal test cardano-testnet-test --test-options '-p "/cardano-testnet-executable/"'@ +hprop_cardano_testnet_executable :: Property +hprop_cardano_testnet_executable = integrationWorkspace "cardano-testnet-executable" $ \tempAbsBasePath -> H.runWithDefaultWatchdog_ $ do + -- Install configuration and genesis files + let referenceInputsFileDir = "test/cardano-testnet-test/files/input/executable" + allFiles = ["configuration.json", "alonzo-genesis.json", "byron-genesis.json", "conway-genesis.json", "shelley-genesis.json"] + liftIO $ forM_ allFiles $ \file -> copyFile (referenceInputsFileDir file) (tempAbsBasePath file) + + -- Amend the start time in the Genesis configuration file + let shelleyGenesisFilePath = tempAbsBasePath "shelley-genesis.json" + genesisValue <- liftIO $ fromJust <$> decodeFileStrict' shelleyGenesisFilePath + (updatedShelleyGenesisValue, startTime) <- liftIO $ updateShelleySystemStart genesisValue + liftIO $ encodeFile shelleyGenesisFilePath updatedShelleyGenesisValue + + -- Amend the start time in the Byron Genesis configuration file + let byronGenesisFilePath = tempAbsBasePath "byron-genesis.json" + byronGenesisValue <- liftIO $ fromJust <$> decodeFileStrict' byronGenesisFilePath + let updatedByronGenesisValue = updateByronStartTime startTime byronGenesisValue + liftIO $ encodeFile byronGenesisFilePath updatedByronGenesisValue + + -- Alright, all files are in place, let's start the node: + let cmd = ("cabal", [ "run", "cardano-testnet", "--", "cardano" + , "--node-config", tempAbsBasePath "configuration.json" + , "--testnet-magic", "44"]) + cmdString = unwords $ fst cmd : snd cmd + (_, Just hout, Just herr, ph) <- liftIO $ createProcess (uncurry proc cmd) { std_out = CreatePipe, std_err = CreatePipe } + exitCode <- liftIO $ waitForProcess ph + stdOut <- liftIO $ hGetContents hout + stdErr <- liftIO $ hGetContents herr + case exitCode of + ExitSuccess -> + H.note_ $ "Command succeeded: " <> cmdString + ExitFailure code -> do + H.note_ $ "Command failed with exit code " ++ show code ++ ": " <> cmdString + unless (null stdOut) $ H.note_ $ "stdout: " <> stdOut + unless (null stdErr) $ H.note_ $ "stderr: " <> stdErr + H.assert False + liftIO $ do + hClose hout + hClose herr diff --git a/cardano-testnet/test/cardano-testnet-test/cardano-testnet-test.hs b/cardano-testnet/test/cardano-testnet-test/cardano-testnet-test.hs index 0afabc4625c..a71082334e2 100644 --- a/cardano-testnet/test/cardano-testnet-test/cardano-testnet-test.hs +++ b/cardano-testnet/test/cardano-testnet-test/cardano-testnet-test.hs @@ -4,6 +4,7 @@ module Main ( main ) where + import qualified Cardano.Crypto.Init as Crypto import qualified Cardano.Testnet.Test.Cli.Conway.Plutus import qualified Cardano.Testnet.Test.Cli.KesPeriodInfo @@ -12,6 +13,7 @@ import qualified Cardano.Testnet.Test.Cli.QuerySlotNumber import qualified Cardano.Testnet.Test.Cli.StakeSnapshot import qualified Cardano.Testnet.Test.Cli.Transaction import qualified Cardano.Testnet.Test.Cli.Transaction.RegisterDeregisterStakeAddress +import qualified Cardano.Testnet.Test.CommandLineExecutable import qualified Cardano.Testnet.Test.FoldEpochState import qualified Cardano.Testnet.Test.Gov.CommitteeAddNew as Gov import qualified Cardano.Testnet.Test.Gov.DRepDeposit as Gov @@ -76,6 +78,7 @@ tests = do ] , T.testGroup "CLI" [ ignoreOnWindows "Shutdown" Cardano.Testnet.Test.Node.Shutdown.hprop_shutdown + , ignoreOnWindows "cardano-testnet-executable" Cardano.Testnet.Test.CommandLineExecutable.hprop_cardano_testnet_executable -- ShutdownOnSigint fails on Mac with -- "Log file: /private/tmp/tmp.JqcjW7sLKS/kes-period-info-2-test-30c2d0d8eb042a37/logs/test-spo.stdout.log had no logs indicating the relevant node has minted blocks." , ignoreOnMacAndWindows "Shutdown On Sigint" Cardano.Testnet.Test.Node.Shutdown.hprop_shutdownOnSigint diff --git a/cardano-testnet/test/cardano-testnet-test/files/input/executable/alonzo-genesis.json b/cardano-testnet/test/cardano-testnet-test/files/input/executable/alonzo-genesis.json new file mode 100644 index 00000000000..0a6d69f884c --- /dev/null +++ b/cardano-testnet/test/cardano-testnet-test/files/input/executable/alonzo-genesis.json @@ -0,0 +1,375 @@ +{ + "collateralPercentage": 150, + "costModels": { + "PlutusV1": [ + 205665, + 812, + 1, + 1, + 1000, + 571, + 0, + 1, + 1000, + 24177, + 4, + 1, + 1000, + 32, + 117366, + 10475, + 4, + 23000, + 100, + 23000, + 100, + 23000, + 100, + 23000, + 100, + 23000, + 100, + 23000, + 100, + 100, + 100, + 23000, + 100, + 19537, + 32, + 175354, + 32, + 46417, + 4, + 221973, + 511, + 0, + 1, + 89141, + 32, + 497525, + 14068, + 4, + 2, + 196500, + 453240, + 220, + 0, + 1, + 1, + 1000, + 28662, + 4, + 2, + 245000, + 216773, + 62, + 1, + 1060367, + 12586, + 1, + 208512, + 421, + 1, + 187000, + 1000, + 52998, + 1, + 80436, + 32, + 43249, + 32, + 1000, + 32, + 80556, + 1, + 57667, + 4, + 1000, + 10, + 197145, + 156, + 1, + 197145, + 156, + 1, + 204924, + 473, + 1, + 208896, + 511, + 1, + 52467, + 32, + 64832, + 32, + 65493, + 32, + 22558, + 32, + 16563, + 32, + 76511, + 32, + 196500, + 453240, + 220, + 0, + 1, + 1, + 69522, + 11687, + 0, + 1, + 60091, + 32, + 196500, + 453240, + 220, + 0, + 1, + 1, + 196500, + 453240, + 220, + 0, + 1, + 1, + 806990, + 30482, + 4, + 1927926, + 82523, + 4, + 265318, + 0, + 4, + 0, + 85931, + 32, + 205665, + 812, + 1, + 1, + 41182, + 32, + 212342, + 32, + 31220, + 32, + 32696, + 32, + 43357, + 32, + 32247, + 32, + 38314, + 32, + 57996947, + 18975, + 10 + ], + "PlutusV2": [ + 205665, + 812, + 1, + 1, + 1000, + 571, + 0, + 1, + 1000, + 24177, + 4, + 1, + 1000, + 32, + 117366, + 10475, + 4, + 23000, + 100, + 23000, + 100, + 23000, + 100, + 23000, + 100, + 23000, + 100, + 23000, + 100, + 100, + 100, + 23000, + 100, + 19537, + 32, + 175354, + 32, + 46417, + 4, + 221973, + 511, + 0, + 1, + 89141, + 32, + 497525, + 14068, + 4, + 2, + 196500, + 453240, + 220, + 0, + 1, + 1, + 1000, + 28662, + 4, + 2, + 245000, + 216773, + 62, + 1, + 1060367, + 12586, + 1, + 208512, + 421, + 1, + 187000, + 1000, + 52998, + 1, + 80436, + 32, + 43249, + 32, + 1000, + 32, + 80556, + 1, + 57667, + 4, + 1000, + 10, + 197145, + 156, + 1, + 197145, + 156, + 1, + 204924, + 473, + 1, + 208896, + 511, + 1, + 52467, + 32, + 64832, + 32, + 65493, + 32, + 22558, + 32, + 16563, + 32, + 76511, + 32, + 196500, + 453240, + 220, + 0, + 1, + 1, + 69522, + 11687, + 0, + 1, + 60091, + 32, + 196500, + 453240, + 220, + 0, + 1, + 1, + 196500, + 453240, + 220, + 0, + 1, + 1, + 1159724, + 392670, + 0, + 2, + 806990, + 30482, + 4, + 1927926, + 82523, + 4, + 265318, + 0, + 4, + 0, + 85931, + 32, + 205665, + 812, + 1, + 1, + 41182, + 32, + 212342, + 32, + 31220, + 32, + 32696, + 32, + 43357, + 32, + 32247, + 32, + 38314, + 32, + 35892428, + 10, + 9462713, + 1021, + 10, + 38887044, + 32947, + 10, + 1292075, + 24469, + 74, + 0, + 1, + 936157, + 49601, + 237, + 0, + 1 + ] + }, + "executionPrices": { + "priceMemory": 5.77e-2, + "priceSteps": 7.21e-5 + }, + "lovelacePerUTxOWord": 34482, + "maxBlockExUnits": { + "memory": 62000000, + "steps": 20000000000 + }, + "maxCollateralInputs": 3, + "maxTxExUnits": { + "memory": 140000000, + "steps": 10000000000 + }, + "maxValueSize": 5000 +} \ No newline at end of file diff --git a/cardano-testnet/test/cardano-testnet-test/files/input/executable/byron-genesis.json b/cardano-testnet/test/cardano-testnet-test/files/input/executable/byron-genesis.json new file mode 100644 index 00000000000..36d5ffd61f2 --- /dev/null +++ b/cardano-testnet/test/cardano-testnet-test/files/input/executable/byron-genesis.json @@ -0,0 +1,40 @@ +{ "bootStakeholders": + { "3afaeb278340336e1498f7a05f7ca380a6d60ed72c44f17f74cb480b": 1 } +, "heavyDelegation": + { "3afaeb278340336e1498f7a05f7ca380a6d60ed72c44f17f74cb480b": + { "omega": 0 + , "issuerPk": + "gqjIaaK8lsmt3+y0zFUSWmzcHOkErRi1Khkrajeg3/Hv+oGmW6SXV472bi2zayUnkmdHTeffk0ZSJrXwszmKSg==" + , "delegatePk": + "wqy011GjQ6qrZRYeAKKCuYoAAspauHUtQSduLM4yNjOww5DHD56FjheBaTKSclJ9HxexZqsJR9eV1wfpqLDDYw==" + , "cert": + "e234eea446a0a58192800f57a2c003dd58e5a769a70dffcb02127e2998cb373212fbf61610a08d1a679b4c0d6e648875c84d1ce02ca0bb876b6229aba14fe408" + } } +, "startTime": 1740148230 +, "nonAvvmBalances": + { "2657WMsDfac5ftG66tgTfqvwMaYQzUu1U1czfJUcSx3USRHYre8SRLpJ1dZLCNb7p": + "3000000000" } +, "blockVersionData": + { "scriptVersion": 0 + , "slotDuration": "1000" + , "maxBlockSize": "2000000" + , "maxHeaderSize": "2000000" + , "maxTxSize": "4096" + , "maxProposalSize": "700" + , "mpcThd": "20000000000000" + , "heavyDelThd": "300000000000" + , "updateVoteThd": "1000000000000" + , "updateProposalThd": "100000000000000" + , "updateImplicit": "10000" + , "softforkRule": + { "initThd": "900000000000000" + , "minThd": "600000000000000" + , "thdDecrement": "50000000000000" + } + , "txFeePolicy": + { "summand": "155381000000000" , "multiplier": "43946000000" } + , "unlockStakeEpoch": "18446744073709551615" + } +, "protocolConsts": { "k": 10 , "protocolMagic": 42 } +, "avvmDistr": {} +} \ No newline at end of file diff --git a/cardano-testnet/test/cardano-testnet-test/files/input/executable/configuration.json b/cardano-testnet/test/cardano-testnet-test/files/input/executable/configuration.json new file mode 100644 index 00000000000..a807d2998dd --- /dev/null +++ b/cardano-testnet/test/cardano-testnet-test/files/input/executable/configuration.json @@ -0,0 +1,117 @@ +{ + "AlonzoGenesisFile": "alonzo-genesis.json", + "AlonzoGenesisHash": "a4844d02149b2c12da7195fdcb82fefc13641d8e78fe5d964d054bf48dee0f1a", + "ByronGenesisFile": "byron-genesis.json", + "ByronGenesisHash": "e350fa3466cab4cea8e24868a313e6b3c6269f2246cb57b000845319391e8cab", + "ConwayGenesisFile": "conway-genesis.json", + "ConwayGenesisHash": "bdba11608d978266ae7b3d0ec2cc8e7f364fc031bda733bb96cbcf90a8c35d45", + "EnableP2P": false, + "ExperimentalHardForksEnabled": true, + "ExperimentalProtocolsEnabled": true, + "LastKnownBlockVersion-Alt": 0, + "LastKnownBlockVersion-Major": 3, + "LastKnownBlockVersion-Minor": 1, + "MinNodeVersion": "9.0.0", + "PeerSharing": false, + "Protocol": "Cardano", + "RequiresNetworkMagic": "RequiresMagic", + "ShelleyGenesisFile": "shelley-genesis.json", + "TargetNumberOfActivePeers": 20, + "TargetNumberOfEstablishedPeers": 50, + "TargetNumberOfKnownPeers": 100, + "TargetNumberOfRootPeers": 100, + "TestAllegraHardForkAtEpoch": 0, + "TestAlonzoHardForkAtEpoch": 0, + "TestBabbageHardForkAtEpoch": 0, + "TestConwayHardForkAtEpoch": 0, + "TestMaryHardForkAtEpoch": 0, + "TestShelleyHardForkAtEpoch": 0, + "TraceAcceptPolicy": false, + "TraceBlockFetchClient": false, + "TraceBlockFetchDecisions": false, + "TraceBlockFetchProtocol": false, + "TraceBlockFetchProtocolSerialised": false, + "TraceBlockFetchServer": false, + "TraceChainDb": true, + "TraceChainSyncBlockServer": false, + "TraceChainSyncClient": false, + "TraceChainSyncHeaderServer": false, + "TraceChainSyncProtocol": true, + "TraceConnectionManager": false, + "TraceDNSResolver": false, + "TraceDNSSubscription": false, + "TraceDiffusionInitialization": false, + "TraceErrorPolicy": false, + "TraceForge": true, + "TraceHandshake": false, + "TraceInboundGovernor": false, + "TraceIpSubscription": false, + "TraceLedgerPeers": false, + "TraceLocalChainSyncProtocol": false, + "TraceLocalConnectionManager": false, + "TraceLocalErrorPolicy": false, + "TraceLocalHandshake": false, + "TraceLocalRootPeers": false, + "TraceLocalTxSubmissionProtocol": false, + "TraceLocalTxSubmissionServer": false, + "TraceMempool": false, + "TraceMux": false, + "TracePeerSelection": false, + "TracePeerSelectionActions": false, + "TracePublicRootPeers": false, + "TraceServer": false, + "TraceTxInbound": false, + "TraceTxOutbound": false, + "TraceTxSubmissionProtocol": false, + "TraceOptions": {}, + "UseTraceDispatcher": false, + "TracingVerbosity": "MinimalVerbosity", + "TurnOnLogMetrics": false, + "TurnOnLogging": true, + "defaultBackends": [ + "KatipBK" + ], + "defaultScribes": [ + [ + "StdoutSK", + "stdout" + ] + ], + "hasEKG": 12788, + "hasPrometheus": [ + "127.0.0.1", + 12798 + ], + "minSeverity": "Info", + "options": { + "mapBackends": { + "cardano.node.metrics": [ + "EKGViewBK" + ], + "cardano.node.resources": [ + "EKGViewBK" + ] + }, + "mapSubtrace": { + "cardano.node.metrics": { + "subtrace": "Neutral" + } + } + }, + "rotation": { + "rpKeepFilesNum": 10, + "rpLogLimitBytes": 5000000, + "rpMaxAgeHours": 24 + }, + "setupBackends": [ + "KatipBK" + ], + "setupScribes": [ + { + "scFormat": "ScText", + "scKind": "StdoutSK", + "scName": "stdout", + "scRotation": null + } + ] +} diff --git a/cardano-testnet/test/cardano-testnet-test/files/input/executable/conway-genesis.json b/cardano-testnet/test/cardano-testnet-test/files/input/executable/conway-genesis.json new file mode 100644 index 00000000000..fa0b28c6bc4 --- /dev/null +++ b/cardano-testnet/test/cardano-testnet-test/files/input/executable/conway-genesis.json @@ -0,0 +1,368 @@ +{ + "committee": { + "members": {}, + "threshold": 0 + }, + "committeeMaxTermLength": 200, + "committeeMinSize": 0, + "constitution": { + "anchor": { + "dataHash": "0000000000000000000000000000000000000000000000000000000000000000", + "url": "" + } + }, + "dRepActivity": 100, + "dRepDeposit": 1000000, + "dRepVotingThresholds": { + "committeeNoConfidence": 0, + "committeeNormal": 0.5, + "hardForkInitiation": 0.5, + "motionNoConfidence": 0, + "ppEconomicGroup": 0.5, + "ppGovGroup": 0.5, + "ppNetworkGroup": 0.5, + "ppTechnicalGroup": 0.5, + "treasuryWithdrawal": 0.5, + "updateToConstitution": 0 + }, + "delegs": { + "keyHash-2127794ac4a30b6c837632a6d8d43f22796cf89104989af3564f57f5": { + "dRep": "drep-keyHash-f310fb58f889e1099a454fd6bb5e7eea31de697c3c6b46e795b49ed7", + "kind": "DelegVote" + }, + "keyHash-436b7803962edff45081e03dee40b9ab952765094613c22123ce5347": { + "dRep": "drep-keyHash-394efd091aa9950bced812e5c8a0686a15532af6d1f7ba0e8d7ee91d", + "kind": "DelegVote" + }, + "keyHash-f6fd9f762a2f663467f9da4fc80139b56a722617c6682d4b42303f4d": { + "dRep": "drep-keyHash-e5a158e9692105c2aff117efb8a6979bc818531a12e820e799b6f6ce", + "kind": "DelegVote" + } + }, + "govActionDeposit": 1000000, + "govActionLifetime": 1, + "initialDReps": { + "keyHash-394efd091aa9950bced812e5c8a0686a15532af6d1f7ba0e8d7ee91d": { + "delegators": [], + "deposit": 1000000, + "expiry": 1000 + }, + "keyHash-e5a158e9692105c2aff117efb8a6979bc818531a12e820e799b6f6ce": { + "delegators": [], + "deposit": 1000000, + "expiry": 1000 + }, + "keyHash-f310fb58f889e1099a454fd6bb5e7eea31de697c3c6b46e795b49ed7": { + "delegators": [], + "deposit": 1000000, + "expiry": 1000 + } + }, + "minFeeRefScriptCostPerByte": 0, + "plutusV3CostModel": [ + 100788, + 420, + 1, + 1, + 1000, + 173, + 0, + 1, + 1000, + 59957, + 4, + 1, + 11183, + 32, + 201305, + 8356, + 4, + 16000, + 100, + 16000, + 100, + 16000, + 100, + 16000, + 100, + 16000, + 100, + 16000, + 100, + 100, + 100, + 16000, + 100, + 94375, + 32, + 132994, + 32, + 61462, + 4, + 72010, + 178, + 0, + 1, + 22151, + 32, + 91189, + 769, + 4, + 2, + 85848, + 123203, + 7305, + -900, + 1716, + 549, + 57, + 85848, + 0, + 1, + 1, + 1000, + 42921, + 4, + 2, + 24548, + 29498, + 38, + 1, + 898148, + 27279, + 1, + 51775, + 558, + 1, + 39184, + 1000, + 60594, + 1, + 141895, + 32, + 83150, + 32, + 15299, + 32, + 76049, + 1, + 13169, + 4, + 22100, + 10, + 28999, + 74, + 1, + 28999, + 74, + 1, + 43285, + 552, + 1, + 44749, + 541, + 1, + 33852, + 32, + 68246, + 32, + 72362, + 32, + 7243, + 32, + 7391, + 32, + 11546, + 32, + 85848, + 123203, + 7305, + -900, + 1716, + 549, + 57, + 85848, + 0, + 1, + 90434, + 519, + 0, + 1, + 74433, + 32, + 85848, + 123203, + 7305, + -900, + 1716, + 549, + 57, + 85848, + 0, + 1, + 1, + 85848, + 123203, + 7305, + -900, + 1716, + 549, + 57, + 85848, + 0, + 1, + 955506, + 213312, + 0, + 2, + 270652, + 22588, + 4, + 1457325, + 64566, + 4, + 20467, + 1, + 4, + 0, + 141992, + 32, + 100788, + 420, + 1, + 1, + 81663, + 32, + 59498, + 32, + 20142, + 32, + 24588, + 32, + 20744, + 32, + 25933, + 32, + 24623, + 32, + 43053543, + 10, + 53384111, + 14333, + 10, + 43574283, + 26308, + 10, + 16000, + 100, + 16000, + 100, + 962335, + 18, + 2780678, + 6, + 442008, + 1, + 52538055, + 3756, + 18, + 267929, + 18, + 76433006, + 8868, + 18, + 52948122, + 18, + 1995836, + 36, + 3227919, + 12, + 901022, + 1, + 166917843, + 4307, + 36, + 284546, + 36, + 158221314, + 26549, + 36, + 74698472, + 36, + 333849714, + 1, + 254006273, + 72, + 2174038, + 72, + 2261318, + 64571, + 4, + 207616, + 8310, + 4, + 1293828, + 28716, + 63, + 0, + 1, + 1006041, + 43623, + 251, + 0, + 1, + 100181, + 726, + 719, + 0, + 1, + 100181, + 726, + 719, + 0, + 1, + 100181, + 726, + 719, + 0, + 1, + 107878, + 680, + 0, + 1, + 95336, + 1, + 281145, + 18848, + 0, + 1, + 180194, + 159, + 1, + 1, + 158519, + 8942, + 0, + 1, + 159378, + 8813, + 0, + 1, + 107490, + 3298, + 1, + 106057, + 655, + 1, + 1964219, + 24520, + 3 + ], + "poolVotingThresholds": { + "committeeNoConfidence": 0.5, + "committeeNormal": 0.5, + "hardForkInitiation": 0.5, + "motionNoConfidence": 0.5, + "ppSecurityGroup": 0.5 + } +} \ No newline at end of file diff --git a/cardano-testnet/test/cardano-testnet-test/files/input/executable/shelley-genesis.json b/cardano-testnet/test/cardano-testnet-test/files/input/executable/shelley-genesis.json new file mode 100644 index 00000000000..aa414d76fb9 --- /dev/null +++ b/cardano-testnet/test/cardano-testnet-test/files/input/executable/shelley-genesis.json @@ -0,0 +1,84 @@ +{ + "activeSlotsCoeff": 0.5, + "epochLength": 100, + "genDelegs": { + "592e7b339cf0756ea6a5c84503836c1c5c15009fd44f8535286bf0ca": { + "delegate": "869023eca7f1c3fe2e52d1fef61bff19b8abe90aa24f3abdc1c8e3cf", + "vrf": "c3546e905606765b476f0433d316c4696cb9bf63e7b96932afdd240e26d60c71" + }, + "daf3a036ad84c98f4ad55e922544f4897c6eb255e1d3075dfa5b0982": { + "delegate": "1b78ec420e924abedda2a737c1c9dc4e313ce838f7c7f9eb7c66c452", + "vrf": "0f86861a6c938b8f5a58efbbfa4f4c54c76397709136d5f8450cd132ad224507" + }, + "e729fdfc9de9c0f98cd2a656a2e11d5d5f7ad2de26aeed1a8b64a84f": { + "delegate": "b5cf3438e5ee9c16e2eb96b4356320fa66880382ebc8ae7a662b32e4", + "vrf": "04cb53a2247ee1782d3fc14ed0188df281477514529aa5944520c8c694975cca" + } + }, + "initialFunds": { + "0063a8251e2ca90a44eedbe0ad1eb799b8db2d8c314e5704bb8743128d436b7803962edff45081e03dee40b9ab952765094613c22123ce5347": 15000003000000, + "00b0384d9b69e7bc7be91d2e70baa243fb83b8bd31e5e0e2403a3cb7672127794ac4a30b6c837632a6d8d43f22796cf89104989af3564f57f5": 15000003000000, + "00b2644ae97a1026828efb4813c973baf4fc7c67dc97a0bcdf7114a314f6fd9f762a2f663467f9da4fc80139b56a722617c6682d4b42303f4d": 15000003000000, + "602cde3c10c8210d981480b5fae62dbaf1d8bb0709a5e288dfe71e6dc2": 15000003000000, + "604bc5498da758b950286b91d018501fa69873c064ce0d34508343993d": 15000003000000, + "60c514045292f816d43fc3f9f7ead288cccc1126252c3807dd61a3beae": 15000003000000 + }, + "maxKESEvolutions": 60, + "maxLovelaceSupply": 100000020000000, + "networkId": "Testnet", + "networkMagic": 42, + "protocolParams": { + "a0": 0, + "decentralisationParam": 1, + "eMax": 18, + "extraEntropy": { + "tag": "NeutralNonce" + }, + "keyDeposit": 400000, + "maxBlockBodySize": 65536, + "maxBlockHeaderSize": 1100, + "maxTxSize": 16384, + "minFeeA": 1, + "minFeeB": 0, + "minPoolCost": 0, + "minUTxOValue": 0, + "nOpt": 100, + "poolDeposit": 0, + "protocolVersion": { + "major": 10, + "minor": 0 + }, + "rho": 0.1, + "tau": 0.1 + }, + "securityParam": 5, + "slotLength": 0.1, + "slotsPerKESPeriod": 129600, + "staking": { + "pools": { + "91d4dac3e0eb4ba856bcd629157d33c3e970dbff6af42549ba1c44d1": { + "cost": 0, + "margin": 0, + "metadata": null, + "owners": [], + "pledge": 0, + "publicKey": "91d4dac3e0eb4ba856bcd629157d33c3e970dbff6af42549ba1c44d1", + "relays": [], + "rewardAccount": { + "credential": { + "keyHash": "4bd59b9768f78837f623277c4ef43c228f89b8191c89df93dbd24eb0" + }, + "network": "Testnet" + }, + "vrf": "e0791a625042711fbca3083521b94622c2847ca3c624815b77e2dfb2096471b8" + } + }, + "stake": { + "2127794ac4a30b6c837632a6d8d43f22796cf89104989af3564f57f5": "91d4dac3e0eb4ba856bcd629157d33c3e970dbff6af42549ba1c44d1", + "436b7803962edff45081e03dee40b9ab952765094613c22123ce5347": "91d4dac3e0eb4ba856bcd629157d33c3e970dbff6af42549ba1c44d1", + "f6fd9f762a2f663467f9da4fc80139b56a722617c6682d4b42303f4d": "91d4dac3e0eb4ba856bcd629157d33c3e970dbff6af42549ba1c44d1" + } + }, + "systemStart": "2025-02-19T16:58:12Z", + "updateQuorum": 2 +}