diff --git a/.gitignore b/.gitignore index abd1601ba0e..d9ae3f1aff7 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,5 @@ hie.yaml # Ignore files generated by tests tmp +/cardano-node/logs + diff --git a/cardano-cli/cardano-cli.cabal b/cardano-cli/cardano-cli.cabal index 76c9131f230..c0a6cb38cb8 100644 --- a/cardano-cli/cardano-cli.cabal +++ b/cardano-cli/cardano-cli.cabal @@ -1,3 +1,5 @@ +cabal-version: 2.4 + name: cardano-cli version: 1.18.0 description: The Cardano command-line interface. @@ -8,7 +10,6 @@ license-files: LICENSE NOTICE build-type: Simple -cabal-version: >= 1.10 extra-source-files: README.md Flag unexpected_thunks @@ -236,4 +237,4 @@ test-suite cardano-cli-test -Wcompat -threaded -rtsopts -with-rtsopts=-N -with-rtsopts=-T - build-tools: cardano-cli + build-tool-depends: cardano-cli:cardano-cli diff --git a/cardano-config/cardano-config.cabal b/cardano-config/cardano-config.cabal index 593dfbff2f4..c2f7f082554 100644 --- a/cardano-config/cardano-config.cabal +++ b/cardano-config/cardano-config.cabal @@ -1,3 +1,5 @@ +cabal-version: 2.4 + name: cardano-config version: 0.1.0.0 author: IOHK @@ -7,7 +9,6 @@ license-files: LICENSE NOTICE build-type: Simple -cabal-version: >= 1.10 extra-source-files: README.md flag systemd diff --git a/cardano-node/cardano-node.cabal b/cardano-node/cardano-node.cabal index ef793ebd243..18b8cc9e972 100644 --- a/cardano-node/cardano-node.cabal +++ b/cardano-node/cardano-node.cabal @@ -1,3 +1,5 @@ +cabal-version: 2.4 + name: cardano-node version: 1.18.0 description: The cardano full node @@ -8,7 +10,6 @@ license-files: LICENSE NOTICE build-type: Simple -cabal-version: >= 1.10 extra-source-files: ChangeLog.md Flag unexpected_thunks @@ -20,9 +21,7 @@ flag systemd default: True manual: False - library - if flag(unexpected_thunks) cpp-options: -DUNEXPECTED_THUNKS @@ -238,8 +237,7 @@ executable chairman , contra-tracer , cardano-prelude , io-sim-classes - , network-mux - , cardano-node-config + , network-mux , cardano-node-config , optparse-applicative , ouroboros-consensus , ouroboros-consensus-cardano @@ -264,29 +262,36 @@ test-suite cardano-node-test build-depends: base >= 4.12 && < 5 , aeson + , async , bytestring - , cardano-node , cardano-config , cardano-crypto-class , cardano-crypto-test , cardano-crypto-wrapper + , cardano-node , cardano-prelude , cardano-prelude-test , cardano-slotting , containers , cryptonite + , directory + , hedgehog + , hedgehog-corpus , iproute , ouroboros-consensus , ouroboros-consensus-shelley , ouroboros-network + , process , shelley-spec-ledger , shelley-spec-ledger-test + , temporary , time - , hedgehog - , hedgehog-corpus - other-modules: Test.Cardano.Node.Gen + other-modules: Test.Cardano.Node.Chairman + Test.Cardano.Node.Gen Test.Cardano.Node.Json + Test.Common.Base + Test.Common.Process default-language: Haskell2010 default-extensions: NoImplicitPrelude diff --git a/cardano-node/src/Cardano/Node/Types.hs b/cardano-node/src/Cardano/Node/Types.hs index f0416ba5b67..9c01dc5c9c5 100644 --- a/cardano-node/src/Cardano/Node/Types.hs +++ b/cardano-node/src/Cardano/Node/Types.hs @@ -45,7 +45,7 @@ import Data.IP (IP) import qualified Data.Text as Text import Data.Yaml (decodeFileThrow) import Network.Socket (PortNumber) -import System.FilePath (takeDirectory, ()) +import System.FilePath (takeDirectory) import System.Posix.Types (Fd) import Cardano.Api.Typed (EpochNo) @@ -545,7 +545,7 @@ parseNodeConfigurationFP :: ConfigYamlFilePath -> IO NodeConfiguration parseNodeConfigurationFP (ConfigYamlFilePath fp) = do nc <- decodeFileThrow fp -- Make all the files be relative to the location of the config file. - pure $ adjustFilePaths (takeDirectory fp ) nc + pure $ adjustFilePaths (\p -> takeDirectory fp <> "/" <> p) nc -- | A human readable name for the protocol -- diff --git a/cardano-node/test/Test/Cardano/Node/Chairman.hs b/cardano-node/test/Test/Cardano/Node/Chairman.hs new file mode 100644 index 00000000000..f5fc2406d1b --- /dev/null +++ b/cardano-node/test/Test/Cardano/Node/Chairman.hs @@ -0,0 +1,48 @@ +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE TemplateHaskell #-} + +module Test.Cardano.Node.Chairman + ( tests + ) where + +import Cardano.Prelude +import Hedgehog (Property, discover) + +import qualified Hedgehog as H +import qualified System.Directory as IO +import qualified Test.Common.Base as H +import qualified Test.Common.Process as H + +prop_spawnOneNode :: Property +prop_spawnOneNode = H.propertyOnce . H.workspace "temp/chairman" $ \tempDir -> do + let dbDir = tempDir <> "/db/node-2" + let socketDir = tempDir <> "/socket" + + H.createDirectoryIfMissing dbDir + H.createDirectoryIfMissing socketDir + + base <- H.getProjectBase + + dirContents <- liftIO $ IO.listDirectory base + + H.annotateShow $ dirContents + + (_mIn, _mOut, _mErr, hProcess) <- H.createProcess =<< H.procNode + [ "run" + , "--database-path", dbDir + , "--socket-path", socketDir <> "/node-2-socket" + , "--port", "3002" + , "--topology", base <> "/chairman/configuration/defaults/simpleview/topology-node-2.json" + , "--config", base <> "/chairman/configuration/defaults/simpleview/config-2.yaml" + , "--signing-key", base <> "/chairman/configuration/defaults/simpleview/genesis/delegate-keys.002.key" + , "--delegation-certificate", base <> "/chairman/configuration/defaults/simpleview/genesis/delegation-cert.002.json" + ] + + H.threadDelay 10000000 + + H.interruptProcessGroupOf hProcess + + void $ H.waitForProcess hProcess + +tests :: IO Bool +tests = H.checkParallel $$discover diff --git a/cardano-node/test/Test/Common/Base.hs b/cardano-node/test/Test/Common/Base.hs new file mode 100644 index 00000000000..965e4fea4ff --- /dev/null +++ b/cardano-node/test/Test/Common/Base.hs @@ -0,0 +1,79 @@ +module Test.Common.Base + ( propertyOnce + , failWithCustom + , threadDelay + , workspace + , moduleWorkspace + , createDirectoryIfMissing + ) where + +import Control.Monad.IO.Class (liftIO) +import Data.Bool +import Data.Either (Either (..)) +import Data.Function (($), (.)) +import Data.Functor +import Data.Int +import Data.Maybe (Maybe (..), fromMaybe, listToMaybe) +import Data.Monoid (Monoid (..)) +import Data.Semigroup (Semigroup (..)) +import Data.String (String) +import Data.Tuple +import GHC.Stack (CallStack, HasCallStack, callStack, getCallStack) +import Hedgehog (MonadTest) +import Hedgehog.Internal.Property (Diff, liftTest, mkTest) +import Hedgehog.Internal.Source (getCaller) +import System.IO (FilePath, IO) + +import qualified Control.Concurrent as IO +import qualified GHC.Stack as GHC +import qualified Hedgehog as H +import qualified Hedgehog.Internal.Property as H +import qualified System.Directory as IO +import qualified System.IO.Temp as IO + +cardanoCliPath :: FilePath +cardanoCliPath = "cardano-cli" + +propertyOnce :: H.PropertyT IO () -> H.Property +propertyOnce = H.withTests 1 . H.property + +threadDelay :: Int -> H.PropertyT IO () +threadDelay = liftIO . IO.threadDelay + +-- | Takes a 'CallStack' so the error can be rendered at the appropriate call site. +failWithCustom :: MonadTest m => CallStack -> Maybe Diff -> String -> m a +failWithCustom cs mdiff msg = liftTest $ mkTest (Left $ H.Failure (getCaller cs) msg mdiff, mempty) + +-- | Create a workspace directory which will exist for at least the duration of +-- the supplied block. +-- +-- The directory will have the supplied prefix but contain a generated random +-- suffix to prevent interference between tests +-- +-- The directory will be deleted if the block succeeds, but left behind if +-- the block fails. +workspace :: HasCallStack => FilePath -> (FilePath -> H.PropertyT IO ()) -> H.PropertyT IO () +workspace prefixPath f = GHC.withFrozenCallStack $ do + systemTemp <- liftIO $ IO.getCanonicalTemporaryDirectory + let systemPrefixPath = systemTemp <> "/" <> prefixPath + liftIO $ IO.createDirectoryIfMissing True systemPrefixPath + ws <- liftIO $ IO.createTempDirectory systemPrefixPath "test" + H.annotate $ "Workspace: " <> cardanoCliPath <> "/" <> ws + f ws + liftIO $ IO.removeDirectoryRecursive ws + +-- | Create a workspace directory which will exist for at least the duration of +-- the supplied block. +-- +-- The directory will have the prefix as "$prefixPath/$moduleName" but contain a generated random +-- suffix to prevent interference between tests +-- +-- The directory will be deleted if the block succeeds, but left behind if +-- the block fails. +moduleWorkspace :: HasCallStack => FilePath -> (FilePath -> H.PropertyT IO ()) -> H.PropertyT IO () +moduleWorkspace prefixPath f = GHC.withFrozenCallStack $ do + let srcModule = fromMaybe "UnknownModule" (fmap (GHC.srcLocModule . snd) (listToMaybe (getCallStack callStack))) + workspace (prefixPath <> "/" <> srcModule) f + +createDirectoryIfMissing :: HasCallStack => FilePath -> H.PropertyT IO () +createDirectoryIfMissing filePath = H.evalM . liftIO $ IO.createDirectoryIfMissing True filePath diff --git a/cardano-node/test/Test/Common/Process.hs b/cardano-node/test/Test/Common/Process.hs new file mode 100644 index 00000000000..757c997bf74 --- /dev/null +++ b/cardano-node/test/Test/Common/Process.hs @@ -0,0 +1,70 @@ +{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE TypeApplications #-} + +module Test.Common.Process + ( createProcess + , getProjectBase + , procNode + , interruptProcessGroupOf + , waitForProcess + ) where + +import Control.Concurrent.Async +import Control.Exception +import Control.Monad +import Control.Monad.IO.Class +import Data.Bool +import Data.Function +import Data.Maybe (Maybe (..)) +import Data.Semigroup ((<>)) +import Data.String (String) +import GHC.Stack (HasCallStack) +import System.Exit (ExitCode) +import System.IO (Handle, IO) +import System.Process (CmdSpec (..), CreateProcess (..), ProcessHandle) + +import qualified Data.List as L +import qualified GHC.Stack as GHC +import qualified Hedgehog as H +import qualified System.Environment as IO +import qualified System.Process as IO + +createProcess :: HasCallStack + => CreateProcess + -> H.PropertyT IO (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle) +createProcess cp = GHC.withFrozenCallStack $ do + case IO.cmdspec cp of + RawCommand cmd args -> H.annotate $ "Command line: " <> cmd <> " " <> L.intercalate " " args + ShellCommand cmd -> H.annotate $ "Command line: " <> cmd + H.evalM . liftIO $ IO.createProcess cp + +interruptProcessGroupOf :: HasCallStack + => ProcessHandle + -> H.PropertyT IO () +interruptProcessGroupOf hProcess = GHC.withFrozenCallStack $ do + H.evalM . liftIO $ IO.interruptProcessGroupOf hProcess + +waitForProcess :: HasCallStack + => ProcessHandle + -> H.PropertyT IO (Maybe ExitCode) +waitForProcess hProcess = GHC.withFrozenCallStack $ do + H.evalM . liftIO $ catch (fmap Just (IO.waitForProcess hProcess)) $ \(_ :: AsyncCancelled) -> return Nothing + +procNode + :: [String] + -- ^ Arguments to the CLI command + -> H.PropertyT IO CreateProcess + -- ^ Captured stdout +procNode arguments = do + maybeCardanoCli <- liftIO $ IO.lookupEnv "CARDANO_NODE" + cp <- case maybeCardanoCli of + Just cardanoCli -> return $ IO.proc cardanoCli arguments + Nothing -> return $ IO.proc "cabal" ("exec":"--":"cardano-node":arguments) + return $ cp { IO.create_group = True } + +getProjectBase :: H.PropertyT IO String +getProjectBase = do + maybeCardanoCli <- liftIO $ IO.lookupEnv "CARDANO_NODE_SRC" + case maybeCardanoCli of + Just path -> return path + Nothing -> return ".." diff --git a/cardano-node/test/cardano-node-test.hs b/cardano-node/test/cardano-node-test.hs index 69ea027db38..d8b7499979e 100644 --- a/cardano-node/test/cardano-node-test.hs +++ b/cardano-node/test/cardano-node-test.hs @@ -3,10 +3,12 @@ import Cardano.Prelude import Hedgehog.Main (defaultMain) +import qualified Test.Cardano.Node.Chairman import qualified Test.Cardano.Node.Json main :: IO () main = defaultMain - [ Test.Cardano.Node.Json.tests + [ Test.Cardano.Node.Chairman.tests + , Test.Cardano.Node.Json.tests ] diff --git a/chairman/configuration/defaults/simpleview/config-0.yaml b/chairman/configuration/defaults/simpleview/config-0.yaml new file mode 100644 index 00000000000..d1c9a67d5aa --- /dev/null +++ b/chairman/configuration/defaults/simpleview/config-0.yaml @@ -0,0 +1,212 @@ +# global filter; messages must have at least this severity to pass: +minSeverity: Debug + +# global file rotation settings: +rotation: + rpLogLimitBytes: 5000000 + rpKeepFilesNum: 10 + rpMaxAgeHours: 24 + +# these backends are initialized: +setupBackends: + - KatipBK +# Uncomment it to enable trace forwarder backend, if the node should +# forward metrics to an external process. +# - TraceForwarderBK + +# if not indicated otherwise, then messages are passed to these backends: +defaultBackends: + - KatipBK + +# if wanted, the EKG interface is listening on this port: +#hasEKG: 12781 + +#hasPrometheus: +# - "127.0.0.1" +# - 13788 + +# here we set up outputs of logging in 'katip': +setupScribes: + - scKind: FileSK + scName: "logs/node-0.log" + scFormat: ScText + - scKind: StdoutSK + scName: stdout + scFormat: ScText + scRotation: null + +# if not indicated otherwise, then log output is directed to this: +defaultScribes: + - - FileSK + - "logs/node-0.log" + - - StdoutSK + - stdout + +# more options which can be passed as key-value pairs: +options: + mapSubtrace: + '#ekgview': + contents: + - - tag: Contains + contents: 'cardano.epoch-validation.benchmark' + - - tag: Contains + contents: .monoclock.basic. + - - tag: Contains + contents: 'cardano.epoch-validation.benchmark' + - - tag: Contains + contents: diff.RTS.cpuNs.timed. + - - tag: StartsWith + contents: '#ekgview.#aggregation.cardano.epoch-validation.benchmark' + - - tag: Contains + contents: diff.RTS.gcNum.timed. + subtrace: FilterTrace + 'cardano.epoch-validation.utxo-stats': + # Change the `subtrace` value to `Neutral` in order to log + # `UTxO`-related messages during epoch validation. + subtrace: NoTrace + mapBackends: + cardano.node.ChainDB.metrics: + - EKGViewBK + - kind: UserDefinedBK + name: LiveViewBackend + cardano.node.metrics.Forge: + - EKGViewBK + cardano.node.metrics.Mempool: + - EKGViewBK + cardano.node.metrics: + - EKGViewBK + - kind: UserDefinedBK + name: LiveViewBackend +# Uncomment it to send 'cardano.node.metrics' to 'TraceForwarderBK' as well. +# - TraceForwarderBK + cardano.node.peers: + - EKGViewBK + cardano.node.BlockFetchDecision.peers: + - EKGViewBK + - kind: UserDefinedBK + name: LiveViewBackend +# Uncomment it to send node's release, version and commit to 'TraceForwarderBK'. +# cardano.node.release: +# - TraceForwarderBK +# cardano.node.version: +# - TraceForwarderBK +# cardano.node.commit: +# - TraceForwarderBK + +# Uncomment it to forward node's metrics to remote socket '127.0.0.1:2997'. +# traceForwardTo: +# tag: RemoteSocket +# contents: +# - "127.0.0.1" +# - "2997" + +########################################################## +############### Cardano Node Configuration ############### +########################################################## + + +NodeId: +Protocol: RealPBFT +GenesisFile: genesis/genesis.json +NumCoreNodes: 1 +RequiresNetworkMagic: RequiresMagic +PBftSignatureThreshold: +TurnOnLogging: True +ViewMode: SimpleView +TurnOnLogMetrics: True +SocketPath: + + + +##### Update Parameters ##### + +ApplicationName: cardano-sl +ApplicationVersion: 1 +LastKnownBlockVersion-Major: 0 +LastKnownBlockVersion-Minor: 2 +LastKnownBlockVersion-Alt: 0 + +##### Tracing ##### + +# MinimalVerbosity: Minimal level of the rendering of captured items +# MaximalVerbosity: Maximal level of the rendering of captured items +# NormalVerbosity: the default level of the rendering of captured items +TracingVerbosity: NormalVerbosity + +# Trace BlockFetch client. +TraceBlockFetchClient: True + +# Trace BlockFetch decisions made by the BlockFetch client. +TraceBlockFetchDecisions: True + +# Trace BlockFetch protocol messages. +TraceBlockFetchProtocol: True + +# Serialised Trace BlockFetch protocol messages. +TraceBlockFetchProtocolSerialised: False + +# Trace BlockFetch server. +TraceBlockFetchServer: True + +# Verbose tracer of ChainDB +TraceChainDb: False + +# Trace ChainSync client. +TraceChainSyncClient: False + +# Trace ChainSync server (blocks). +TraceChainSyncBlockServer: False + +# Trace ChainSync server (headers) +TraceChainSyncHeaderServer: False + +# Trace ChainSync protocol messages. +TraceChainSyncProtocol: True + +# Trace DNS Resolver messages. +TraceDNSResolver: False + +# Trace DNS Subscription messages. +TraceDNSSubscription: False + +# Trace error policy resolution. +TraceErrorPolicy: False + +# Trace local error policy resolution. +TraceLocalErrorPolicy: True + +# Trace block forging. +TraceForge: True + +# Trace Handshake protocol messages. +TraceHandshake: False + +# Trace IP Subscription messages. +TraceIpSubscription: False + +# Trace local ChainSync protocol messages. +TraceLocalChainSyncProtocol: True + +# Trace local Handshake protocol messages. +TraceLocalHandshake: False + +# Trace local TxSubmission protocol messages. +TraceLocalTxSubmissionProtocol: True + +# Trace local TxSubmission server. +TraceLocalTxSubmissionServer: True + +# Trace mempool. +TraceMempool: True + +# Trace Mux Events +TraceMux: False + +# Trace TxSubmission server (inbound transactions). +TraceTxInbound: True + +# Trace TxSubmission client (outbound transactions). +TraceTxOutbound: True + +# Trace TxSubmission protocol messages. +TraceTxSubmissionProtocol: True diff --git a/chairman/configuration/defaults/simpleview/config-1.yaml b/chairman/configuration/defaults/simpleview/config-1.yaml new file mode 100644 index 00000000000..20970025fa3 --- /dev/null +++ b/chairman/configuration/defaults/simpleview/config-1.yaml @@ -0,0 +1,211 @@ +# global filter; messages must have at least this severity to pass: +minSeverity: Debug + +# global file rotation settings: +rotation: + rpLogLimitBytes: 5000000 + rpKeepFilesNum: 10 + rpMaxAgeHours: 24 + +# these backends are initialized: +setupBackends: + - KatipBK +# Uncomment it to enable trace forwarder backend, if the node should +# forward metrics to an external process. +# - TraceForwarderBK + +# if not indicated otherwise, then messages are passed to these backends: +defaultBackends: + - KatipBK + +# if wanted, the EKG interface is listening on this port: +#hasEKG: 12782 + +#hasPrometheus: +# - "127.0.0.1" +# - 13789 + +# here we set up outputs of logging in 'katip': +setupScribes: + - scKind: FileSK + scName: "logs/node-1.log" + scFormat: ScText + - scKind: StdoutSK + scName: stdout + scFormat: ScText + scRotation: null + +# if not indicated otherwise, then log output is directed to this: +defaultScribes: + - - FileSK + - "logs/node-1.log" + - - StdoutSK + - stdout + +# more options which can be passed as key-value pairs: +options: + mapSubtrace: + '#ekgview': + contents: + - - tag: Contains + contents: 'cardano.epoch-validation.benchmark' + - - tag: Contains + contents: .monoclock.basic. + - - tag: Contains + contents: 'cardano.epoch-validation.benchmark' + - - tag: Contains + contents: diff.RTS.cpuNs.timed. + - - tag: StartsWith + contents: '#ekgview.#aggregation.cardano.epoch-validation.benchmark' + - - tag: Contains + contents: diff.RTS.gcNum.timed. + subtrace: FilterTrace + 'cardano.epoch-validation.utxo-stats': + # Change the `subtrace` value to `Neutral` in order to log + # `UTxO`-related messages during epoch validation. + subtrace: NoTrace + mapBackends: + cardano.node.ChainDB.metrics: + - EKGViewBK + - kind: UserDefinedBK + name: LiveViewBackend + cardano.node.metrics.Forge: + - EKGViewBK + cardano.node.metrics.Mempool: + - EKGViewBK + cardano.node.metrics: + - EKGViewBK + - kind: UserDefinedBK + name: LiveViewBackend +# Uncomment it to send 'cardano.node.metrics' to 'TraceForwarderBK' as well. +# - TraceForwarderBK + cardano.node.peers: + - EKGViewBK + cardano.node.BlockFetchDecision.peers: + - EKGViewBK + - kind: UserDefinedBK + name: LiveViewBackend +# Uncomment it to send node's release, version and commit to 'TraceForwarderBK'. +# cardano.node.release: +# - TraceForwarderBK +# cardano.node.version: +# - TraceForwarderBK +# cardano.node.commit: +# - TraceForwarderBK + +# Uncomment it to forward node's metrics to remote socket '127.0.0.1:2998'. +# traceForwardTo: +# tag: RemoteSocket +# contents: +# - "127.0.0.1" +# - "2998" + +########################################################## +############### Cardano Node Configuration ############### +########################################################## + +NodeId: +Protocol: RealPBFT +GenesisFile: genesis/genesis.json +NumCoreNodes: 1 +RequiresNetworkMagic: RequiresMagic +PBftSignatureThreshold: +TurnOnLogging: True +ViewMode: SimpleView +TurnOnLogMetrics: True +SocketPath: + + + +##### Update Parameters ##### + +ApplicationName: cardano-sl +ApplicationVersion: 1 +LastKnownBlockVersion-Major: 0 +LastKnownBlockVersion-Minor: 2 +LastKnownBlockVersion-Alt: 0 + +##### Tracing ##### + +# MinimalVerbosity: Minimal level of the rendering of captured items +# MaximalVerbosity: Maximal level of the rendering of captured items +# NormalVerbosity: the default level of the rendering of captured items +TracingVerbosity: NormalVerbosity + +# Trace BlockFetch client. +TraceBlockFetchClient: True + +# Trace BlockFetch decisions made by the BlockFetch client. +TraceBlockFetchDecisions: True + +# Trace BlockFetch protocol messages. +TraceBlockFetchProtocol: True + +# Serialised Trace BlockFetch protocol messages. +TraceBlockFetchProtocolSerialised: False + +# Trace BlockFetch server. +TraceBlockFetchServer: True + +# Verbose tracer of ChainDB +TraceChainDb: False + +# Trace ChainSync client. +TraceChainSyncClient: False + +# Trace ChainSync server (blocks). +TraceChainSyncBlockServer: False + +# Trace ChainSync server (headers) +TraceChainSyncHeaderServer: False + +# Trace ChainSync protocol messages. +TraceChainSyncProtocol: True + +# Trace DNS Resolver messages. +TraceDNSResolver: False + +# Trace DNS Subscription messages. +TraceDNSSubscription: False + +# Trace error policy resolution. +TraceErrorPolicy: False + +# Trace local error policy resolution. +TraceLocalErrorPolicy: True + +# Trace block forging. +TraceForge: True + +# Trace Handshake protocol messages. +TraceHandshake: False + +# Trace IP Subscription messages. +TraceIpSubscription: False + +# Trace local ChainSync protocol messages. +TraceLocalChainSyncProtocol: True + +# Trace local Handshake protocol messages. +TraceLocalHandshake: False + +# Trace local TxSubmission protocol messages. +TraceLocalTxSubmissionProtocol: True + +# Trace local TxSubmission server. +TraceLocalTxSubmissionServer: True + +# Trace mempool. +TraceMempool: True + +# Trace Mux Events +TraceMux: False + +# Trace TxSubmission server (inbound transactions). +TraceTxInbound: True + +# Trace TxSubmission client (outbound transactions). +TraceTxOutbound: True + +# Trace TxSubmission protocol messages. +TraceTxSubmissionProtocol: True diff --git a/chairman/configuration/defaults/simpleview/config-2.yaml b/chairman/configuration/defaults/simpleview/config-2.yaml new file mode 100644 index 00000000000..b596636bb5a --- /dev/null +++ b/chairman/configuration/defaults/simpleview/config-2.yaml @@ -0,0 +1,217 @@ +# global filter; messages must have at least this severity to pass: +minSeverity: Debug + +# global file rotation settings: +rotation: + rpLogLimitBytes: 5000000 + rpKeepFilesNum: 10 + rpMaxAgeHours: 24 + +# these backends are initialized: +setupBackends: + - KatipBK +# Uncomment it to enable trace forwarder backend, if the node should +# forward metrics to an external process. +# - TraceForwarderBK + +# if not indicated otherwise, then messages are passed to these backends: +defaultBackends: + - KatipBK + +# if wanted, the EKG interface is listening on this port: +#hasEKG: 12783 + +#hasPrometheus: +# - "127.0.0.1" +# - 13790 + +# here we set up outputs of logging in 'katip': +setupScribes: + - scKind: FileSK + scName: "logs/node-2.log" + scFormat: ScText + - scKind: StdoutSK + scName: stdout + scFormat: ScText + scRotation: null + +# if not indicated otherwise, then log output is directed to this: +defaultScribes: + - - FileSK + - "logs/node-2.log" + - - StdoutSK + - stdout + +# more options which can be passed as key-value pairs: +options: + mapSubtrace: + benchmark: + contents: + - GhcRtsStats + - MonotonicClock + subtrace: ObservableTrace + '#ekgview': + contents: + - - tag: Contains + contents: 'cardano.epoch-validation.benchmark' + - - tag: Contains + contents: .monoclock.basic. + - - tag: Contains + contents: 'cardano.epoch-validation.benchmark' + - - tag: Contains + contents: diff.RTS.cpuNs.timed. + - - tag: StartsWith + contents: '#ekgview.#aggregation.cardano.epoch-validation.benchmark' + - - tag: Contains + contents: diff.RTS.gcNum.timed. + subtrace: FilterTrace + 'cardano.epoch-validation.utxo-stats': + # Change the `subtrace` value to `Neutral` in order to log + # `UTxO`-related messages during epoch validation. + subtrace: NoTrace + mapBackends: + cardano.node.ChainDB.metrics: + - EKGViewBK + - kind: UserDefinedBK + name: LiveViewBackend + cardano.node.metrics.Forge: + - EKGViewBK + cardano.node.metrics.Mempool: + - EKGViewBK + cardano.node.metrics: + - EKGViewBK + - kind: UserDefinedBK + name: LiveViewBackend +# Uncomment it to send 'cardano.node.metrics' to 'TraceForwarderBK' as well. +# - TraceForwarderBK + cardano.node.peers: + - EKGViewBK + cardano.node.BlockFetchDecision.peers: + - EKGViewBK + - kind: UserDefinedBK + name: LiveViewBackend +# Uncomment it to send node's release, version and commit to 'TraceForwarderBK'. +# cardano.node.release: +# - TraceForwarderBK +# cardano.node.version: +# - TraceForwarderBK +# cardano.node.commit: +# - TraceForwarderBK + +# Uncomment it to forward node's metrics to remote socket '127.0.0.1:2999'. +# traceForwardTo: +# tag: RemoteSocket +# contents: +# - "127.0.0.1" +# - "2999" + +########################################################## +############### Cardano Node Configuration ############### +########################################################## + + +NodeId: +Protocol: RealPBFT +GenesisFile: genesis/genesis.json +NumCoreNodes: 1 +RequiresNetworkMagic: RequiresMagic +PBftSignatureThreshold: +TurnOnLogging: True +ViewMode: SimpleView +TurnOnLogMetrics: True +SocketPath: + + + +##### Update Parameters ##### + +ApplicationName: cardano-sl +ApplicationVersion: 1 +LastKnownBlockVersion-Major: 0 +LastKnownBlockVersion-Minor: 2 +LastKnownBlockVersion-Alt: 0 + +##### Tracing ##### + +# MinimalVerbosity: Minimal level of the rendering of captured items +# MaximalVerbosity: Maximal level of the rendering of captured items +# NormalVerbosity: the default level of the rendering of captured items +TracingVerbosity: NormalVerbosity + +# Trace BlockFetch client. +TraceBlockFetchClient: True + +# Trace BlockFetch decisions made by the BlockFetch client. +TraceBlockFetchDecisions: True + +# Trace BlockFetch protocol messages. +TraceBlockFetchProtocol: True + +# Serialised Trace BlockFetch protocol messages. +TraceBlockFetchProtocolSerialised: False + +# Trace BlockFetch server. +TraceBlockFetchServer: True + +# Verbose tracer of ChainDB +TraceChainDb: False + +# Trace ChainSync client. +TraceChainSyncClient: False + +# Trace ChainSync server (blocks). +TraceChainSyncBlockServer: False + +# Trace ChainSync server (headers) +TraceChainSyncHeaderServer: False + +# Trace ChainSync protocol messages. +TraceChainSyncProtocol: True + +# Trace DNS Resolver messages. +TraceDNSResolver: False + +# Trace DNS Subscription messages. +TraceDNSSubscription: False + +# Trace error policy resolution. +TraceErrorPolicy: False + +# Trace local error policy resolution. +TraceLocalErrorPolicy: True + +# Trace block forging. +TraceForge: True + +# Trace Handshake protocol messages. +TraceHandshake: False + +# Trace IP Subscription messages. +TraceIpSubscription: False + +# Trace local ChainSync protocol messages. +TraceLocalChainSyncProtocol: True + +# Trace local Handshake protocol messages. +TraceLocalHandshake: False + +# Trace local TxSubmission protocol messages. +TraceLocalTxSubmissionProtocol: True + +# Trace local TxSubmission server. +TraceLocalTxSubmissionServer: True + +# Trace mempool. +TraceMempool: True + +# Trace Mux Events +TraceMux: False + +# Trace TxSubmission server (inbound transactions). +TraceTxInbound: True + +# Trace TxSubmission client (outbound transactions). +TraceTxOutbound: True + +# Trace TxSubmission protocol messages. +TraceTxSubmissionProtocol: True diff --git a/chairman/configuration/defaults/simpleview/genesis/GENHASH b/chairman/configuration/defaults/simpleview/genesis/GENHASH new file mode 100644 index 00000000000..8594e7ddb14 --- /dev/null +++ b/chairman/configuration/defaults/simpleview/genesis/GENHASH @@ -0,0 +1 @@ +856010d59ea566c7256f7880b5c486819911adb3a37e93ce4443a4bdc2569772 diff --git a/chairman/configuration/defaults/simpleview/genesis/delegate-keys.000.key b/chairman/configuration/defaults/simpleview/genesis/delegate-keys.000.key new file mode 100644 index 00000000000..0bb35e6879c --- /dev/null +++ b/chairman/configuration/defaults/simpleview/genesis/delegate-keys.000.key @@ -0,0 +1,2 @@ +XyRk0x=1Bhĥ4'Y\ H<,HQ^O%R+K{0Ltw+h H` |!Y\772 -ڥ +cB2 \ No newline at end of file diff --git a/chairman/configuration/defaults/simpleview/genesis/delegate-keys.001.key b/chairman/configuration/defaults/simpleview/genesis/delegate-keys.001.key new file mode 100644 index 00000000000..a7bf8135e43 --- /dev/null +++ b/chairman/configuration/defaults/simpleview/genesis/delegate-keys.001.key @@ -0,0 +1 @@ +XH FҎ%| P;_mzR5f5Xۜbc{v&Ggf%[-rZWng??@JUs2)ֹʔ7~ AxOs~RFBc \ No newline at end of file diff --git a/chairman/configuration/defaults/simpleview/genesis/delegate-keys.002.key b/chairman/configuration/defaults/simpleview/genesis/delegate-keys.002.key new file mode 100644 index 00000000000..3ba042226fb Binary files /dev/null and b/chairman/configuration/defaults/simpleview/genesis/delegate-keys.002.key differ diff --git a/chairman/configuration/defaults/simpleview/genesis/delegate-keys.003.key b/chairman/configuration/defaults/simpleview/genesis/delegate-keys.003.key new file mode 100644 index 00000000000..0a069aec756 Binary files /dev/null and b/chairman/configuration/defaults/simpleview/genesis/delegate-keys.003.key differ diff --git a/chairman/configuration/defaults/simpleview/genesis/delegate-keys.004.key b/chairman/configuration/defaults/simpleview/genesis/delegate-keys.004.key new file mode 100644 index 00000000000..ab9725796a1 Binary files /dev/null and b/chairman/configuration/defaults/simpleview/genesis/delegate-keys.004.key differ diff --git a/chairman/configuration/defaults/simpleview/genesis/delegate-keys.005.key b/chairman/configuration/defaults/simpleview/genesis/delegate-keys.005.key new file mode 100644 index 00000000000..226c7a98f56 --- /dev/null +++ b/chairman/configuration/defaults/simpleview/genesis/delegate-keys.005.key @@ -0,0 +1 @@ +XC%YGcb~Ln<.JxHQV钮CӶQ&j%" 7F7ҥa6[/=cK41(i@Wfw \ No newline at end of file diff --git a/chairman/configuration/defaults/simpleview/genesis/delegate-keys.006.key b/chairman/configuration/defaults/simpleview/genesis/delegate-keys.006.key new file mode 100644 index 00000000000..4b444788d9a --- /dev/null +++ b/chairman/configuration/defaults/simpleview/genesis/delegate-keys.006.key @@ -0,0 +1,2 @@ +X1T]'A*<|+ovpssHؑϨ- rG8kC?X{X +ec*'ccG 3 >՗1-e_7ˬsoBx}ug̍ՍG8 \ No newline at end of file diff --git a/chairman/configuration/defaults/simpleview/genesis/delegation-cert.000.json b/chairman/configuration/defaults/simpleview/genesis/delegation-cert.000.json new file mode 100644 index 00000000000..3ba49b7c0d8 --- /dev/null +++ b/chairman/configuration/defaults/simpleview/genesis/delegation-cert.000.json @@ -0,0 +1,8 @@ +{ "omega": 0 +, "issuerPk": + "hGw/3PBeWCo8xOR0vkSFp0nZnfok6O99yrr0ocf1lDR8dpcLXw71TyBr1hJyr+FleBRw/ZMRChIvAXu2S52nfQ==" +, "delegatePk": + "KxNLD3u5rZswkEyMdNp3K+3B4B/x4f5oCUhgIKXFfKKAhSFZXDc3MsGkCMXnDS3apZGKCqfB0mPiE4QF00LSMg==" +, "cert": + "8ef6ca08daff77ff8efa6cf1e936689e556ed02111f0d7ee603208ff00f04ad3cbe36e49c68bf0d63bc227ae2af36dee33b8858c29c187dfc974451d981aa80c" +} \ No newline at end of file diff --git a/chairman/configuration/defaults/simpleview/genesis/delegation-cert.001.json b/chairman/configuration/defaults/simpleview/genesis/delegation-cert.001.json new file mode 100644 index 00000000000..53a66a1ded6 --- /dev/null +++ b/chairman/configuration/defaults/simpleview/genesis/delegation-cert.001.json @@ -0,0 +1,8 @@ +{ "omega": 0 +, "issuerPk": + "xHn8lPPicH+J5axETMIiyJ36NPSImozXNGun1Zw5Sa/T2QOYzORLkSA0adB5kxrCzocVDM+lY3TQaHoriDQ4Ag==" +, "delegatePk": + "u3Jan1fbFPeE0m5nAoc/P/GHQK3LSlXKxnMyKeLCHta5F8qUN89+zwn1E0EUvLZ46E/Wc8d/wn6n21L730ZCYw==" +, "cert": + "88cac9b8c269fb747618cc0a71a74584c78bbbc3c3d5bcd23145ffc32fd2cce78faee403f012cd966cae463abc83dc9176cd8ae5055681dbd0c0c1319bbf5305" +} \ No newline at end of file diff --git a/chairman/configuration/defaults/simpleview/genesis/delegation-cert.002.json b/chairman/configuration/defaults/simpleview/genesis/delegation-cert.002.json new file mode 100644 index 00000000000..5ef80ae6382 --- /dev/null +++ b/chairman/configuration/defaults/simpleview/genesis/delegation-cert.002.json @@ -0,0 +1,8 @@ +{ "omega": 0 +, "issuerPk": + "4F/TATv6d8o+TGWKmsS2K4MMDBGGtQjxJ24+m2g4Kj0ShULbDGIpDfKsUDpcxiGtEsFhxpDQb4aR+aGW2AhK6A==" +, "delegatePk": + "0Ydqn4NA0O4b18d+BwJrQXQIcVoPVqpNc5F/vtJ1OZuNYloWS+EkjCsSUN/6lARlKF7H8Lz/RG4i+MHpqkKwrA==" +, "cert": + "d9798f097dda93b984ad9bdb155926fcc9124ffc0566f8ac032bf512c250b5e1579afe601d0d318b435a24a594678123a9554e370b7741230478b8acb7f5c302" +} \ No newline at end of file diff --git a/chairman/configuration/defaults/simpleview/genesis/delegation-cert.003.json b/chairman/configuration/defaults/simpleview/genesis/delegation-cert.003.json new file mode 100644 index 00000000000..25685939525 --- /dev/null +++ b/chairman/configuration/defaults/simpleview/genesis/delegation-cert.003.json @@ -0,0 +1,8 @@ +{ "omega": 0 +, "issuerPk": + "MclYJ6YEOJMaKJDVqDzlm544UJUlX4UR4D9HlYTG4RZgd4h4d+sqRHCNmFzSgI93dWX6kUD8C4evf3cNHUFu5w==" +, "delegatePk": + "AZEVuFb7oYTftRFF3Ef/cqUJtN+BEUMEFQ1h70F8AfH71r5MoZKnn6ELzvEKgvQN2Xigd5ELUVP/5TF6irEfjw==" +, "cert": + "67a24363eb6abccd565d7099fc113d904b5c16264f136dc1433305ecce8bf1f4ddf0fd23288fd9f41b1c9a216c75587762e26d338b3af0a9d2622e0af8916703" +} \ No newline at end of file diff --git a/chairman/configuration/defaults/simpleview/genesis/delegation-cert.004.json b/chairman/configuration/defaults/simpleview/genesis/delegation-cert.004.json new file mode 100644 index 00000000000..a025971e234 --- /dev/null +++ b/chairman/configuration/defaults/simpleview/genesis/delegation-cert.004.json @@ -0,0 +1,8 @@ +{ "omega": 0 +, "issuerPk": + "S3eW/w9gERvp/xRVSebecBfpKKozkU2JCHzvGiH8Ye+DD+/EZFSF2p+/mKNYmKGe/dgRk3Lu+jk+XpDdDpEIOQ==" +, "delegatePk": + "29yc8tV3UEBN398/07MBjcEU42dkw5PxM4AEeY04X3xmNvLKApGPzHMcVaXgp3GPfkeDVq3f3vIjrfYDolI2sQ==" +, "cert": + "4f884a4e4399af72fac7e27c03707721bc859eb4d63b146bd2f8974e8e594e55302f9b6564126f1e957e6adbadeab91b0ebf748d7eefd8da28544f84f8fa4e0f" +} \ No newline at end of file diff --git a/chairman/configuration/defaults/simpleview/genesis/delegation-cert.005.json b/chairman/configuration/defaults/simpleview/genesis/delegation-cert.005.json new file mode 100644 index 00000000000..bcc28a95dff --- /dev/null +++ b/chairman/configuration/defaults/simpleview/genesis/delegation-cert.005.json @@ -0,0 +1,8 @@ +{ "omega": 0 +, "issuerPk": + "xXhqPYDpqKrpYhqDwCgV70vTSTf02pIiUQJjsp9ntBBThn0pjZjpI4axxYWzlZm4TaR+XNSmb1yJQG4kp7Cj0w==" +, "delegatePk": + "0tO2glH/JmolviIgN4KMRjfSpZwQYdz14PsXNsxbiJkvPWNLNB0xKGnbyQiCQKAPV6bD0/Jm+cEVd4btEvnTyg==" +, "cert": + "a2c69271bf6586d671e49718a8276ae364612135336830d4228b35d6f2b49e24f20bb61c6938292160439aac486ed8181b0a31ff7b4c0ec34fd059546dcc2003" +} \ No newline at end of file diff --git a/chairman/configuration/defaults/simpleview/genesis/delegation-cert.006.json b/chairman/configuration/defaults/simpleview/genesis/delegation-cert.006.json new file mode 100644 index 00000000000..6453eba2a3a --- /dev/null +++ b/chairman/configuration/defaults/simpleview/genesis/delegation-cert.006.json @@ -0,0 +1,8 @@ +{ "omega": 0 +, "issuerPk": + "hYGtWn9Lq+DbsntYPrkqOMTnAk4mAPiGO2/MmDaWxwfBM+w3yNwlChzaKwbvxFVWqujLJhkuql8b01Kdltny/Q==" +, "delegatePk": + "wxWgjh8KimVjKicHrxT+Y9ljRw2HMwzLPpDiCNWX+YYxLWVflx43y6xzixNvH0Kg23j/fQ51Z8yN1Y3kR504zQ==" +, "cert": + "ce6b7d652d4f88430a0bf63f1b7fc0184b2092ff9252d107d0bd6fda964b783133be79dc46b945293117be6685cd58dd9651159e3a09b6e836ddbb4a521fb40f" +} \ No newline at end of file diff --git a/chairman/configuration/defaults/simpleview/genesis/genesis.json b/chairman/configuration/defaults/simpleview/genesis/genesis.json new file mode 100644 index 00000000000..d03497afd75 --- /dev/null +++ b/chairman/configuration/defaults/simpleview/genesis/genesis.json @@ -0,0 +1,500 @@ +{ "bootStakeholders": + { "3a1354395e0f933b82f62129d35056bdcec0a8e43373438f5bdbe8cb": 1 + , "40003ce3af5a4235ddcfd0fe96f883ff259b81e0dbd26400fdd68310": 1 + , "42810a241d6c182db2d580b1391b6d10e4f17eff5b8b079e861e8b81": 1 + , "5524fc88232b4bc24c6c17adcff9b32e0b25d9b1bb5ee5a96021fd9e": 1 + , "6073707ad3fd1070850589c8d4e0a7c3a3b3bdaecffd1b2f3187dd68": 1 + , "a5d060da77b2def8cb35d0aff4605bb6522f31f420b01866f5f89c2b": 1 + , "df26c65618c928cb94119a40260f0e769fe375f12ad9c63c2c04a9ff": 1 + } +, "heavyDelegation": + { "3a1354395e0f933b82f62129d35056bdcec0a8e43373438f5bdbe8cb": + { "omega": 0 + , "issuerPk": + "S3eW/w9gERvp/xRVSebecBfpKKozkU2JCHzvGiH8Ye+DD+/EZFSF2p+/mKNYmKGe/dgRk3Lu+jk+XpDdDpEIOQ==" + , "delegatePk": + "29yc8tV3UEBN398/07MBjcEU42dkw5PxM4AEeY04X3xmNvLKApGPzHMcVaXgp3GPfkeDVq3f3vIjrfYDolI2sQ==" + , "cert": + "4f884a4e4399af72fac7e27c03707721bc859eb4d63b146bd2f8974e8e594e55302f9b6564126f1e957e6adbadeab91b0ebf748d7eefd8da28544f84f8fa4e0f" + } + , "40003ce3af5a4235ddcfd0fe96f883ff259b81e0dbd26400fdd68310": + { "omega": 0 + , "issuerPk": + "xHn8lPPicH+J5axETMIiyJ36NPSImozXNGun1Zw5Sa/T2QOYzORLkSA0adB5kxrCzocVDM+lY3TQaHoriDQ4Ag==" + , "delegatePk": + "u3Jan1fbFPeE0m5nAoc/P/GHQK3LSlXKxnMyKeLCHta5F8qUN89+zwn1E0EUvLZ46E/Wc8d/wn6n21L730ZCYw==" + , "cert": + "88cac9b8c269fb747618cc0a71a74584c78bbbc3c3d5bcd23145ffc32fd2cce78faee403f012cd966cae463abc83dc9176cd8ae5055681dbd0c0c1319bbf5305" + } + , "42810a241d6c182db2d580b1391b6d10e4f17eff5b8b079e861e8b81": + { "omega": 0 + , "issuerPk": + "MclYJ6YEOJMaKJDVqDzlm544UJUlX4UR4D9HlYTG4RZgd4h4d+sqRHCNmFzSgI93dWX6kUD8C4evf3cNHUFu5w==" + , "delegatePk": + "AZEVuFb7oYTftRFF3Ef/cqUJtN+BEUMEFQ1h70F8AfH71r5MoZKnn6ELzvEKgvQN2Xigd5ELUVP/5TF6irEfjw==" + , "cert": + "67a24363eb6abccd565d7099fc113d904b5c16264f136dc1433305ecce8bf1f4ddf0fd23288fd9f41b1c9a216c75587762e26d338b3af0a9d2622e0af8916703" + } + , "5524fc88232b4bc24c6c17adcff9b32e0b25d9b1bb5ee5a96021fd9e": + { "omega": 0 + , "issuerPk": + "hYGtWn9Lq+DbsntYPrkqOMTnAk4mAPiGO2/MmDaWxwfBM+w3yNwlChzaKwbvxFVWqujLJhkuql8b01Kdltny/Q==" + , "delegatePk": + "wxWgjh8KimVjKicHrxT+Y9ljRw2HMwzLPpDiCNWX+YYxLWVflx43y6xzixNvH0Kg23j/fQ51Z8yN1Y3kR504zQ==" + , "cert": + "ce6b7d652d4f88430a0bf63f1b7fc0184b2092ff9252d107d0bd6fda964b783133be79dc46b945293117be6685cd58dd9651159e3a09b6e836ddbb4a521fb40f" + } + , "6073707ad3fd1070850589c8d4e0a7c3a3b3bdaecffd1b2f3187dd68": + { "omega": 0 + , "issuerPk": + "xXhqPYDpqKrpYhqDwCgV70vTSTf02pIiUQJjsp9ntBBThn0pjZjpI4axxYWzlZm4TaR+XNSmb1yJQG4kp7Cj0w==" + , "delegatePk": + "0tO2glH/JmolviIgN4KMRjfSpZwQYdz14PsXNsxbiJkvPWNLNB0xKGnbyQiCQKAPV6bD0/Jm+cEVd4btEvnTyg==" + , "cert": + "a2c69271bf6586d671e49718a8276ae364612135336830d4228b35d6f2b49e24f20bb61c6938292160439aac486ed8181b0a31ff7b4c0ec34fd059546dcc2003" + } + , "a5d060da77b2def8cb35d0aff4605bb6522f31f420b01866f5f89c2b": + { "omega": 0 + , "issuerPk": + "hGw/3PBeWCo8xOR0vkSFp0nZnfok6O99yrr0ocf1lDR8dpcLXw71TyBr1hJyr+FleBRw/ZMRChIvAXu2S52nfQ==" + , "delegatePk": + "KxNLD3u5rZswkEyMdNp3K+3B4B/x4f5oCUhgIKXFfKKAhSFZXDc3MsGkCMXnDS3apZGKCqfB0mPiE4QF00LSMg==" + , "cert": + "8ef6ca08daff77ff8efa6cf1e936689e556ed02111f0d7ee603208ff00f04ad3cbe36e49c68bf0d63bc227ae2af36dee33b8858c29c187dfc974451d981aa80c" + } + , "df26c65618c928cb94119a40260f0e769fe375f12ad9c63c2c04a9ff": + { "omega": 0 + , "issuerPk": + "4F/TATv6d8o+TGWKmsS2K4MMDBGGtQjxJ24+m2g4Kj0ShULbDGIpDfKsUDpcxiGtEsFhxpDQb4aR+aGW2AhK6A==" + , "delegatePk": + "0Ydqn4NA0O4b18d+BwJrQXQIcVoPVqpNc5F/vtJ1OZuNYloWS+EkjCsSUN/6lARlKF7H8Lz/RG4i+MHpqkKwrA==" + , "cert": + "d9798f097dda93b984ad9bdb155926fcc9124ffc0566f8ac032bf512c250b5e1579afe601d0d318b435a24a594678123a9554e370b7741230478b8acb7f5c302" + } + } +, "startTime": 1596441225 +, "nonAvvmBalances": + { "2cWKMJemoBahAHmePghsz2EcNGhYEaeyjevpZnRFSaFdcFp2ykyheeZzayUGqFKyxQNZb": + "5250000000000" + , "2cWKMJemoBahAnmCWKDWy9QHtJ1kkRbRTKkc1SGNNBd3DJUjC5EvUN4TjzzK5MsoE2pi6": + "5250000000000" + , "2cWKMJemoBahAwZxqouZVqJPyCNLWVJtvaRnp79Ci9PchNturBRD8hSZiUZatkGB3gotf": + "5250000000000" + , "2cWKMJemoBahDKsqLMNrsoTewuCEmUvzVxiYQDLctZ4o6VvaR9LsiTjyEFoAjDDJwnKi6": + "5250000000000" + , "2cWKMJemoBahDN3bDF76UD6GnesWqCtFkZo5brvvEP3KtQ2Rh315sDuFMWdF2YyW3ii2H": + "5250000000000" + , "2cWKMJemoBahFDHPSMVw8RA78jx7rp4xRV1M7txjjZsRGwzZBhq6G5oBNPv2EnYshw4v2": + "5250000000000" + , "2cWKMJemoBahGVQv9J9Ns8RyXSwzFxD2TCxxN6M4bJjmdLVBDjHS6ZYcLkNPxprbWFUM5": + "5250000000000" + , "2cWKMJemoBahH5WiY2xePKrCUStz66LNDwErQa1fZdpXLy7arjrUQmPCK4hAZCjpsKFnZ": + "5250000000000" + , "2cWKMJemoBahKE36Z4nN8REoSVaEhS1As8fsBgkwvwowoCDTUBxDoUDMfohByTCGykjC4": + "5250000000000" + , "2cWKMJemoBahMYkrX7JMeAiuispBPh6ZDfypgWmaMhWCgCZRu8YA4skRBkLPyX67oct3U": + "5250000000000" + , "2cWKMJemoBahQq5CmirPz6p7zTq28xJ1ZHiKtpsP1dcgmmxcF7bDtx2mBYMDkKrFRRB52": + "5250000000000" + , "2cWKMJemoBahVsVDftLURiNepEjQb53n5gE4DLzrf81r28MFA7sjLx47T1NXzNvLXWsPq": + "5250000000000" + , "2cWKMJemoBahWjSU5VHxxiG7jDaBzjCzZkEPcfdS28WFRLLfsGYq9c9e6vq4z6oKcqmrG": + "5250000000000" + , "2cWKMJemoBahadHKau6SM3Zxb3VDcUxbUaXm3GtS4DB12iCHimcjVzekHQSWwqE94dLqQ": + "5250000000000" + , "2cWKMJemoBahbCZR9yq7Qau71E1Rb9se1tdoJaGQZckEgR3HL3Zs8GVJYPFUuc3KY3chg": + "5250000000000" + , "2cWKMJemoBahcUREEhi2Nh7xTZR1zmZdc91V2Mgx7pwPb44TkLE5EogJA2EAsgPjSkLpW": + "5250000000000" + , "2cWKMJemoBahfaMYF7gtwZm38sc4fTtkzD936YANrJQMT48VtB2f8CVLVP85Zi7YLzEoB": + "5250000000000" + , "2cWKMJemoBahipKfFLD5vt7rqE94dshvSKG1yRdDm385qDQXQJbxpSNMUinRM1gouHWEf": + "5250000000000" + , "2cWKMJemoBahkuE85Lxs4sqU3xskCm8pcBgcDzspjGgTFTK7W1MGEq3xVbJMQfbffNigc": + "864000000000000" + , "2cWKMJemoBahmidBSv424C1EQ2JodzzJrTei6dGt39mbqZEBJWGzXibAkAwuNwtbJB4CS": + "5250000000000" + , "2cWKMJemoBaho2SsHaT3oeKkRthBNcEH3TNzuX1YEQYJ6zDXGaseqpwwBjxcsE1QoREnB": + "864000000000000" + , "2cWKMJemoBahqqngYWd9cK8Sdjm3jsxQenf4AjKXdYoA1W7UJ74GAe3Ss6uvhuP7rXgMS": + "5250000000000" + , "2cWKMJemoBahquwTNDdRVtxKiKbT1FCTQmb67LMmvmZe2cqXJ6VXifQrysd4u85w2a2Er": + "5250000000000" + , "2cWKMJemoBahqyk5T8ZZ3E1NEbNvG43bj4TQgi95JjuS1yKV5M7okhqnArz93qTVD3sYY": + "5250000000000" + , "2cWKMJemoBahu3VyLnrbVkV5fhtRT2heJES3qdh58nWAYgB99bmr8U8N1Cgs7oekrpoFr": + "864000000000000" + , "2cWKMJemoBahuHPnMsX6WRbPQA7jc49nJJM4MhsxWRJ87CyYvu4j3Tt8k6nmR7PCjbBDm": + "864000000000000" + , "2cWKMJemoBahxhT31kapaEc977gYmY2u7QRHooBWrwwa3RiNSSMg1saYn18CVJGt1C2Xa": + "5250000000000" + , "2cWKMJemoBahyNBLMjpG1SNSo9ayVyFPu6hrAC3CzRtVR3TGMGuMThBMrzgXk9wn8LeAW": + "5250000000000" + , "2cWKMJemoBai3sKYDAf3Xi11Be1Fc2St9ve6Ut1qfLriRn48WEbh4Zc7U6R783t1YSJfd": + "5250000000000" + , "2cWKMJemoBai6xs3ywTzE2YCGzD8ehX2bPqgpeqGxsACYZa76JKx4RenwfcUqjbzh9grq": + "5250000000000" + , "2cWKMJemoBai8nB4hHhGhNYqWNLporWhgjm6BUt1op7kkbGDRzvSJHSkv1nTT8mAiR1on": + "5250000000000" + , "2cWKMJemoBaiDmg7WsfUwUifcjobm9FMYw1KAkfxBqMup9dgB5GhNyhExvLuK8AuXfF59": + "5250000000000" + , "2cWKMJemoBaiFXyNFFtTU6CMJm6epoASyNyDqRaCmxL9HcMATBtbELpaVwdDFLM7aGyg4": + "5250000000000" + , "2cWKMJemoBaiGGLb9XyY9FWuRZnJQFsMN7HmFa1t88VRc53ow4dBNXx7cgdqb2d2XYNGS": + "5250000000000" + , "2cWKMJemoBaiGWfbaQ6T4MG7ivy7WSJATwcjg1dYmGaf42mFbUiwJhC1vETBgsYdnsWxi": + "5250000000000" + , "2cWKMJemoBaiJtf38bb9ZfJ5y8EH2ykCxhWgpdRq8G2FgU16UfNfNkL1isBvNxhDs4HNk": + "5250000000000" + , "2cWKMJemoBaiNDSfmd5ajP943UZcQUAA7djBPK8KHWrG6qvEHQvPuWoJiFmXBvzXKYohJ": + "5250000000000" + , "2cWKMJemoBaiPC2TP3ebcijHS1JprZcmT29pFhqh18KX2TJu1y9wVmPdaYmZabkeB3e6E": + "5250000000000" + , "2cWKMJemoBaiPjdAUg6ctqLG9kr4iM4XqEeeDDZUhzHx8KdfSw5XdT6dGee37xnQoot5k": + "5250000000000" + , "2cWKMJemoBaiRiiLonC4xUoYybGk4ZSzvtBRjXeiW4WjMXJx75P32GZCVBJoJJrPDqur8": + "5250000000000" + , "2cWKMJemoBaiSQaCGzVJjRwQYNqj2bMoKYS9MHN1Wmr8cZLR5oigvnAg8CfFwDuqk2hpR": + "5250000000000" + , "2cWKMJemoBaiT2L5z43EJ53oBjTrMqyCm9AoD3upMBZ1wwshCxMsJnFzKp9BMnfdssd8H": + "5250000000000" + , "2cWKMJemoBaiUTwjnPzcKBYbQTVPNPt291JUev7qKmoHEbVKVTpZmAyJqFh3KyqjP1fR7": + "5250000000000" + , "2cWKMJemoBaiVxoVgQEsUZF3unVHa6yTyasSpTEEAS4vkFXQ8mASh1ZG73PYhotP5qNRc": + "5250000000000" + , "2cWKMJemoBaiY3w99Y23u3soy3sq19FmJfKNmvhPz7399sJa4SuoLchJfyiG9r8ZEhoqv": + "5250000000000" + , "2cWKMJemoBaiYQCQiUhDwRw1gbfLDr4ddYSsVEqcA8Lghe2U55in89LqjERA4iye6qQGg": + "5250000000000" + , "2cWKMJemoBaiZZhF9qwyR4cUH8v6vek4f6Azo4JhjKyttCxZKiU9ANR3Fby3Q6LGyEKpc": + "5250000000000" + , "2cWKMJemoBaiZepkoFNLjwHCFpHmxdPoJwFvhq6XMtM6fXF9soDJCbyQVETaFt6AsQv3e": + "5250000000000" + , "2cWKMJemoBaiZuM7pZgCZdSDkg8R8V7HjL3Q5BPK8JaHf9YN5axgC7xeUxkQPLpY9PM47": + "5250000000000" + , "2cWKMJemoBaidEdMrDUVrV5QAYxcq3YfFdmKTfJkevfEWCu2DLvwyVeeM7bBT4TxWUhtY": + "5250000000000" + , "2cWKMJemoBaigPyqHmsQmaLi4TBreehWGLaETFa9BwKKhPUdw7ZvR1gDbHSe8aWWJRRq8": + "5250000000000" + , "2cWKMJemoBaigVdd1Cx7hMBQyo4diedFJMLwKTSiTBr7FFKA7DuTsBKiGxQLbHEqU33No": + "5250000000000" + , "2cWKMJemoBaiiNRKo5Dut5sBGB5Ng5s29vhhfXrXDBXMWif5dtkczdiByP4NJVJtthw1x": + "864000000000000" + , "2cWKMJemoBaiiwBTH58wJj9b7PZWsJoWG1xpGZbZK7XQZmB1ZmWq7yKSK2oJwd3Posrck": + "864000000000000" + , "2cWKMJemoBainqCGogiN5DvoAsVjTT7EUqXWHnVHaorrXq7FeTinpgG8exqduYyUnay3U": + "5250000000000" + , "2cWKMJemoBaiqybmHDV9UaQzHYaf7fuSyfcmfdRNn7gaNppAYSawwaPFVR8Wsu9TWmmUA": + "5250000000000" + , "2cWKMJemoBais5drQm2gjLpJGAGUGMqshZwKdrEGC2BVwHey96RKrFGJABSPN9bCz626k": + "5250000000000" + , "2cWKMJemoBaixobdGUJMfTrXz4zHUuxPKTqMqEXbsnT828k6kDuV7vt8CtEx9hS82WA1b": + "5250000000000" + , "2cWKMJemoBaiyg2i6JtdWdbyczU49qnmMmVC6BCN9YLLccbD5NJvWPhBxv5ZjtUGa5gFY": + "5250000000000" + , "2cWKMJemoBaj1ARnSMquPQY5wRKgPmHYRLK4xVG1s6ZiD8zy88aDRN8LPv3UkiYHRDsac": + "5250000000000" + , "2cWKMJemoBaj2ifc5qPYKQEPZg1YFKckSYrmnzGLFoJkpXooXiTmMqmKctpqXCmVncPPk": + "5250000000000" + , "2cWKMJemoBaj3baA53es1gD5d2PdGEqAFWU8s4rdoEZaFFzNLpBjh992KFTiqXz47LXkG": + "5250000000000" + , "2cWKMJemoBaj4myeWbPRAUtcFtCYzN4CvjmBAKhsjgfYWPgJk6BbsK82N1Bojvrz8vnQa": + "5250000000000" + , "2cWKMJemoBaj7ueCWBZzCqEkkKxFQShPh3ya4V77fNc17yzrLXhZNqUT8DihUJaNVXzDs": + "5250000000000" + , "2cWKMJemoBaj7zAgGw9eocWcvuMipQCzSSdCtM2pd2KkzpWZozUGVCJFmsn6KKbie6DnL": + "5250000000000" + , "2cWKMJemoBaj8Y3xXLvAc6kqambb8Rmtcm6VLBe5BzLue8sHRQgSLF3r4rt5KvvqNRTC3": + "5250000000000" + , "2cWKMJemoBaj9CgkoW8jRqs8mu9AJxSTC7Fs1V6yGQLgWkQxaHpfAvs2hJe84Kq4oY7xN": + "5250000000000" + , "2cWKMJemoBajF91dft3pboXwhykAvcnaEtFFFt3K4pLkk16gd6CXVV714FEF4QZWDq8X9": + "5250000000000" + , "2cWKMJemoBajGofmouK2XD2bizZ3kRkcTy1Yqb9fccPhJongxCW7pNbXChxvM4ki3FGLs": + "5250000000000" + , "2cWKMJemoBajKBusWX8XnxZJGSZ4wg1LnrvZbv6Z9fuuPu7XUYh8FnBNiqjQtDs3u2MmG": + "5250000000000" + , "2cWKMJemoBajNzavyiSNtCK9aww7s3upxRkgnmgkdQAQ2geDajs4Wes5Ph16o8EXrbCXM": + "5250000000000" + , "2cWKMJemoBajQ4Leyc8MWHDbu3nrp6MV4kwKUG26ZysfQkKuhRcGFKAzUrDyr3RqopY4H": + "5250000000000" + , "2cWKMJemoBajQ7JeUZS6LZ4Vy8rKpzZxnTJbC9pMyh2NNcQ3kDCtFHhxgqwe3MoKubbkw": + "5250000000000" + , "2cWKMJemoBajSRDuuxHnXqyQpBnHFEt1KHn2s2asMEnmxJsPeeQHumfqubapDLvZANnMk": + "5250000000000" + , "2cWKMJemoBajSu6ZrdLwUY2XHV9TrxwxwzHLN18sCGnsMicXSrvxWgn9RQ4TPnm9anbtw": + "5250000000000" + , "2cWKMJemoBajXS6DLCqpQrHm7PGonfwo6CtsseftGfQaXEzpPsVJfHiwMN1c2FBU2iZNY": + "5250000000000" + , "2cWKMJemoBajZWRxhY2erg18oLnRJgkTyjChayjTr8LEYoszkPxxWQZf2fxAyTdinn14Z": + "5250000000000" + , "2cWKMJemoBajc75z5kvs6bErvDz5tXuNtLax8SHJDeJQeHiWRSJezML6zsytgrYD3Wc8Y": + "5250000000000" + , "2cWKMJemoBajdLd416Ze5rDTtWaN5F7gMQfAgPHhPSXK7VcqXQJ6t6rvVi6aCQQmW6Z9f": + "5250000000000" + , "2cWKMJemoBajdcFz6xwVShvpHg8G3kh2CSnADaaet5eg1kpmhobinWNSQb96Tu6Bgde1F": + "5250000000000" + , "2cWKMJemoBajduKDNVyfL1V9D6RQkEH5osEWCQXt8Kjs84rUvdQS4zkYxJiZqqEkriJuT": + "5250000000000" + , "2cWKMJemoBajhEBsQX7ZMDSKisW87gjqJ9DihGE42uo9py4uGo4r15APFNxipNHrk2STx": + "5250000000000" + , "2cWKMJemoBajj8Np7HbWoQ8MzHJ4mAaTP55zHvVN95P89ruqQ28rVLmi7g61oCMKW46T3": + "5250000000000" + , "2cWKMJemoBajkAixUyMuorTFQybCgqvWQQGktnBrcm8yzYetAeQqkXnUHa9guJ2vmeJxo": + "5250000000000" + , "2cWKMJemoBajmkRy2Cxa11QyA5Pw537Z7NwJz6rhFdRuCmCreWuESDmKmD5Z44baxrNp5": + "5250000000000" + , "2cWKMJemoBajorK4wXW87VLDMzqvPzimVGD9VAFFH18U5WDSenvnbfJwynZtu4qKSF7wM": + "5250000000000" + , "2cWKMJemoBajp644b4LkmrnGizBjsv2drvCTMJ3d4F6iW3p8o2VxiGUUDZzmcYWRAq1vR": + "5250000000000" + , "2cWKMJemoBajqfrCeXu86aRHC4rPA7DJqwBPJ5KYThWKJr4oNURnrUPGmZR2LVFz4CP25": + "5250000000000" + , "2cWKMJemoBajrq6RngX27Bf95cmK13f9nq6YiBR4Z7ckK2cssXaqko9AhGJMeaH5PqUqy": + "5250000000000" + , "2cWKMJemoBajt3hWeQ7jsxqZXLygUfZVNc4TGdRAa9YCZLpa4pwP7xivnD5sCuRaTzZnH": + "5250000000000" + , "2cWKMJemoBajxHi7ie7V9yyRMUMvQt98CapHWqkLJRG2Vf5p2tsEQey4do1ijhHXMCMiz": + "5250000000000" + , "2cWKMJemoBak1rNGUmtwHfcLvUyfBvsAvPgKZpbzJf1bL6fMyQFqc4dJLvf7oNoh8Mhbp": + "5250000000000" + , "2cWKMJemoBak1ux5PRDz4H1npZkkek3CvCHG3buv7T7cAi3injYEphwEVsuVpNdMp7fxY": + "5250000000000" + , "2cWKMJemoBak3R6pS1aZc7st9BU7pzH3DLaaKyzEWMNbu83Ugu9upuPHe39uCPEunb16U": + "5250000000000" + , "2cWKMJemoBak4wHRWcLMsaYr1T35UenV7cMh3YYNZqC4R8azQ1q6zWfs6waJ1oLqqwPQ7": + "5250000000000" + , "2cWKMJemoBak7cYndz4aFLPgF16X67u5vUh3a7uqn9s3sV96MehETRvUBWGdRp4qBdJud": + "5250000000000" + , "2cWKMJemoBakAgQjsGjLcyXpCgEu3xo4jk35YLykJgUTcABrvHSFXYQ1mBMrD3cVAM7oz": + "5250000000000" + , "2cWKMJemoBakCXFnjymsURHXwrzqvGubvbqbAf6vzz8VuHC8qT2rGLXrewEdt435h3LvD": + "5250000000000" + , "2cWKMJemoBakDGsT5ggbodZoZmQzPHtCWaypUd6hQepbhzbJnr6WHxyEhYmQTDZW2BocS": + "5250000000000" + , "2cWKMJemoBakHxvWLcdDvDe5ArGJSrU62P5aRPrZiwnBp6u7WQ4EoU8NTogYkmzFHr8v3": + "5250000000000" + , "2cWKMJemoBakK2WwngB6nEAuVs6J4U7AJHahhteeVmaiWKNgLuZLrMwufd2RdsGwTrVeQ": + "5250000000000" + , "2cWKMJemoBakK4TLSiShfdDnFYpU1atYX7qCpCWoSD15NyvgGAE6SfYt9vomu7pNuGC5n": + "5250000000000" + , "2cWKMJemoBakQgrvYBTZX2gWkM1SUmApk8ZtFWzBifn93VmS6BBCAfCTRqSyxD7xG5rbY": + "5250000000000" + , "2cWKMJemoBakSGwTomD6zvxJCddobxjHLwLXfnoY2fRuomhCLnQoBXi394t7eq6Ybzqk6": + "5250000000000" + , "2cWKMJemoBakXJgzqPuWnnwoZYwAWmffGSQAssoP2fBYSipA1LrsXJYQm4aYh7LDTxMmr": + "5250000000000" + , "2cWKMJemoBakc3YMt6mfZehcwSP22eg34v76499nPS77exaF2T7qnxFYc8HVatctsXghT": + "5250000000000" + , "2cWKMJemoBakinXagF27eWjKMKaJkyBBxixw3Yx1QXMNrSGXopEe7UAUy2eUyKRqogPwA": + "5250000000000" + , "2cWKMJemoBakj2786RCczeUAdF8gVH3pUows9PX5jVJTHkw2u8zLtRU3iE5HnTz5yBNTx": + "5250000000000" + , "2cWKMJemoBakn2kDx6xYjomV8qnugBNwRky2StHmkaSPpRYHvfsJ93eUsLASQrrUF1gA5": + "5250000000000" + , "2cWKMJemoBaknno84HGt6fFqHNBU6N71mhBK6x2Mngr2JnXcMgQfFUmsQrYhCZ98JPoqK": + "5250000000000" + , "2cWKMJemoBakpU5mopZ6cqTosZPU1Hnjwwke63oHdqPJP8X53FV6uVTeUb6ir2mKhVNcw": + "5250000000000" + , "2cWKMJemoBakq7RmkN6rgChE6XM88vwFGy6A5ExLAQbauRDMB6mHCRkRB6Kr8Xj3fprvu": + "5250000000000" + , "2cWKMJemoBakqfxRvn815qUdRfejN9qj9WiwZhknujUkWmGRAeQxnvaHuxtdPoQBzPfDU": + "5250000000000" + , "2cWKMJemoBaks4YpQzQMdF48Kk6MzBAismAoNguwtqVevdamVomVoGXgoJ783UDyqVLqj": + "5250000000000" + , "2cWKMJemoBakuwiywipG8KonvsXc7Gffm5Qxs27S7uLPTkeLKaFnevJt1KNFCr18UVH5e": + "5250000000000" + , "2cWKMJemoBakvDFs1VEzrABUYTHi9SkzsdcYLCoeyMEZvzueTgS2yGErsBMnCtFFHWnnt": + "5250000000000" + , "2cWKMJemoBakvPmrisJFedU7FLohLWN4YSHVrD9mTHEVhJiPTzfMWctBFHBm5iTucYHb7": + "5250000000000" + , "2cWKMJemoBakwwqu43puoXj6xtQXvXy9FwakgLVudmBxSuz75RdSEBi8sarrJJumTFB25": + "5250000000000" + , "2cWKMJemoBakxtYr3R8MYUxX9Ywzm6P3qVHgCceMHehofqXoy2UZgbRGWhX8MvesJMYjn": + "5250000000000" + , "2cWKMJemoBakyjESGfT8evfKvhooFYdRbWvjYAp5SPVbtQjS4rJMfKHRTfX6yXem4jsP8": + "864000000000000" + , "2cWKMJemoBakzJBm4UzpEQhA8X1fkDwVMW64k3SDFd7vqxNaDzvTcB72cYEz5XDcLeNQp": + "5250000000000" + , "2cWKMJemoBam28LAQ4MHAHVnzkmfAqimri5Fr6PLHNBXqCiVFey3erAeeJXB7iipmRoVA": + "5250000000000" + , "2cWKMJemoBam4RhTf4NvrXFpZXTWvpPNHHWk3kYMEveFqwyPVCqFtnuCWTEFPRZMYJrUd": + "5250000000000" + , "2cWKMJemoBam5bZm9huwvtUj9T22H3GsHAvVWC7KJRBe1eiJezCxbVG6z7FDCiPFdLVc5": + "5250000000000" + , "2cWKMJemoBam5ffE35KfR4EKAAoiYyHJP1CpE2E1YZhXXLjTatUu5toPJReofozMwKqjB": + "5250000000000" + , "2cWKMJemoBam6SQYZZnn4m5MfAmPYk2QFsM3kPV1iwiQCzBryAr3ZAagJeuAy5zSPShEU": + "5250000000000" + , "2cWKMJemoBam7JMMLFx2SQJUviJ2uFQZeQK3truGeEL1bfBxrW2JFLf7yf9LUrvPZJQV6": + "5250000000000" + , "2cWKMJemoBam8HYTzC3Hxed8bTjvFwLSqz5GfUrV9mWWYpFcPFSFdL3yqCitDAebcq7rD": + "5250000000000" + , "2cWKMJemoBam8feVUR9ehKndr3qGrxhrMcKHW9HkHsQkb62oUbkH6bvG9dn7xeTst5xSW": + "5250000000000" + , "2cWKMJemoBam9MGn9Zrpoks45BrbaD2LiYE21X4kkTdV7LKicK8Wde5DN6JUj2PPQTKUZ": + "5250000000000" + , "2cWKMJemoBamEaUvP8VwU4PxbGc9Pdqmkajaj1RUJSE9sStZSuYqVswzcqWqYjBdWxntB": + "5250000000000" + , "2cWKMJemoBamHZzfZJQy37o5ceZQr3p87gN1GL9ogx3bCa7w776tGJY3JpDq4X61njNqF": + "5250000000000" + , "2cWKMJemoBamMX3gZ7SnurhfzMnHFafmXGUV6oiLp31vsrmiL2uee1D4osi9fWE5aDrjB": + "5250000000000" + , "2cWKMJemoBamMmRwoKCGwEVM61vxj8u8giTpEAt8mxr2jVwwTU4cmqyzwVwG6276txJkd": + "5250000000000" + , "2cWKMJemoBamQ2bYFTZaiQyepr8cq9SxvQ5RiBbBUQS8yYm9T7du3ait1FNQbUV384Uvw": + "5250000000000" + } +, "blockVersionData": + { "scriptVersion": 0 + , "slotDuration": "20000" + , "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": 2160 , "protocolMagic": 459045235 } +, "avvmDistr": + { "AiswgJPsWe4wp8Okdq6lhrcUahn2Itb7tV7n2Ulcy-E=": "10000000000000" + , "A1yES_fLMsVfLWldGtXkOUe1D5TN4GVqprGIkPDVm44=": "10000000000000" + , "Bq1VEo_8xhVE-RrN9mjLVoqz51331wXOH0Up6kUpbWw=": "10000000000000" + , "B0updbST3sZXe2rNSnhlx2qYTaJVRbs-FjDg-mVPezo=": "10000000000000" + , "CIb8CY2sSkG2PvKXeY4RbJsMATCuxbs23WI6AbIVkKM=": "10000000000000" + , "CWUVAI_anFCCQmV6kuSKT1jpthphKZJaAlc-pnPXuqQ=": "10000000000000" + , "CfkLJ_0FnjW1PU8-QwPjrv8z1s2DR30KyvT10J2qPg8=": "10000000000000" + , "C3ni-9cYtg4Muu3qp9mWNeoAfPiqrdmhrjKj3TFiMxo=": "10000000000000" + , "C72zwVCELch1_knieTkwf1YBJfIGq_UseCBZNEYxCLc=": "10000000000000" + , "DRqCxPskv_VehG21ABphbptXDGVNfMwAN1Ng0MpRluc=": "10000000000000" + , "DdOSMN0aQCpV9nJChicXTrTkjnZ4Toip_tHS8XHtioI=": "10000000000000" + , "EFsTLAXlwVOgVJYoXC-5vu0vc6ZcsL3SOUlZIn2FPmw=": "10000000000000" + , "Ec6Fwn3yQeMqzgVov1qC70dSIw_SwGbmjjUEfwDocAM=": "10000000000000" + , "FROx4gqhdGMBdRMeG_evtcbF1AFCELwX2B4XYKPW_a8=": "10000000000000" + , "GizKtP_QjG2lo0nMWbheXhmvfUEnz6a6q0EV_VW_dwU=": "10000000000000" + , "Gm-p07dEDugwMbOtwGSijoyjW2Im_plPgSgmGVFyk6c=": "10000000000000" + , "G_fne5bP_jrV0hsnztqkav4kj_zkc4hNN8xWmGdZWsg=": "10000000000000" + , "HzZnF9W5DTLskS8d2v-qTLo26Stsm2fhQA7ZmYyT36I=": "10000000000000" + , "IiCHMPu3KlYhdT2fpwUZ8Sg3ExoYpfHFmb1U_s2ZqDc=": "10000000000000" + , "JQ5-BbFzLKSFboP4d_lb6UyGwIiQhLuSUj7_Oe99L5s=": "10000000000000" + , "JRQ2onZEloi6DpEpUlDdAmEPLLLIuzsNRYNtClm7qtE=": "10000000000000" + , "KERneaTOc5-dAdLJiha-jkZojeRuEr99WB5k5iYUDL0=": "10000000000000" + , "KQloH5Se4CjdCQ4Rv0Z8nR2SE9wQW1s_bRudbLI4dBU=": "10000000000000" + , "KVbsyPA8LCqiGUxGHaF34kOhmtCFVlpGqhYoi-_Ng9A=": "10000000000000" + , "K9k_MaLQqluEIHbn2MhIzYwtF6zR7q_t6JB8N-OIu5Q=": "10000000000000" + , "LPobfw2QqToIydx8SfCh9NB5dkbFWG4d9Yei5nFsxQ8=": "10000000000000" + , "LW6R4JPNOUbDpnR8XB3z1pIUqRxccf6WknoSmzIijQ4=": "10000000000000" + , "MJ4p4yJ3FMrK_1_xh2rLmFQ-02AuL1mLGgnzZnr259M=": "10000000000000" + , "MYzo9TE4-PFKA0luWaPXDtjg2ezex-Vif_2e51orbOc=": "10000000000000" + , "NgK8luSxIVgnL6sA4YohceR7HQsdKydEK96VRfhmTEg=": "10000000000000" + , "N9b2Jj2spPJqbYQOfS3wERaVQLC0NPJiLiW-EgMu9ZU=": "10000000000000" + , "OE9jdk_3f9kGLz6rfRlA1B35tuLhWhiQScucnBxj9DE=": "10000000000000" + , "O8oGnYC5eXbyYt3yDID_raqMrKaKLhZu1-GMJ8ACOzA=": "10000000000000" + , "O8sENhefaHPW6V9bKbqR35wUZfgKC1GL7Pqk52RJmDU=": "10000000000000" + , "PRthmRM6_a4wJ-8pN86TXRvMBoBiftEWe1GDcqFs-Fk=": "10000000000000" + , "Pp6mE5czWSiznMrsdqfliqHxI9YrsE20NieHTSXp58Q=": "10000000000000" + , "QgLMkVVQKVrXX26hP9VkbqAK8TpwxKEWozy5jgDX-ig=": "10000000000000" + , "Qywl2pVkKlDz-nEekHrF7HDlniGb5CcxCX-KSsTyl9c=": "10000000000000" + , "RXqF4cmgeglp1QdV_HZF-y9S1mNRz4kYgcsUm7RDMvY=": "10000000000000" + , "RbluUTMB-UB6j7G3OHRenuVqZLatHGl4vBOKM0pWNd0=": "10000000000000" + , "RkhCC7aJ2OsX7EiI7smfKeFkErfdZJsvTXgnA9H92qU=": "10000000000000" + , "RzIT3yMybx6GfC95lbNxh0FEue2GedPS3k9vFNtF3IY=": "10000000000000" + , "SFHW7rBTtsvjOFNKd2dhUE9SuFmHX-LVrLSKDpzTtVQ=": "10000000000000" + , "SKtAAQcRuxtIwmKg-Q2im0Gsyf--W7vYPzKyv8415YE=": "10000000000000" + , "TWbKwbpfZRv1fG3FmliQiFTXU_Am2WJKOOuRycIVByY=": "10000000000000" + , "TXFiomyLAkqV_kN7vYYCnesq_o_22ByrKH5JOqXQw9k=": "10000000000000" + , "UGwtU3lZQY-07bRGp_EjHmTWtKxlVZaLPBPC4sBh3s4=": "10000000000000" + , "UNuoDf1QtHXe5jzvOJY8VJ_g2HiVyYrzd2gqNWCbd6U=": "10000000000000" + , "U4l76A5RzN7R_-poTcTF-GnxiUlr0qxAg7ELCjzjrmA=": "10000000000000" + , "U6ci3_afiYybEEFbb-xMBHv5Nk1FCX34aU7DHFE_iV8=": "10000000000000" + , "U-7iric3graVc3Oc4WOzwrdVWBxLmSIMkCVlcdCDRHY=": "10000000000000" + , "V16bNvfAboIDyuO90Bum86kkc1ImgmtS7RfAXQ_zzdI=": "10000000000000" + , "XONIkQ1kJHN53NaJexiOKJKvngXYVe7Fb1O_V-Lw-gM=": "10000000000000" + , "XYHKPMXagDD4oqVJDfa7zGd_DxDQp1-xrrn26VYFl20=": "10000000000000" + , "XwJtU7VKT8Nz_9blLrzTHpPrxCK4CD82sIWvSt2KTPM=": "10000000000000" + , "YWsQW5UOnW2lFfJD0-awnWXpDWYAHmI058Vl7VP_MAs=": "10000000000000" + , "YrLwuR3Hndab5POOi8GufV1-TDwdv5isQ4cwr9RzHzo=": "10000000000000" + , "Yto8dVAJsUzEaNdIwtFEgQs1Wyb58ZhQtkqiQURPVMc=": "10000000000000" + , "YxwawAh_MWs9Dt6oHm3l6JW7Uh5VtZSES774GwzcP5k=": "10000000000000" + , "ZLwICD8fS2_fSLpPuCr7wF0wbzTToZgO5qf_vYtxEvo=": "10000000000000" + , "ZMWiRWK-k7emXXg_kQVfYWT75szlTFHHKXOLwL9SCXg=": "10000000000000" + , "Zebu-K4A5XNo65HR0mJWAp-i7dt5yHacqiFSGHdTc8c=": "10000000000000" + , "ZhnM8cL5sMXFkabtZjbGUoMviOPKsC8MGNo7CgU3Mjg=": "10000000000000" + , "aIs0QllCelOD6H7fqby-FibasWTwIw0CdY3gHDxsqHw=": "10000000000000" + , "ammVo5nXxVHh29TAzKf3xlu0QVfJdyQdzcbPtqdQpxw=": "10000000000000" + , "aoEBERiXK7ylQXofJBeRqPhye1sRN70_EJIGG4fbRwg=": "10000000000000" + , "bDgFyiiQ4s5PBL7UhoDsu9CZGrCN0qzJ507S8FGqV8M=": "10000000000000" + , "bjvKxOanFyQBpjLIYU4dHf6X2Dpjkdm1T1Z0f4xtREc=": "10000000000000" + , "bo1wiWIwIRzH1D_oamrG9B6KqwaH0EmwZIP03AZrFoI=": "10000000000000" + , "c49ycKxStW0D6M7ZMx2KQdJFyNSFrOC-v-ZDGs3QtCM=": "10000000000000" + , "dgYzcRwB-BzGSvq5-IK1hhplvRMt46lPvdXsp5ZmBaw=": "10000000000000" + , "eUdwCPKtrjTqLd_k7wtfzRRUS9oKwnb03iqiCBz99Uw=": "10000000000000" + , "ean22NiA7peV0rrOqnxp00V8EHH9is4bWnqVVZ0TAvM=": "10000000000000" + , "eoZffB_WPTc6Tf_N-spwDZnMJxTr8mjFjY2o-LZIcPo=": "10000000000000" + , "gCsvtJ5BJ6g5DDICgKak-KG11q7j9okD8aeupw1mjpY=": "10000000000000" + , "hADpdYMD0b9EfAc9eowlvPYDE92K01vGEdKjGdqZa1c=": "10000000000000" + , "hLup3gqek_ZtNPace0X6IlSZ4661piDlBDX1OyJIvIs=": "10000000000000" + , "iRdTXoXLCJ8yDhiu24OH3ofpHVmBBLk-jditDMxa4fE=": "10000000000000" + , "ioYfgJtUqzhj4aSIFpXBKItLsv9GLGmJYkldCoi_CDE=": "10000000000000" + , "jAr0s9SEgKDRIRueL8Zzf_oSvE2lf5J0mTSpadvOplY=": "10000000000000" + , "jF3EzDdvwbf169_6a7QxqeeO5EAC56fksUWIlggZ47M=": "10000000000000" + , "jZRiJLQMhJSoJxhO2dcuGD1OWFRKwdX7cPpujYf5G4M=": "10000000000000" + , "jvaQ1BRXv_yM2AgSdH42AGBz2pjUM5juLOFaP4qQOyk=": "10000000000000" + , "kIJG97mgzBbKEYSREG7KoJdNSTMTnNSzMEVLUrOoP70=": "10000000000000" + , "kclzkXkxzQhyWSGywcQhyk1YW9tojyAG52Lfhp_gn84=": "10000000000000" + , "keToCaOcFzKFdNhpFPc-GHC6xY0p4QhpdMRWuslrxTQ=": "10000000000000" + , "kt3gByDC3P1j6lES-Hc0h2qyds9biNB4AMLFRRG2w20=": "10000000000000" + , "ljupu1dIys_xpUboNQXwMkpv0MZ8qHO5MRhasqz8_MM=": "10000000000000" + , "l9sOXprjdWf-zZk4nazOdFwS_drXeEydCsY4uWrj9ss=": "10000000000000" + , "mU4YGBgAgvnK8Baorbwu9MCt0R6QxO-i0dw6mmsM7Rw=": "10000000000000" + , "nJxcsb6Wpkn6Til-iS-ISmLY7mMLFI4n05FKgkDlQI4=": "10000000000000" + , "nneCuaG-1_-3MO1kakLNqpwg0hlN6d2HtBXckei6W7s=": "10000000000000" + , "oO7t7gKPFLyub6uo_JjPKQrY2JyWY6xKmbE4OAVgeO4=": "10000000000000" + , "pucch1vxigLSDv4AdwuZ1wX1YGFJLZPYPimAhuL9lzA=": "10000000000000" + , "q3PZdAorbgOh96BJHQCjULgf8zvCBnSSO7ULCe38aSs=": "10000000000000" + , "rUh4RYbo5Zvr5YaWXwhBePZ7YYyR09bGBfb3l38dliI=": "10000000000000" + , "rxbzr2l0htZl410p4LITajnfcGVhfmZ2K-Kb_kZFYdM=": "10000000000000" + , "sDnogv5feOwd_rYlw0-WK8A-PRr7JgRvqSsxa4iCjPs=": "10000000000000" + , "sThbuPcyPqNKpRThu5MLDoW0iR7GrbwTbw_1KpqspkA=": "10000000000000" + , "sXBPjHDr7Ju0wic6rh8BvJFFp6neV7lw07eody834d4=": "10000000000000" + , "u-wDrQk4gT_zIHMCMIJZQGoQeNgysywM1jDtEbVEOfk=": "10000000000000" + , "wDp_pQ31gYF60Yz0CU2M0jdxE_SKgINThuuSa3eJl6E=": "10000000000000" + , "w4N2ynVhMkwmYIS5ihj1lxDtHjna-yCD60vwRd2cEm0=": "10000000000000" + , "y2Y6h2fulZWcYajlZ4jG7E7JCPN3e_RrS9Lwp4a0O5o=": "10000000000000" + , "zKPu_7JnBfQFzRLy6FGigtCEeup1GXu3NLBh9phd46Q=": "10000000000000" + , "0V-8PqQOlx7EolvHvKfPcK_3bfjxxhOcJGywS8QnXCo=": "10000000000000" + , "0jdCKSjk7H0pXTxGPPpv-W-EjVuyKlbHdkNQIDsR-0E=": "10000000000000" + , "1FgBDSJMIuZZO689oVPEXKH99BD5GfCoJbPZZdanIvg=": "10000000000000" + , "1oF928n4-AfNE2GXX1_uwopMa-2R6fHLYJtWNS9Cp_U=": "10000000000000" + , "1qGjQQKRZFNajXWkstPHc3suvYt8FDM4unqaV2b1gRw=": "10000000000000" + , "2rAzTTGOlyvhNBVxFq4LL5J0hOk665-uGfk2IOcbyCQ=": "10000000000000" + , "3C2d-8K8rSzH9FLr53yMjBkLRoV4jlQwOoW1atelb10=": "10000000000000" + , "33H9dtRQk1d7wKWEZHw3zfmlVuoqbVjedAbZqNYZOvo=": "10000000000000" + , "5xmsa5pQWfss5oDx2qrHQ5v5WkcdpfsyK3BidqihK4Y=": "10000000000000" + , "6HNgDrGmR4Go9gnDe2fpt0aacnPRnM-HXJsrAJWrQ_o=": "10000000000000" + , "6HiT5qEpIuEmFBHBrx0WuKhWy8DTeA87Z0kTyljfWGw=": "10000000000000" + , "6RXmuibp2FlHR9z62WxWl9O1pNfHB5cdO1SSeAuAzcQ=": "10000000000000" + , "6zur3N5JHfYi64nm9mufnwSrqme6iVFz7A1I9jDTAm8=": "10000000000000" + , "7gI9SKUBign0_EFkZR2X_YQormAh1pAacPJ3fwWNpsE=": "10000000000000" + , "7qyfCFrQV6Umvc-Qf8sOiWE76W1YkVBgje-Ez1ujc6Y=": "10000000000000" + , "7yqmDrEVOZ4KTQWkKqLX20azyXybn3oPGRZAUeo8QyE=": "10000000000000" + , "70B6pIfnYa5d-AjcAHsSU978HZwpgNs4O9hPTmhZzP4=": "10000000000000" + , "8SdsGs_7Br1wxAOMa_k3lEkiPMWhHxoWAwA7voXb7Po=": "10000000000000" + , "8y-dtMPgha5aZCM4uiXIYt9cx4SeowuHuQs7c_9R16Q=": "10000000000000" + , "9mK2FPMmptCeXiJzK6O57_1ldbfKh77xe3GDmbTbmRs=": "10000000000000" + , "9qSOxgkYQNioI81f17UtQ4k_881Mb9_smz2oAiUtcYY=": "10000000000000" + , "_C4QZx4s5SXcjzUcPpqrHn8ifjStwKTIc9gdbIPFM3g=": "10000000000000" + , "_Zw2x5X2U8CQmppo_Lj10SbWQhuuL03r55OXExF6jHo=": "10000000000000" + } +} \ No newline at end of file diff --git a/chairman/configuration/defaults/simpleview/topology-node-0.json b/chairman/configuration/defaults/simpleview/topology-node-0.json new file mode 100644 index 00000000000..95902077560 --- /dev/null +++ b/chairman/configuration/defaults/simpleview/topology-node-0.json @@ -0,0 +1,15 @@ + + { + "Producers":[ + { + "addr":"127.0.0.1", + "port":3001, + "valency":1 + }, + { + "addr":"127.0.0.1", + "port":3002, + "valency":1 + } + ] + } diff --git a/chairman/configuration/defaults/simpleview/topology-node-1.json b/chairman/configuration/defaults/simpleview/topology-node-1.json new file mode 100644 index 00000000000..a64ebe10a66 --- /dev/null +++ b/chairman/configuration/defaults/simpleview/topology-node-1.json @@ -0,0 +1,14 @@ +{ + "Producers":[ + { + "addr":"127.0.0.1", + "port":3000, + "valency":1 + }, + { + "addr":"127.0.0.1", + "port":3002, + "valency":1 + } + ] +} diff --git a/chairman/configuration/defaults/simpleview/topology-node-2.json b/chairman/configuration/defaults/simpleview/topology-node-2.json new file mode 100644 index 00000000000..a762a3e8f19 --- /dev/null +++ b/chairman/configuration/defaults/simpleview/topology-node-2.json @@ -0,0 +1,14 @@ +{ + "Producers":[ + { + "addr":"127.0.0.1", + "port":3000, + "valency":1 + }, + { + "addr":"127.0.0.1", + "port":3001, + "valency":1 + } + ] +} diff --git a/nix/haskell.nix b/nix/haskell.nix index 6906ef72a49..00aac2bc494 100644 --- a/nix/haskell.nix +++ b/nix/haskell.nix @@ -102,6 +102,12 @@ let # cardano-cli-test depends on cardano-cli packages.cardano-cli.preCheck = "export CARDANO_CLI=${pkgSet.cardano-cli.components.exes.cardano-cli}/bin/cardano-cli"; + + # cardano-node-test depends on cardano-node + packages.cardano-node.preCheck = " + export CARDANO_NODE=${pkgSet.cardano-node.components.exes.cardano-node}/bin/cardano-node + export CARDANO_NODE_SRC=${ ./.. } + "; } { packages = lib.genAttrs projectPackages