diff --git a/.envrc b/.envrc index 4b8db14d..cef201d0 100644 --- a/.envrc +++ b/.envrc @@ -1,3 +1,4 @@ +# shellcheck disable=SC2148 if ! has nix_direnv_version || ! nix_direnv_version 3.0.6; then source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.6/direnvrc" "sha256-RYcUJaRMf8oF5LznDrlCXbkOQrywm0HDv1VjYGaJGdM=" fi @@ -5,13 +6,13 @@ fi IGREEN='\033[0;92m' IRED='\033[0;91m' NC='\033[0m' -if [ $(nix eval --impure --expr 'let f = builtins.getFlake "git+file://${toString ./.}"; in f.lib.versionAtLeast builtins.nixVersion "2.17.0"') != "true" ]; then +if [ "$(nix eval --impure --expr "let f = builtins.getFlake \"git+file://\${toString ./.}\"; in f.lib.versionAtLeast builtins.nixVersion \"2.17.0\"")" != "true" ]; then echo -e "The nix version must be at least ${IGREEN}2.17.0${NC} for fetchClosure of pure packages." echo -e "Your version is ${IRED}$(nix --version)${NC}" exit fi -if [ $(nix eval --expr 'builtins ? fetchClosure') != "true" ]; then +if [ "$(nix eval --expr 'builtins ? fetchClosure')" != "true" ]; then echo -e "Experimental nix feature \"${IGREEN}fetch-closure${NC}\" ${IRED}must be enabled${NC} for fetchClosure of pure packages." echo "You may need to add the following to your nix config:" echo @@ -19,6 +20,7 @@ if [ $(nix eval --expr 'builtins ? fetchClosure') != "true" ]; then exit fi +# shellcheck disable=SC1091 [ -f .envrc.local ] && source .envrc.local if [ -z "${SOPS_AGE_KEY_FILE:-}" ] && [ -f ~/.age/credentials ]; then @@ -26,7 +28,7 @@ if [ -z "${SOPS_AGE_KEY_FILE:-}" ] && [ -f ~/.age/credentials ]; then fi if [ -n "${DEVSHELL_TARGET:-}" ]; then - use flake .#${DEVSHELL_TARGET} + use flake ".#$DEVSHELL_TARGET" else use flake fi diff --git a/Justfile b/Justfile index fd5893ec..d3ad5196 100644 --- a/Justfile +++ b/Justfile @@ -58,155 +58,133 @@ checkSshConfig := ''' exit 1 } - let checkFile = ".consistency-check-ts" - - # Checking modified timestamps to decide whether to eval nixosCfgs which costs ~0.5s per ssh command - let runCheck = if ($checkFile | path exists) { - let checkTs = (stat -c %Y $checkFile) | into int - let colmenaTs = (stat -c %Y flake/colmena.nix) | into int - let sshHostsTs = (stat -c %Y .ssh_config) | into int - let moduleIpsTs = if ("flake/nixosModules/ips-DONT-COMMIT.nix" | path exists) { - (stat -c %Y flake/nixosModules/ips-DONT-COMMIT.nix) | into int + def file-ts [path] { + if ($path | path exists) { + (stat -c %Y $path) | into int } else { 0 } + } + + def list-diff [left right lName rName] { + { + $lName: ($left | where $it not-in $right) + $rName: ($right | where $it not-in $left) + eq: ($left | where $it in $right) + } + | transpose where item + | flatten + | select item where + | where where != "eq" + | sort-by item + | enumerate + | each { |r| { index: ($r.index + 1) } | merge $r.item } + } + + const checkFile = ".consistency-check-ts" + const hasIpModule = ("flake/nixosModules/ips-DONT-COMMIT.nix" | path exists) + let runCheck = if ($checkFile | path exists) { + let checkTs = (file-ts $checkFile) + let colmenaTs = (file-ts "flake/colmena.nix") + let sshHostsTs = (file-ts ".ssh_config") + let moduleIpsTs = (file-ts "flake/nixosModules/ips-DONT-COMMIT.nix") ($checkTs < $colmenaTs) or ($checkTs < $sshHostsTs) or ($checkTs < $moduleIpsTs) } else { true } - # Sanity check nixosConfigurations, ssh hosts and module ips agree - if ($runCheck == true) { - print "Checking nixosCfg, sshCfg and ipModuleCfg for consistency" - - def list-diff [left: list, right: list, lName: string, rName: string]: nothing -> table { - let comparison = { - $lName: ($left | where $it not-in $right) - $rName: ($right | where $it not-in $left) - eq: ($left | where $it in $right) - } - - $comparison | transpose where item | flatten | select item where | sort-by item - } - - mut consistent = true + if $runCheck { + print "Checking nixosCfg, sshCfg, and ipModuleCfg for consistency..." - let nixosCfg = (nix eval --json ".#nixosConfigurations" --apply "builtins.attrNames") | from json + let nixosCfg = (nix eval --json ".#nixosConfigurations" --apply "builtins.attrNames" | from json) - # Ssh config header manual changes can be made without breaking parsing as - # long as they come after the `Host *$` line. Host modifications can also be - # made as long as any host changes come after the ` HostName .*$` line for - # each respective host. - let sshCfg = (open .ssh_config + let sshCfg = ( + open .ssh_config | collect | parse --regex `(?m)Host (.*)\n\s+HostName (.*)` | rename machine ip - | sort-by machine) + | sort-by machine + ) - let ssh4Cfg = ($sshCfg - | where not ($it.machine | str ends-with ".ipv6") + let ssh4Cfg = ( + $sshCfg + | where ($it.machine | str ends-with ".ipv4") | rename machine pubIpv4 - | sort-by machine) + | update machine { $in | str replace ".ipv4" "" } + | sort-by machine + ) - let ssh6Cfg = ($sshCfg + let ssh6Cfg = ( + $sshCfg | where ($it.machine | str ends-with ".ipv6") | rename machine pubIpv6 - | update machine {$in | str replace ".ipv6" ""} - | update pubIpv6 {if ($in == "unavailable.ipv6") {null} else {$in}} - | sort-by machine) - - let moduleIps = if ("flake/nixosModules/ips-DONT-COMMIT.nix" | path exists) { - (open flake/nixosModules/ips-DONT-COMMIT.nix - | collect - | parse --regex `(?ms)(.*)^ };\nin {.*` - | get capture0 - | parse --regex `(?m) (.*) = {$\n\s+privateIpv4 = \"(.*)";\n\s+publicIpv4 = \"(.*)";\n\s+publicIpv6 = \"(.*)";\n\s+};` - | rename machine privIpv4 pubIpv4 pubIpv6 - | update pubIpv6 {if ($in == "") {null} else {$in}} - | sort-by machine) - } else { - [] - } - - # Set up comparison between list of nixos config machine names and ssh ipv4 machine names - let nixCompareSsh4 = list-diff $nixosCfg ($ssh4Cfg | get machine) onlyInNixosCfg onlyInSshCfg | where where != "eq" - - # Set up comparison between list of ssh public ipv4 and ssh public ipv6 machine names - let ssh4CompareSsh6 = list-diff ($ssh4Cfg | get machine) ($ssh6Cfg | get machine) onlyInSsh4Cfg onlyInSsh6Cfg | where where != "eq" - - # Set up comparison between list of nixos config machine names and ip module machine names - let nixCompareIps = if ("flake/nixosModules/ips-DONT-COMMIT.nix" | path exists) { - list-diff $nixosCfg ($moduleIps | get machine) onlyInNixosCfg onlyInIpsModuleCfg | where where != "eq" - } else { - [] - } - - # Set up comparison between list of ssh public ipv4 and ip module public ipv4 values - let ssh4CompareIps4 = if ("flake/nixosModules/ips-DONT-COMMIT.nix" | path exists) { - list-diff ($ssh4Cfg | get pubIpv4) ($moduleIps | get pubIpv4) onlyInSshCfg onlyInIpsModuleCfg | where where != "eq" - } else { - [] - } + | update machine { $in | str replace ".ipv6" "" } + | update pubIpv6 { $in | if $in == "unavailable.ipv6" { null } else { $in } } + | sort-by machine + ) - # Set up comparison between list of ssh public ipv6 and ip module public ipv6 values - let ssh6CompareIps6 = if ("flake/nixosModules/ips-DONT-COMMIT.nix" | path exists) { - list-diff ($ssh6Cfg | get pubIpv6) ($moduleIps | get pubIpv6) onlyInSshCfg onlyInIpsModuleCfg | where where != "eq" + let moduleIps = if $hasIpModule { + open flake/nixosModules/ips-DONT-COMMIT.nix + | collect + | parse --regex `(?ms)(.*)^ };\nin {.*` + | get capture0 + | parse --regex `(?m) (.*) = {$\n\s+privateIpv4 = \"(.*)";\n\s+publicIpv4 = \"(.*)";\n\s+publicIpv6 = \"(.*)";\n\s+};` + | rename machine privIpv4 pubIpv4 pubIpv6 + | update pubIpv6 { $in | if $in == "" { null } else { $in } } + | sort-by machine } else { [] } - # Validation output of any nixos config vs ssh ipv4 machine name differences - if ($nixCompareSsh4 | is-not-empty) { - print $"(ansi "bg_light_red")WARNING:(ansi reset) NixosConfigurations \(($nixosCfg | length)\) differ from ssh hosts \(($ssh4Cfg | length)\)" - print " You may need to run `just save-ssh-config` or `just tf apply` to update the .ssh_config file." - print " Differences found are:" - print $nixCompareSsh4 - print "" - $consistent = false - } - - # Validation output of any nixos config vs ip module machine name differences - if ($nixCompareIps | is-not-empty) { - print $"(ansi "bg_light_red")WARNING:(ansi reset) NixosConfigurations \(($nixosCfg | length)\) differ from ip module machines \(($moduleIps | length)\)" - print " You may need to run `just update-ips` to update the flake/nixosModules/ips-DONT-COMMIT.nix file." - print " Differences found are:" - print $nixCompareIps - print "" - $consistent = false - } - - # Validation output of any ssh ipv4 vs ssh ipv6 machine name differences - if ($ssh4CompareSsh6 | is-not-empty) { - print $"(ansi "bg_light_red")WARNING:(ansi reset) Ssh config for public ipv4 \(($ssh4Cfg | length)\) differs from ssh config for public ipv6 hosts \(($ssh6Cfg | length)\)" - print " You may need to run `just save-ssh-config` or `just tf apply` to update the .ssh_config file." - print " Differences found are:" - print $ssh4CompareSsh6 - print "" - $consistent = false - } + let comparisons = [ + { + label: "NixosConfigurations vs SSH hosts", + result: (list-diff $nixosCfg ($ssh4Cfg | get machine) onlyInNixosCfg onlyInSshCfg), + hint: "just save-ssh-config or just tf apply" + } + { + label: "SSH IPv4 vs SSH IPv6 machines", + result: (list-diff ($ssh4Cfg | get machine) ($ssh6Cfg | get machine) onlyInSsh4Cfg onlyInSsh6Cfg), + hint: "just save-ssh-config or just tf apply" + } + { + label: "NixosConfigurations vs IP module machines", + result: (if $hasIpModule { + list-diff $nixosCfg ($moduleIps | get machine) onlyInNixosCfg onlyInIpsModuleCfg + } else {[]}), + hint: "just update-ips" + } + { + label: "SSH public IPv4 vs IP module IPv4 values", + result: (if $hasIpModule { + list-diff ($ssh4Cfg | get pubIpv4) ($moduleIps | get pubIpv4) onlyInSshCfg onlyInIpsModuleCfg + } else {[]}), + hint: "just update-ips" + } + { + label: "SSH public IPv6 vs IP module IPv6 values", + result: (if $hasIpModule { + list-diff ($ssh6Cfg | get pubIpv6) ($moduleIps | get pubIpv6) onlyInSshCfg onlyInIpsModuleCfg + } else {[]}), + hint: "just update-ips" + } + ] - # Validation output of any ssh public ipv4 vs ip module public ipv4 value differences - if ($ssh4CompareIps4 | is-not-empty) { - print $"(ansi "bg_light_red")WARNING:(ansi reset) Ssh config for public ipv4 differs from ip module public ipv4 config:" - print " You may need to run `just update-ips` to update the flake/nixosModules/ips-DONT-COMMIT.nix file." - print " Differences found are:" - print $ssh4CompareIps4 - print "" - $consistent = false - } + let inconsistent = ( + $comparisons + | filter {|comp| $comp.result | is-not-empty } + ) - # Validation output of any ssh public ipv6 vs ip module public ipv6 value differences - if ($ssh6CompareIps6 | is-not-empty) { - print $"(ansi "bg_light_red")WARNING:(ansi reset) Ssh config for public ipv6 differs from ip module public ipv6 config:" - print " You may need to run `just update-ips` to update the flake/nixosModules/ips-DONT-COMMIT.nix file." + $inconsistent | each {|comp| + print $"(ansi "bg_light_red")WARNING:(ansi reset) ($comp.label)" + print $" You may need to run `($comp.hint)`" print " Differences found are:" - print $ssh6CompareIps6 + print $comp.result print "" - $consistent = false } - if ($consistent == true) { + if ($inconsistent | is-empty) { touch $checkFile } } @@ -452,99 +430,74 @@ lint: # List machines list-machines: - #!/usr/bin/env bash + #!/usr/bin/env nu - # Enable polars (dataframe) usage by calling nushell indirectly with a plugins option. - # Otherwise, the plugin registry can't seem to be initialized successfully from within the script. - # Ref: https://github.com/nushell/nushell/issues/14466 - # - # Polars outer join equivalent to pandas dfr can likey be simplified in a future nushell release. - # Ref: https://github.com/nushell/nushell/issues/14572 - nu --plugins [$NUSHELL_PLUGINS_POLARS] -c ' - let nixosNodes = (do -i {^nix eval --json ".#nixosConfigurations" --apply "builtins.attrNames"} | complete) - if $nixosNodes.exit_code != 0 { - print "Nixos failed to evaluate the .#nixosConfigurations attribute." - print "The output was:" - print - print $nixosNodes - exit 1 + def safe-run [block msg] { + let res = (do -i $block | complete) + if $res.exit_code != 0 { + print $msg + print "The output was:" + print + print $res + exit 1 + } + $res.stdout } - {{checkSshConfig}} - - let sshNodes = (do -i {^scj dump /dev/stdout -c .ssh_config} | complete) - if $sshNodes.exit_code != 0 { - print "Ssh-config-json failed to evaluate the .ssh_config file." - print "The output was:" - print - print $sshNodes - exit 1 + def default-row [machine] { + { + Name: $machine, + Nix: $"(ansi green)OK", + pubIpv4: $"(ansi red)--", + pubIpv6: $"(ansi red)--", + Id: $"(ansi red)--", + Type: $"(ansi red)--" + Region: $"(ansi red)--" + } } - let nixosNodesDfr = ( - let nodeList = ($nixosNodes.stdout | from json); - let sanitizedList = (if ($nodeList | is-empty) {$nodeList | insert 0 ""} else {$nodeList}); - - $sanitizedList - | wrap "machine" - | each {|i| insert inNixosCfg {"yes"}} - | polars into-df - ) - - let sshNodesDfr = ( - let ssh4Table = ($sshNodes.stdout - | from json - | where ("HostName" in $it) and not ($it.Host | str ends-with ".ipv6") - | select Host HostName - | rename Host pubIpv4 - ); - - let ssh6Table = ($sshNodes.stdout - | from json - | where ("HostName" in $it) and ($it.Host | str ends-with ".ipv6") - | select Host HostName - | rename Host pubIpv6 - | update Host {$in | str replace ".ipv6" ""} - | update pubIpv6 {if ($in == "unavailable.ipv6") {null} else {$in}} - | select Host pubIpv6 - ); - - let sshTable = ($ssh4Table - | polars into-df - | polars join -f ($ssh6Table | polars into-df) Host Host - | polars into-nu - | update Host {|i| default $i.Host_x} - | reject Host_x - | polars into-df - ); - - if ($sshTable | is-empty) { - [[Host pubIpv4 pubIpv6]; ["" "" ""]] | polars into-df - } - else { - $sshTable - } - ) + def main [] { + {{checkSshConfig}} + + let nixosJson = (safe-run { ^nix eval --json ".#nixosConfigurations" --apply "builtins.attrNames" } "Nix eval failed.") + let sshJson = (safe-run { ^scj dump /dev/stdout -c .ssh_config } "scj failed.") + + let baseTable = ($nixosJson | from json | each { |it| default-row $it }) + let sshTable = ($sshJson | from json | where {|e| $e | get -i HostName | is-not-empty } | reject -i ProxyCommand) + + let mergeTable = ( + $sshTable | reduce --fold $baseTable { |it, acc| + let host = $it.Host + let hostData = $it.HostName + let machine = ($host | str replace -r '\.ipv(4|6)$' '') + + let update = if ($host | str ends-with ".ipv4") { + { pubIpv4: $hostData, Region: $it.Tag } + } else if ($host | str ends-with ".ipv6") { + { pubIpv6: $hostData } + } else { + { Id: $hostData, Type: $it.Tag } + } + + if ($acc | any {|row| $row.Name == $machine }) { + $acc | each {|row| + if $row.Name == $machine { + $row | merge $update + } else { + $row + } + } + } else { + $acc ++ [ (default-row $machine | merge $update) ] + } + } + ) - ( - $nixosNodesDfr - | polars join -f $sshNodesDfr machine Host - | polars into-nu - | update machine {|i| default $i.Host} - | reject Host - | polars into-df - | polars sort-by machine - | polars into-nu - | update inNixosCfg {if $in == null {$"(ansi bg_red)Missing(ansi reset)"} else {$in}} - | update pubIpv4 {if $in == null {$"(ansi bg_red)Missing(ansi reset)"} else {$in}} - | update pubIpv6 {|row| - if ( - (($row.inNixosCfg | str contains "Missing") or ($row.pubIpv4 | str contains "Missing")) - and - ($row.pubIpv6 == null) - ) {$"(ansi bg_red)Missing(ansi reset)"} else {$in}} - | where machine != "" - )' + $mergeTable + | sort-by Name + | enumerate + | each { |r| { index: ($r.index + 1) } | merge $r.item } + } # Check mimir required config mimir-alertmanager-bootstrap: @@ -840,18 +793,17 @@ ssh-config-example: ServerAliveInterval 60 Host machine-example-1 - HostName 1.2.3.4 + HostName i-EXAMPLE_AWS_EC2ID # Per host customization should come after the HostName line to preserve pattern parsing - ProxyJump machine-example-2 + ProxyCommand sh -c "aws --region eu-central-1 ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'" + Tag t3a.medium - Host machine-example-1.ipv6 - HostName ff00::01 - - Host machine-example-2 + Host machine-example-1.ipv4 HostName 1.2.3.5 + Tag eu-central-1 - Host machine-example-2.ipv6 - HostName unavailable.ipv6 + Host machine-example-1.ipv6 + HostName ff00::01 EOF # Ssh using cluster bootstrap key @@ -865,35 +817,63 @@ ssh-bootstrap HOSTNAME *ARGS: ssh-for-all *ARGS: #!/usr/bin/env nu let nodes = (nix eval --json '.#nixosConfigurations' --apply builtins.attrNames | from json) - $nodes | par-each {|node| just ssh -q $node {{ARGS}}} + $nodes | par-each {|node| + let result = (do -i { ^just ssh -q $node {{ARGS}} } | complete) + { + index: $node, + result: $result + } + } # Ssh for select ssh-for-each HOSTNAMES *ARGS: colmena exec --verbose --parallel 0 --on {{HOSTNAMES}} {{ARGS}} -# List machine ips based on regex pattern -ssh-list-ips PATTERN: - #!/usr/bin/env nu - scj dump /dev/stdout -c .ssh_config - | from json - | default "" Host - | default "" HostName - | where not ($it.Host | str ends-with ".ipv6") - | where Host =~ "{{PATTERN}}" - | get HostName - | str join " " - -# List machine names based on regex pattern -ssh-list-names PATTERN: +# List machine id, ipv4, ipv6, name or region based on regex pattern +ssh-list TYPE PATTERN: #!/usr/bin/env nu - scj dump /dev/stdout -c .ssh_config - | from json - | default "" Host - | default "" HostName - | where not ($it.Host | str ends-with ".ipv6") - | where Host =~ "{{PATTERN}}" - | get Host - | str join " " + const type = "{{TYPE}}" + + let sshCfg = ( + scj dump /dev/stdout -c .ssh_config + | from json + | default "" Host + | default "" HostName + ) + + if ($type == "id") { + $sshCfg + | where not ($it.Host =~ ".ipv(4|6)$") + | where Host =~ "{{PATTERN}}" + | get HostName + | str join " " + } else if ($type == "ipv4") { + $sshCfg + | where ($it.Host =~ ".ipv4$") + | where Host =~ "{{PATTERN}}" + | get HostName + | str join " " + } else if ($type == "ipv6") { + $sshCfg + | where ($it.Host =~ ".ipv6$") + | where Host =~ "{{PATTERN}}" + | get HostName + | str join " " + } else if ($type == "name") { + $sshCfg + | where not ($it.Host =~ ".ipv(4|6)$") + | where Host =~ "{{PATTERN}}" + | get Host + | str join " " + } else if ($type == "region") { + $sshCfg + | where ($it.Host =~ ".ipv4$") + | where Host =~ "{{PATTERN}}" + | get Tag + | str join " " + } else { + print "The TYPE must be one of: id, ipv4, ipv6, name or region" + } # Start a local node for a specific env start-node ENV: diff --git a/docs/environments-pre/preprod b/docs/environments-pre/preprod deleted file mode 120000 index 86c0f4a1..00000000 --- a/docs/environments-pre/preprod +++ /dev/null @@ -1 +0,0 @@ -../environments/preprod \ No newline at end of file diff --git a/docs/environments-pre/preprod/alonzo-genesis.json b/docs/environments-pre/preprod/alonzo-genesis.json new file mode 100644 index 00000000..0fd90dee --- /dev/null +++ b/docs/environments-pre/preprod/alonzo-genesis.json @@ -0,0 +1,196 @@ +{ + "lovelacePerUTxOWord": 34482, + "executionPrices": { + "prSteps": + { + "numerator" : 721, + "denominator" : 10000000 + }, + "prMem": + { + "numerator" : 577, + "denominator" : 10000 + } + }, + "maxTxExUnits": { + "exUnitsMem": 10000000, + "exUnitsSteps": 10000000000 + }, + "maxBlockExUnits": { + "exUnitsMem": 50000000, + "exUnitsSteps": 40000000000 + }, + "maxValueSize": 5000, + "collateralPercentage": 150, + "maxCollateralInputs": 3, + "costModels": { + "PlutusV1": { + "sha2_256-memory-arguments": 4, + "equalsString-cpu-arguments-constant": 1000, + "cekDelayCost-exBudgetMemory": 100, + "lessThanEqualsByteString-cpu-arguments-intercept": 103599, + "divideInteger-memory-arguments-minimum": 1, + "appendByteString-cpu-arguments-slope": 621, + "blake2b-cpu-arguments-slope": 29175, + "iData-cpu-arguments": 150000, + "encodeUtf8-cpu-arguments-slope": 1000, + "unBData-cpu-arguments": 150000, + "multiplyInteger-cpu-arguments-intercept": 61516, + "cekConstCost-exBudgetMemory": 100, + "nullList-cpu-arguments": 150000, + "equalsString-cpu-arguments-intercept": 150000, + "trace-cpu-arguments": 150000, + "mkNilData-memory-arguments": 32, + "lengthOfByteString-cpu-arguments": 150000, + "cekBuiltinCost-exBudgetCPU": 29773, + "bData-cpu-arguments": 150000, + "subtractInteger-cpu-arguments-slope": 0, + "unIData-cpu-arguments": 150000, + "consByteString-memory-arguments-intercept": 0, + "divideInteger-memory-arguments-slope": 1, + "divideInteger-cpu-arguments-model-arguments-slope": 118, + "listData-cpu-arguments": 150000, + "headList-cpu-arguments": 150000, + "chooseData-memory-arguments": 32, + "equalsInteger-cpu-arguments-intercept": 136542, + "sha3_256-cpu-arguments-slope": 82363, + "sliceByteString-cpu-arguments-slope": 5000, + "unMapData-cpu-arguments": 150000, + "lessThanInteger-cpu-arguments-intercept": 179690, + "mkCons-cpu-arguments": 150000, + "appendString-memory-arguments-intercept": 0, + "modInteger-cpu-arguments-model-arguments-slope": 118, + "ifThenElse-cpu-arguments": 1, + "mkNilPairData-cpu-arguments": 150000, + "lessThanEqualsInteger-cpu-arguments-intercept": 145276, + "addInteger-memory-arguments-slope": 1, + "chooseList-memory-arguments": 32, + "constrData-memory-arguments": 32, + "decodeUtf8-cpu-arguments-intercept": 150000, + "equalsData-memory-arguments": 1, + "subtractInteger-memory-arguments-slope": 1, + "appendByteString-memory-arguments-intercept": 0, + "lengthOfByteString-memory-arguments": 4, + "headList-memory-arguments": 32, + "listData-memory-arguments": 32, + "consByteString-cpu-arguments-intercept": 150000, + "unIData-memory-arguments": 32, + "remainderInteger-memory-arguments-minimum": 1, + "bData-memory-arguments": 32, + "lessThanByteString-cpu-arguments-slope": 248, + "encodeUtf8-memory-arguments-intercept": 0, + "cekStartupCost-exBudgetCPU": 100, + "multiplyInteger-memory-arguments-intercept": 0, + "unListData-memory-arguments": 32, + "remainderInteger-cpu-arguments-model-arguments-slope": 118, + "cekVarCost-exBudgetCPU": 29773, + "remainderInteger-memory-arguments-slope": 1, + "cekForceCost-exBudgetCPU": 29773, + "sha2_256-cpu-arguments-slope": 29175, + "equalsInteger-memory-arguments": 1, + "indexByteString-memory-arguments": 1, + "addInteger-memory-arguments-intercept": 1, + "chooseUnit-cpu-arguments": 150000, + "sndPair-cpu-arguments": 150000, + "cekLamCost-exBudgetCPU": 29773, + "fstPair-cpu-arguments": 150000, + "quotientInteger-memory-arguments-minimum": 1, + "decodeUtf8-cpu-arguments-slope": 1000, + "lessThanInteger-memory-arguments": 1, + "lessThanEqualsInteger-cpu-arguments-slope": 1366, + "fstPair-memory-arguments": 32, + "modInteger-memory-arguments-intercept": 0, + "unConstrData-cpu-arguments": 150000, + "lessThanEqualsInteger-memory-arguments": 1, + "chooseUnit-memory-arguments": 32, + "sndPair-memory-arguments": 32, + "addInteger-cpu-arguments-intercept": 197209, + "decodeUtf8-memory-arguments-slope": 8, + "equalsData-cpu-arguments-intercept": 150000, + "mapData-cpu-arguments": 150000, + "mkPairData-cpu-arguments": 150000, + "quotientInteger-cpu-arguments-constant": 148000, + "consByteString-memory-arguments-slope": 1, + "cekVarCost-exBudgetMemory": 100, + "indexByteString-cpu-arguments": 150000, + "unListData-cpu-arguments": 150000, + "equalsInteger-cpu-arguments-slope": 1326, + "cekStartupCost-exBudgetMemory": 100, + "subtractInteger-cpu-arguments-intercept": 197209, + "divideInteger-cpu-arguments-model-arguments-intercept": 425507, + "divideInteger-memory-arguments-intercept": 0, + "cekForceCost-exBudgetMemory": 100, + "blake2b-cpu-arguments-intercept": 2477736, + "remainderInteger-cpu-arguments-constant": 148000, + "tailList-cpu-arguments": 150000, + "encodeUtf8-cpu-arguments-intercept": 150000, + "equalsString-cpu-arguments-slope": 1000, + "lessThanByteString-memory-arguments": 1, + "multiplyInteger-cpu-arguments-slope": 11218, + "appendByteString-cpu-arguments-intercept": 396231, + "lessThanEqualsByteString-cpu-arguments-slope": 248, + "modInteger-memory-arguments-slope": 1, + "addInteger-cpu-arguments-slope": 0, + "equalsData-cpu-arguments-slope": 10000, + "decodeUtf8-memory-arguments-intercept": 0, + "chooseList-cpu-arguments": 150000, + "constrData-cpu-arguments": 150000, + "equalsByteString-memory-arguments": 1, + "cekApplyCost-exBudgetCPU": 29773, + "quotientInteger-memory-arguments-slope": 1, + "verifySignature-cpu-arguments-intercept": 3345831, + "unMapData-memory-arguments": 32, + "mkCons-memory-arguments": 32, + "sliceByteString-memory-arguments-slope": 1, + "sha3_256-memory-arguments": 4, + "ifThenElse-memory-arguments": 1, + "mkNilPairData-memory-arguments": 32, + "equalsByteString-cpu-arguments-slope": 247, + "appendString-cpu-arguments-intercept": 150000, + "quotientInteger-cpu-arguments-model-arguments-slope": 118, + "cekApplyCost-exBudgetMemory": 100, + "equalsString-memory-arguments": 1, + "multiplyInteger-memory-arguments-slope": 1, + "cekBuiltinCost-exBudgetMemory": 100, + "remainderInteger-memory-arguments-intercept": 0, + "sha2_256-cpu-arguments-intercept": 2477736, + "remainderInteger-cpu-arguments-model-arguments-intercept": 425507, + "lessThanEqualsByteString-memory-arguments": 1, + "tailList-memory-arguments": 32, + "mkNilData-cpu-arguments": 150000, + "chooseData-cpu-arguments": 150000, + "unBData-memory-arguments": 32, + "blake2b-memory-arguments": 4, + "iData-memory-arguments": 32, + "nullList-memory-arguments": 32, + "cekDelayCost-exBudgetCPU": 29773, + "subtractInteger-memory-arguments-intercept": 1, + "lessThanByteString-cpu-arguments-intercept": 103599, + "consByteString-cpu-arguments-slope": 1000, + "appendByteString-memory-arguments-slope": 1, + "trace-memory-arguments": 32, + "divideInteger-cpu-arguments-constant": 148000, + "cekConstCost-exBudgetCPU": 29773, + "encodeUtf8-memory-arguments-slope": 8, + "quotientInteger-cpu-arguments-model-arguments-intercept": 425507, + "mapData-memory-arguments": 32, + "appendString-cpu-arguments-slope": 1000, + "modInteger-cpu-arguments-constant": 148000, + "verifySignature-cpu-arguments-slope": 1, + "unConstrData-memory-arguments": 32, + "quotientInteger-memory-arguments-intercept": 0, + "equalsByteString-cpu-arguments-constant": 150000, + "sliceByteString-memory-arguments-intercept": 0, + "mkPairData-memory-arguments": 32, + "equalsByteString-cpu-arguments-intercept": 112536, + "appendString-memory-arguments-slope": 1, + "lessThanInteger-cpu-arguments-slope": 497, + "modInteger-cpu-arguments-model-arguments-intercept": 425507, + "modInteger-memory-arguments-minimum": 1, + "sha3_256-cpu-arguments-intercept": 0, + "verifySignature-memory-arguments": 1, + "cekLamCost-exBudgetMemory": 100, + "sliceByteString-cpu-arguments-intercept": 150000 + } + } +} diff --git a/docs/environments-pre/preprod/byron-genesis.json b/docs/environments-pre/preprod/byron-genesis.json new file mode 100644 index 00000000..23425788 --- /dev/null +++ b/docs/environments-pre/preprod/byron-genesis.json @@ -0,0 +1,117 @@ +{ "bootStakeholders": + { "05d1c10e4bf3cdd4de54712531c53be75a1609b25f396ffbbe5becf1": 1 + , "3bf1193b19be416283b8c0516d2f8b80939ffccb1c9b05946f54c83a": 1 + , "7bdd769bd872e8e6336c23f1e566c19a96e72137174b891fad9f4b99": 1 + , "9ddc1e29c59df0ddd9347fe8b8a736d247f286414684eddc02885348": 1 + , "a118c0d2737c8a77c0d982a0d299bc42614cea4e0c23614ba24a05ca": 1 + , "b0b2df3c9cf4dfe2ae04409913b3c3125509acbbfa0722449570aaeb": 1 + , "e0a65f21229e44c2bf6eec5b14e2775003b674ae53de18d22814346a": 1 + } +, "heavyDelegation": + { "05d1c10e4bf3cdd4de54712531c53be75a1609b25f396ffbbe5becf1": + { "omega": 0 + , "issuerPk": + "UFsjehyxQAIMxEL25RxqD0itM0RCdzWprVt1W+zopM5b7U9ru9AMr/zf9lAjWaFlNOpRgrrbz7r5tRbt8wUmSg==" + , "delegatePk": + "iwlg0jS9pn1SQyxdGiasor+1uaCflm2Vkqe/DHKKHs2EDqxcP+in7doCSnQDttN3BZkIKLNUgzKj+FAiHCCYvw==" + , "cert": + "633fc347138ee155d038b9d1040ee1e45cea5b1e8627046c95f7fe4ba949b0569437962568eadef9d49e22becbf30192425c008d10e03004612633dbc307340b" + } + , "3bf1193b19be416283b8c0516d2f8b80939ffccb1c9b05946f54c83a": + { "omega": 0 + , "issuerPk": + "pAIACMG6WCa4mz0tVoeekLXYuWkdxk/rgDuZ/x7ugh3CvEuhpGf2LRRRWilaGdraH1sCbnuMCmAHrBTbPDFmxA==" + , "delegatePk": + "0ajebKqP2bF1xZhi7N1avNBHe4S4Kg5S+uzGs8hRAKR1IW/7ZOp0U3AhQFuzKLD3BuSq1xV3leMWeBzKEg2slg==" + , "cert": + "eb5c4d76c7bfca2ab790a76f7dc4c6d9f7d0956d4af3b8c649804ef98beeb138d8916982c9142747b7a07e69f52b2c3776d64a7d74494e0f72eefaebf6bf5d07" + } + , "7bdd769bd872e8e6336c23f1e566c19a96e72137174b891fad9f4b99": + { "omega": 0 + , "issuerPk": + "P7JjeSPHjexNW5MsCaySrURaqV2gCgXttEe0CgfFnVZFGHaS9A4xEUrQ83VTLPjk+HV0Di19DjQ+DhS1M6Mf7A==" + , "delegatePk": + "jvMgwt9mVKYYjEXpxjnApoa/WoZSlVh9OZ3+sF/nSrZ5YaaWsmjIvOyTcrxzqpsTZewAez36BTnqwA0VSjFRjA==" + , "cert": + "9ef9f0e5ca23cd9365ec7a23f1b2d159da0d58e0242cb817c3bc946ba1c9e3629f1976f09a88370247bbc458c810d21a889e3ff6dd189ceea784bc9ab6dc9b0a" + } + , "9ddc1e29c59df0ddd9347fe8b8a736d247f286414684eddc02885348": + { "omega": 0 + , "issuerPk": + "Xro6BbV6hMh3RTZnst4ABhtQ2vr83YPXoLfQ8JWeunvvcuudGBQvLeqwVfGXrBWoMOOKroFV48ygfSEq2xhREA==" + , "delegatePk": + "mq5iXU0VvLNzPUIOBk8c0zjzhuCvBJ/NQrRVpp0orTZkg9F3uiuAG0E24NZmLl6eCiTyyAoOeNTCNbTAjyAfTA==" + , "cert": + "939dcfe5555ee661b9db5d817a70d5c3fa9d1d97c2ae5849696d915606b530f7e9edda5d02a01e61524a766f9c356084616ba058a3de70ea51bf29cd187a5f07" + } + , "a118c0d2737c8a77c0d982a0d299bc42614cea4e0c23614ba24a05ca": + { "omega": 0 + , "issuerPk": + "eqAAtu1X79MxCSa/i/RSApLGsnhDYqLJLu93f3wSzR5/M7calZS8DHFrAtJgzYbkg9nwKF1HQQ8bO/1LOJ9O4w==" + , "delegatePk": + "lCuzqqsPZEK5BrZbpt2/eWnKpmLZCWiSYhGj1WUy8R2OjLStw/UDT7xiV/pbEIZoncfQJN9yJqpQH8KOui0fYw==" + , "cert": + "b96ad354a6989df5de8d0888414843736d0a4a6626a1e595e8785a70b10a38eb4632159aabf84959983e8852fd4d390eba6c423fac8ea117913cec46353bd90e" + } + , "b0b2df3c9cf4dfe2ae04409913b3c3125509acbbfa0722449570aaeb": + { "omega": 0 + , "issuerPk": + "Y+Vaj0IaMeq0+oWjQr5hiEl4Ek+cWsKq7mufTO4wue2R6A6AMlqEDIV7vYsd3NZWomG5DGcwSAw2Ev1Mz26LIA==" + , "delegatePk": + "YYtiXfMN5TiV/ynno3cNylbC/wZtSqBaaXGQXe7O9tu33RDqH5F15Sk+reyXvxaxZ683mns+1K8DLNB7mezB6g==" + , "cert": + "ca38e688e759183b57d08ca6568248b91c8ddd81e56d0d31c3f3a26eca35754387c5f301ef017dafae453a93757d39a0e2d326ebe59cf31d5c1b22fc8616ac00" + } + , "e0a65f21229e44c2bf6eec5b14e2775003b674ae53de18d22814346a": + { "omega": 0 + , "issuerPk": + "vynbl3q/BFvwehgMzpp3NoWOuN5RwDUYCbNop0RR0jlEXomgPOrlXCwMTrwrI8Dcfzq5q1fK/1hOfv9IwDMPAA==" + , "delegatePk": + "1N1ppBBxvC3I5kqX9L1jeVJM4MK2ZXKAQ6Bn400+IYr4mh4zTYciCsTJTyvY8IKIBBEcT3GYW6ZlaYy7XbY5kg==" + , "cert": + "82b10bbea2dd80441315230354e3e4af0ac87d02c9e6424fc9432be21a6183c81555d3a1b373566aef7a8065a126d57c42629be780becc61bc1b8f3ce5b5170d" + } + } +, "startTime": 1654041600 +, "nonAvvmBalances": + { "FHnt4NL7yPXhCzCHVywZLqVsvwuG3HvwmjKXQJBrXh3h2aigv6uxkePbpzRNV8q": + "0" + , "FHnt4NL7yPXuJGViM3KwSPwrwECD9q5vNetX3QJDYRWgiX3RHi5i5VV32dnETDK": + "0" + , "FHnt4NL7yPXuYUxBF33VX5dZMBDAab2kvSNLRzCskvuKNCSDknzrQvKeQhGUw5a": + "30000000000000000" + , "FHnt4NL7yPY8exfnuJ8ACyoU7xCN93tKXSv357UrTp1nddGbkWxJpQfrt62xYFX": + "0" + , "FHnt4NL7yPYFpVcAXZADrKdsqCAFvcRFYkTcqkn2guGmj8akQMiMVjhSUECvD1F": + "0" + , "FHnt4NL7yPYH2vP2FLEfH2pt3K6meM7fgtjRiLBidaqpP5ogPzxLNsZy68e1KdW": + "0" + , "FHnt4NL7yPYHrcxPtPufYYFWLhqvHGnZ5NFSz2KZpWQgSq4VLsUgWnkEmfUtd1E": + "0" + , "FHnt4NL7yPYJiN5Y8VsQr6LP6YgN51BHBPegNjVwKkq6AooCkbTpfZ2bqkVkfXU": + "0" + } +, "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": 1 } +, "avvmDistr": {} +} \ No newline at end of file diff --git a/docs/environments-pre/preprod/config-bp.json b/docs/environments-pre/preprod/config-bp.json new file mode 100644 index 00000000..9ec24c75 --- /dev/null +++ b/docs/environments-pre/preprod/config-bp.json @@ -0,0 +1,114 @@ +{ + "AlonzoGenesisFile": "alonzo-genesis.json", + "AlonzoGenesisHash": "7e94a15f55d1e82d10f09203fa1d40f8eede58fd8066542cf6566008068ed874", + "ByronGenesisFile": "byron-genesis.json", + "ByronGenesisHash": "d4b8de7a11d929a323373cbab6c1a9bdc931beffff11db111cf9d57356ee1937", + "ConsensusMode": "GenesisMode", + "ConwayGenesisFile": "conway-genesis.json", + "ConwayGenesisHash": "0eb6adaec3fcb1fe286c1b4ae0da2a117eafc3add51e17577d36dd39eddfc3db", + "EnableP2P": true, + "LastKnownBlockVersion-Alt": 0, + "LastKnownBlockVersion-Major": 2, + "LastKnownBlockVersion-Minor": 0, + "LedgerDB": { + "Backend": "V2InMemory", + "NumOfDiskSnapshots": 2, + "QueryBatchSize": 100000, + "SnapshotInterval": 4320 + }, + "MinNodeVersion": "10.4.0", + "PeerSharing": false, + "Protocol": "Cardano", + "RequiresNetworkMagic": "RequiresMagic", + "ShelleyGenesisFile": "shelley-genesis.json", + "ShelleyGenesisHash": "162d29c4e1cf6b8a84f2d692e67a3ac6bc7851bc3e6e4afe64d15778bed8bd86", + "TargetNumberOfKnownPeers": 100, + "TargetNumberOfRootPeers": 100, + "TraceAcceptPolicy": true, + "TraceBlockFetchClient": false, + "TraceBlockFetchDecisions": false, + "TraceBlockFetchProtocol": false, + "TraceBlockFetchProtocolSerialised": false, + "TraceBlockFetchServer": false, + "TraceChainDb": true, + "TraceChainSyncBlockServer": false, + "TraceChainSyncClient": false, + "TraceChainSyncHeaderServer": false, + "TraceChainSyncProtocol": false, + "TraceConnectionManager": true, + "TraceDNSResolver": true, + "TraceDNSSubscription": true, + "TraceDiffusionInitialization": true, + "TraceErrorPolicy": true, + "TraceForge": true, + "TraceHandshake": true, + "TraceInboundGovernor": true, + "TraceIpSubscription": true, + "TraceLedgerPeers": true, + "TraceLocalChainSyncProtocol": false, + "TraceLocalConnectionManager": true, + "TraceLocalErrorPolicy": true, + "TraceLocalHandshake": true, + "TraceLocalRootPeers": true, + "TraceLocalTxSubmissionProtocol": false, + "TraceLocalTxSubmissionServer": false, + "TraceMempool": true, + "TraceMux": false, + "TracePeerSelection": true, + "TracePeerSelectionActions": true, + "TracePublicRootPeers": true, + "TraceServer": true, + "TraceTxInbound": false, + "TraceTxOutbound": false, + "TraceTxSubmissionProtocol": false, + "TracingVerbosity": "NormalVerbosity", + "TurnOnLogMetrics": true, + "TurnOnLogging": true, + "UseTraceDispatcher": false, + "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/docs/environments-pre/preprod/config.json b/docs/environments-pre/preprod/config.json new file mode 100644 index 00000000..e75408fe --- /dev/null +++ b/docs/environments-pre/preprod/config.json @@ -0,0 +1,112 @@ +{ + "AlonzoGenesisFile": "alonzo-genesis.json", + "AlonzoGenesisHash": "7e94a15f55d1e82d10f09203fa1d40f8eede58fd8066542cf6566008068ed874", + "ByronGenesisFile": "byron-genesis.json", + "ByronGenesisHash": "d4b8de7a11d929a323373cbab6c1a9bdc931beffff11db111cf9d57356ee1937", + "ConsensusMode": "GenesisMode", + "ConwayGenesisFile": "conway-genesis.json", + "ConwayGenesisHash": "0eb6adaec3fcb1fe286c1b4ae0da2a117eafc3add51e17577d36dd39eddfc3db", + "EnableP2P": true, + "LastKnownBlockVersion-Alt": 0, + "LastKnownBlockVersion-Major": 2, + "LastKnownBlockVersion-Minor": 0, + "LedgerDB": { + "Backend": "V2InMemory", + "NumOfDiskSnapshots": 2, + "QueryBatchSize": 100000, + "SnapshotInterval": 4320 + }, + "MinNodeVersion": "10.4.0", + "PeerSharing": true, + "Protocol": "Cardano", + "RequiresNetworkMagic": "RequiresMagic", + "ShelleyGenesisFile": "shelley-genesis.json", + "ShelleyGenesisHash": "162d29c4e1cf6b8a84f2d692e67a3ac6bc7851bc3e6e4afe64d15778bed8bd86", + "TraceAcceptPolicy": true, + "TraceBlockFetchClient": false, + "TraceBlockFetchDecisions": false, + "TraceBlockFetchProtocol": false, + "TraceBlockFetchProtocolSerialised": false, + "TraceBlockFetchServer": false, + "TraceChainDb": true, + "TraceChainSyncBlockServer": false, + "TraceChainSyncClient": false, + "TraceChainSyncHeaderServer": false, + "TraceChainSyncProtocol": false, + "TraceConnectionManager": true, + "TraceDNSResolver": true, + "TraceDNSSubscription": true, + "TraceDiffusionInitialization": true, + "TraceErrorPolicy": true, + "TraceForge": true, + "TraceHandshake": true, + "TraceInboundGovernor": true, + "TraceIpSubscription": true, + "TraceLedgerPeers": true, + "TraceLocalChainSyncProtocol": false, + "TraceLocalConnectionManager": true, + "TraceLocalErrorPolicy": true, + "TraceLocalHandshake": true, + "TraceLocalRootPeers": true, + "TraceLocalTxSubmissionProtocol": false, + "TraceLocalTxSubmissionServer": false, + "TraceMempool": true, + "TraceMux": false, + "TracePeerSelection": true, + "TracePeerSelectionActions": true, + "TracePublicRootPeers": true, + "TraceServer": true, + "TraceTxInbound": false, + "TraceTxOutbound": false, + "TraceTxSubmissionProtocol": false, + "TracingVerbosity": "NormalVerbosity", + "TurnOnLogMetrics": true, + "TurnOnLogging": true, + "UseTraceDispatcher": false, + "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/docs/environments-pre/preprod/conway-genesis.json b/docs/environments-pre/preprod/conway-genesis.json new file mode 100644 index 00000000..09c77b4d --- /dev/null +++ b/docs/environments-pre/preprod/conway-genesis.json @@ -0,0 +1,303 @@ +{ + "poolVotingThresholds": { + "committeeNormal": 0.51, + "committeeNoConfidence": 0.51, + "hardForkInitiation": 0.51, + "motionNoConfidence": 0.51, + "ppSecurityGroup": 0.51 + }, + "dRepVotingThresholds": { + "motionNoConfidence": 0.67, + "committeeNormal": 0.67, + "committeeNoConfidence": 0.6, + "updateToConstitution": 0.75, + "hardForkInitiation": 0.6, + "ppNetworkGroup": 0.67, + "ppEconomicGroup": 0.67, + "ppTechnicalGroup": 0.67, + "ppGovGroup": 0.75, + "treasuryWithdrawal": 0.67 + }, + "committeeMinSize": 7, + "committeeMaxTermLength": 146, + "govActionLifetime": 6, + "govActionDeposit": 100000000000, + "dRepDeposit": 500000000, + "dRepActivity": 20, + "minFeeRefScriptCostPerByte": 15, + "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 + ], + "constitution": { + "anchor": { + "dataHash": "ca41a91f399259bcefe57f9858e91f6d00e1a38d6d9c63d4052914ea7bd70cb2", + "url": "ipfs://bafkreifnwj6zpu3ixa4siz2lndqybyc5wnnt3jkwyutci4e2tmbnj3xrdm" + }, + "script": "fa24fb305126805cf2164c161d852a0e7330cf988f1fe558cf7d4a64" + }, + "committee": { + "members": { + "scriptHash-a6a5e006fd4e8f51062dc431362369b2a43140abced8aa2ff2256d7b": 229, + "scriptHash-6095e643ea6f1cccb6e463ec34349026b3a48621aac5d512655ab1bf": 229, + "scriptHash-94c0de47e7ae32e3f7234ada5cf976506b68e3bb88c54dc53b4ba984": 229, + "scriptHash-5098dfd0deba725fadd692198fc33ee959fbe7e6edf1b5a695e06e61": 229, + "scriptHash-5a71f17f4ce4c1c0be053575d717ade6ad8a1d5453d02a65ce40d4b1": 229, + "scriptHash-2f4a6c6f098e20ee4bfd5b39942c164575f8ceb348e754df5d0ec04f": 229, + "scriptHash-94f51c795a6c11adb9c1e30f0b6def4230cbd0b8bc800098e2d2307b": 229 + }, + "threshold": { + "numerator": 2, + "denominator": 3 + } + } +} diff --git a/docs/environments-pre/preprod/db-sync-config.json b/docs/environments-pre/preprod/db-sync-config.json new file mode 100644 index 00000000..02d768a0 --- /dev/null +++ b/docs/environments-pre/preprod/db-sync-config.json @@ -0,0 +1,115 @@ +{ + "EnableFutureGenesis": true, + "EnableLogMetrics": false, + "EnableLogging": true, + "NetworkName": "preprod", + "NodeConfigFile": "config.json", + "PrometheusPort": 8080, + "RequiresNetworkMagic": "RequiresMagic", + "defaultBackends": [ + "KatipBK" + ], + "defaultScribes": [ + [ + "StdoutSK", + "stdout" + ] + ], + "minSeverity": "Info", + "options": { + "cfokey": { + "value": "Release-1.0.0" + }, + "mapBackends": {}, + "mapSeverity": { + "db-sync-node": "Info", + "db-sync-node.Mux": "Error", + "db-sync-node.Subscription": "Error" + }, + "mapSubtrace": { + "#ekgview": { + "contents": [ + [ + { + "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": "Contains" + } + ] + ], + [ + { + "contents": "#ekgview.#aggregation.cardano.epoch-validation.benchmark", + "tag": "StartsWith" + }, + [ + { + "contents": "diff.RTS.gcNum.timed.", + "tag": "Contains" + } + ] + ] + ], + "subtrace": "FilterTrace" + }, + "#messagecounters.aggregation": { + "subtrace": "NoTrace" + }, + "#messagecounters.ekgview": { + "subtrace": "NoTrace" + }, + "#messagecounters.katip": { + "subtrace": "NoTrace" + }, + "#messagecounters.monitoring": { + "subtrace": "NoTrace" + }, + "#messagecounters.switchboard": { + "subtrace": "NoTrace" + }, + "benchmark": { + "contents": [ + "GhcRtsStats", + "MonotonicClock" + ], + "subtrace": "ObservableTrace" + }, + "cardano.epoch-validation.utxo-stats": { + "subtrace": "NoTrace" + } + } + }, + "rotation": { + "rpKeepFilesNum": 10, + "rpLogLimitBytes": 5000000, + "rpMaxAgeHours": 24 + }, + "setupBackends": [ + "AggregationBK", + "KatipBK" + ], + "setupScribes": [ + { + "scFormat": "ScText", + "scKind": "StdoutSK", + "scName": "stdout", + "scRotation": null + } + ] +} diff --git a/docs/environments-pre/preprod/guardrails-script.plutus b/docs/environments-pre/preprod/guardrails-script.plutus new file mode 100644 index 00000000..b6af50ac --- /dev/null +++ b/docs/environments-pre/preprod/guardrails-script.plutus @@ -0,0 +1,5 @@ +{ + "type": "PlutusScriptV3", + "description": "", + "cborHex": "5908545908510101003232323232323232323232323232323232323232323232323232323232323232323232323232323232259323255333573466e1d20000011180098111bab357426ae88d55cf00104554ccd5cd19b87480100044600422c6aae74004dd51aba1357446ae88d55cf1baa3255333573466e1d200a35573a002226ae84d5d11aab9e00111637546ae84d5d11aba235573c6ea800642b26006003149a2c8a4c301f801c0052000c00e0070018016006901e4070c00e003000c00d20d00fc000c0003003800a4005801c00e003002c00d20c09a0c80e1801c006001801a4101b5881380018000600700148013003801c006005801a410100078001801c006001801a4101001f8001800060070014801b0038018096007001800600690404002600060001801c0052008c00e006025801c006001801a41209d8001800060070014802b003801c006005801a410112f501c3003800c00300348202b7881300030000c00e00290066007003800c00b003482032ad7b806038403060070014803b00380180960003003800a4021801c00e003002c00d20f40380e1801c006001801a41403f800100a0c00e0029009600f0030078040c00e002900a600f003800c00b003301a483403e01a600700180060066034904801e00060001801c0052016c01e00600f801c006001801980c2402900e30000c00e002901060070030128060c00e00290116007003800c00b003483c0ba03860070018006006906432e00040283003800a40498003003800a404d802c00e00f003800c00b003301a480cb0003003800c003003301a4802b00030001801c01e0070018016006603490605c0160006007001800600660349048276000600030000c00e0029014600b003801c00c04b003800c00300348203a2489b00030001801c00e006025801c006001801a4101b11dc2df80018000c0003003800a4055802c00e007003012c00e003000c00d2080b8b872c000c0006007003801809600700180060069040607e4155016000600030000c00e00290166007003012c00e003000c00d2080c001c000c0003003800a405d801c00e003002c00d20c80180e1801c006001801a412007800100a0c00e00290186007003013c0006007001480cb005801801e006003801800e00600500403003800a4069802c00c00f003001c00c007003803c00e003002c00c05300333023480692028c0004014c00c00b003003c00c00f003003c00e00f003800c00b00301480590052008003003800a406d801c00e003002c00d2000c00d2006c00060070018006006900a600060001801c0052038c00e007001801600690006006901260003003800c003003483281300020141801c005203ac00e006027801c006001801a403d800180006007001480f3003801804e00700180060069040404af3c4e302600060001801c005203ec00e006013801c006001801a4101416f0fd20b80018000600700148103003801c006005801a403501c3003800c0030034812b00030000c00e0029021600f003800c00a01ac00e003000c00ccc08d20d00f4800b00030000c0000000000803c00c016008401e006009801c006001801807e0060298000c000401e006007801c0060018018074020c000400e00f003800c00b003010c000802180020070018006006019801805e0003000400600580180760060138000800c00b00330134805200c400e00300080330004006005801a4001801a410112f58000801c00600901260008019806a40118002007001800600690404a75ee01e00060008018046000801801e000300c4832004c025201430094800a0030028052003002c00d2002c000300648010c0092002300748028c0312000300b48018c0292012300948008c0212066801a40018000c0192008300a2233335573e00250002801994004d55ce800cd55cf0008d5d08014c00cd5d10011263009222532900389800a4d2219002912c80344c01526910c80148964cc04cdd68010034564cc03801400626601800e0071801226601800e01518010096400a3000910c008600444002600244004a664600200244246466004460044460040064600444600200646a660080080066a00600224446600644b20051800484ccc02600244666ae68cdc3801000c00200500a91199ab9a33710004003000801488ccd5cd19b89002001800400a44666ae68cdc4801000c00a00122333573466e20008006005000912a999ab9a3371200400222002220052255333573466e2400800444008440040026eb400a42660080026eb000a4264666015001229002914801c8954ccd5cd19b8700400211333573466e1c00c006001002118011229002914801c88cc044cdc100200099b82002003245200522900391199ab9a3371066e08010004cdc1001001c002004403245200522900391199ab9a3371266e08010004cdc1001001c00a00048a400a45200722333573466e20cdc100200099b820020038014000912c99807001000c40062004912c99807001000c400a2002001199919ab9a357466ae880048cc028dd69aba1003375a6ae84008d5d1000934000dd60010a40064666ae68d5d1800c0020052225933006003357420031330050023574400318010600a444aa666ae68cdc3a400000222c22aa666ae68cdc4000a4000226600666e05200000233702900000088994004cdc2001800ccdc20010008cc010008004c01088954ccd5cd19b87480000044400844cc00c004cdc300100091119803112c800c60012219002911919806912c800c4c02401a442b26600a004019130040018c008002590028c804c8888888800d1900991111111002a244b267201722222222008001000c600518000001112a999ab9a3370e004002230001155333573466e240080044600823002229002914801c88ccd5cd19b893370400800266e0800800e00100208c8c0040048c0088cc008008005" +} \ No newline at end of file diff --git a/docs/environments-pre/preprod/peer-snapshot.json b/docs/environments-pre/preprod/peer-snapshot.json new file mode 100644 index 00000000..442bc437 --- /dev/null +++ b/docs/environments-pre/preprod/peer-snapshot.json @@ -0,0 +1,736 @@ +{ + "bigLedgerPools": [ + { + "accumulatedStake": 0.16533648268860082, + "relativeStake": 0.16533648268860082, + "relays": [ + { + "domain": "relay.preprod.staging.wingriders.com", + "port": 3001 + }, + { + "domain": "relay.preprod.wingriders.com", + "port": 3002 + } + ] + }, + { + "accumulatedStake": 0.2567189181469481, + "relativeStake": 0.0913824354583473, + "relays": [ + { + "domain": "preprod-node.pool.milkomeda.com", + "port": 3002 + } + ] + }, + { + "accumulatedStake": 0.3445885486678517, + "relativeStake": 0.08786963052090359, + "relays": [ + { + "address": "132.226.203.38", + "port": 6001 + } + ] + }, + { + "accumulatedStake": 0.4119136114109497, + "relativeStake": 0.06732506274309796, + "relays": [ + { + "address": "144.24.168.10", + "port": 3003 + }, + { + "address": "141.145.210.204", + "port": 3003 + } + ] + }, + { + "accumulatedStake": 0.45796611983279234, + "relativeStake": 0.04605250842184267, + "relays": [ + { + "domain": "node1.cardano.gratis", + "port": 6601 + }, + { + "domain": "node2.cardano.gratis", + "port": 6602 + }, + { + "domain": "mbb3.cardano.gratis", + "port": 6603 + } + ] + }, + { + "accumulatedStake": 0.5018978774335163, + "relativeStake": 0.04393175760072397, + "relays": [ + { + "address": "73.222.122.247", + "port": 13001 + } + ] + }, + { + "accumulatedStake": 0.5423954633128953, + "relativeStake": 0.04049758587937905, + "relays": [ + { + "domain": "logicalmechanism.asuscomm.com", + "port": 6004 + }, + { + "address": "146.190.20.214", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.5706981730212308, + "relativeStake": 0.028302709708335504, + "relays": [ + { + "address": "140.238.91.50", + "port": 3001 + }, + { + "address": "132.145.71.219", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.5983648327778356, + "relativeStake": 0.0276666597566047, + "relays": [ + { + "domain": "tn-preprod.psilobyte.io", + "port": 4101 + } + ] + }, + { + "accumulatedStake": 0.619268100260871, + "relativeStake": 0.020903267483035455, + "relays": [ + { + "address": "161.97.136.104", + "port": 3000 + } + ] + }, + { + "accumulatedStake": 0.639864346692673, + "relativeStake": 0.02059624643180197, + "relays": [ + { + "domain": "adaboy-preprod-2b.gleeze.com", + "port": 3002 + }, + { + "domain": "adaboy-preprod-3b.gleeze.com", + "port": 3000 + } + ] + }, + { + "accumulatedStake": 0.6590848306573842, + "relativeStake": 0.019220483964711207, + "relays": [ + { + "domain": "pp-relay1.apexpool.info", + "port": 4001 + } + ] + }, + { + "accumulatedStake": 0.6719965788352348, + "relativeStake": 0.012911748177850563, + "relays": [ + { + "domain": "preprod1.volcyada.com", + "port": 6003 + }, + { + "domain": "preprod2.volcyada.com", + "port": 6007 + }, + { + "domain": "preprod3.volcyada.com", + "port": 4001 + } + ] + }, + { + "accumulatedStake": 0.6834996026949426, + "relativeStake": 0.011503023859707823, + "relays": [ + { + "domain": "preprod.bladepool.com", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.6942679139331743, + "relativeStake": 0.010768311238231795, + "relays": [ + { + "address": "18.222.164.102", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.7034792414827027, + "relativeStake": 0.00921132754952832, + "relays": [ + { + "address": "66.42.94.80", + "port": 6000 + }, + { + "address": "170.187.201.55", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.7108466099392908, + "relativeStake": 0.007367368456588143, + "relays": [ + { + "domain": "preprod.canadastakes.ca", + "port": 4002 + } + ] + }, + { + "accumulatedStake": 0.7178378583801969, + "relativeStake": 0.006991248440906062, + "relays": [ + { + "domain": "r1.pp.mrbee.io", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.7241149934564234, + "relativeStake": 0.006277135076226503, + "relays": [ + { + "domain": "dyn.derksen-it.nl", + "port": 4001 + } + ] + }, + { + "accumulatedStake": 0.729963375028306, + "relativeStake": 0.00584838157188256, + "relays": [ + { + "address": "152.53.81.245", + "port": 5501 + }, + { + "domain": "relay-s.wotapool.net", + "port": 5501 + } + ] + }, + { + "accumulatedStake": 0.7355758741892675, + "relativeStake": 0.005612499160961567, + "relays": [ + { + "domain": "preprod-r1.panl.org", + "port": 3012 + } + ] + }, + { + "accumulatedStake": 0.7406048008682375, + "relativeStake": 0.005028926678970021, + "relays": [ + { + "domain": "relay.preprod.cardanostakehouse.com", + "port": 9000 + } + ] + }, + { + "accumulatedStake": 0.7454715688237447, + "relativeStake": 0.004866767955507059, + "relays": [ + { + "domain": "relay.preprod.cardanostakehouse.com", + "port": 9000 + } + ] + }, + { + "accumulatedStake": 0.7503379572389104, + "relativeStake": 0.004866388415165782, + "relays": [ + { + "domain": "relay.preprod.cardanostakehouse.com", + "port": 9000 + } + ] + }, + { + "accumulatedStake": 0.7549030501216739, + "relativeStake": 0.004565092882763564, + "relays": [ + { + "domain": "relay1.hunadapool.com", + "port": 3002 + } + ] + }, + { + "accumulatedStake": 0.7594466644849966, + "relativeStake": 0.004543614363322666, + "relays": [ + { + "domain": "relay.preprod.cardanostakehouse.com", + "port": 9000 + } + ] + }, + { + "accumulatedStake": 0.7639232525775537, + "relativeStake": 0.004476588092557058, + "relays": [ + { + "domain": "preprod-relay1.angelstakepool.net", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.7683952804488933, + "relativeStake": 0.004472027871339629, + "relays": [ + { + "domain": "test.smaug.pool.pm", + "port": 3002 + } + ] + }, + { + "accumulatedStake": 0.7727654192847555, + "relativeStake": 0.004370138835862222, + "relays": [ + { + "domain": "relay.preprod.cardanostakehouse.com", + "port": 9000 + } + ] + }, + { + "accumulatedStake": 0.7770721360723702, + "relativeStake": 0.004306716787614722, + "relays": [ + { + "domain": "relay0-preprod.adanet.io", + "port": 7001 + } + ] + }, + { + "accumulatedStake": 0.7811189823413957, + "relativeStake": 0.004046846269025371, + "relays": [ + { + "domain": "d.fluxpool.cc", + "port": 3010 + } + ] + }, + { + "accumulatedStake": 0.7850932733877762, + "relativeStake": 0.003974291046380562, + "relays": [ + { + "address": "73.54.73.48", + "port": 7000 + } + ] + }, + { + "accumulatedStake": 0.7890563953206919, + "relativeStake": 0.003963121932915786, + "relays": [ + { + "address": "168.138.37.117", + "port": 6003 + } + ] + }, + { + "accumulatedStake": 0.793007260955473, + "relativeStake": 0.0039508656347811075, + "relays": [ + { + "domain": "flightrelay1.intertreecryptoconsultants.com", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.7967645583552497, + "relativeStake": 0.003757297399776672, + "relays": [ + { + "address": "204.216.213.96", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.8003241492388238, + "relativeStake": 0.0035595908835740005, + "relays": [ + { + "domain": "relay1.preprod.stakepool.quebec", + "port": 5000 + } + ] + }, + { + "accumulatedStake": 0.8038826249133106, + "relativeStake": 0.0035584756744868893, + "relays": [ + { + "domain": "pre-prod1.xstakepool.com", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.8074245012415272, + "relativeStake": 0.003541876328216536, + "relays": [ + { + "domain": "preprod.altzpool.com", + "port": 7001 + } + ] + }, + { + "accumulatedStake": 0.8109168449017807, + "relativeStake": 0.0034923436602535387, + "relays": [ + { + "domain": "gateway.adavault.com", + "port": 4050 + } + ] + }, + { + "accumulatedStake": 0.814407695652531, + "relativeStake": 0.0034908507507502495, + "relays": [ + { + "domain": "preprod.happystaking.io", + "port": 3002 + } + ] + }, + { + "accumulatedStake": 0.8178971488787419, + "relativeStake": 0.003489453226210944, + "relays": [ + { + "domain": "preprod.frcan.com", + "port": 6011 + } + ] + }, + { + "accumulatedStake": 0.8213834145390965, + "relativeStake": 0.0034862656603545355, + "relays": [ + { + "domain": "artemisrelay3.uk", + "port": 6001 + } + ] + }, + { + "accumulatedStake": 0.8248049835205681, + "relativeStake": 0.003421568981471677, + "relays": [ + { + "domain": "alpha.stake-cardano-pool.com", + "port": 7001 + } + ] + }, + { + "accumulatedStake": 0.828221761479261, + "relativeStake": 0.003416777958692851, + "relays": [ + { + "address": "62.169.19.81", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.8315669939208559, + "relativeStake": 0.003345232441594875, + "relays": [ + { + "domain": "preprod-relay1.angelstakepool.net", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.8349117970731773, + "relativeStake": 0.0033448031523214917, + "relays": [ + { + "domain": "c-pp-rn01.liv.io", + "port": 30000 + }, + { + "domain": "c-pp-rn02.liv.io", + "port": 30000 + } + ] + }, + { + "accumulatedStake": 0.8382240869774304, + "relativeStake": 0.0033122899042531146, + "relays": [ + { + "address": "74.122.122.121", + "port": 6100 + } + ] + }, + { + "accumulatedStake": 0.8415285535715271, + "relativeStake": 0.003304466594096654, + "relays": [ + { + "domain": "preprod-relays.onyxstakepool.com", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.844830389055782, + "relativeStake": 0.003301835484254944, + "relays": [ + { + "domain": "testicles.kiwipool.org", + "port": 9730 + } + ] + }, + { + "accumulatedStake": 0.8481264239112749, + "relativeStake": 0.003296034855492909, + "relays": [ + { + "domain": "relay1.amapools.ir", + "port": 3002 + } + ] + }, + { + "accumulatedStake": 0.8514077361771208, + "relativeStake": 0.0032813122658458993, + "relays": [ + { + "domain": "preprod.weebl.me", + "port": 3123 + }, + { + "address": "77.174.62.158", + "port": 3124 + } + ] + }, + { + "accumulatedStake": 0.8546890089693876, + "relativeStake": 0.00328127279226669, + "relays": [ + { + "domain": "pp-relays.digitalfortress.online", + "port": 6001 + } + ] + }, + { + "accumulatedStake": 0.8579673377359958, + "relativeStake": 0.003278328766608168, + "relays": [ + { + "domain": "pprelay.adaocean.com", + "port": 6001 + } + ] + }, + { + "accumulatedStake": 0.8612437397132818, + "relativeStake": 0.0032764019772861517, + "relays": [ + { + "domain": "preprod.leadstakepool.com", + "port": 3001 + }, + { + "domain": "preprod.leadstakepool.com", + "port": 3002 + } + ] + }, + { + "accumulatedStake": 0.8644928939604167, + "relativeStake": 0.003249154247134843, + "relays": [ + { + "domain": "031e6928.cardano-relay.bison.run", + "port": 1338 + } + ] + }, + { + "accumulatedStake": 0.8676778978009698, + "relativeStake": 0.0031850038405531675, + "relays": [ + { + "domain": "cntr-1.services.evolute.software", + "port": 25437 + } + ] + }, + { + "accumulatedStake": 0.8708266431927602, + "relativeStake": 0.0031487453917902926, + "relays": [ + { + "address": "18.130.49.180", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.8739584089680624, + "relativeStake": 0.003131765775302288, + "relays": [ + { + "domain": "dear-colt-ada-lb-7b5456ef061920ec.elb.eu-west-2.amazonaws.com", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.877077865929541, + "relativeStake": 0.0031194569614784707, + "relays": [ + { + "domain": "r1.pp.cpoker.io", + "port": 4001 + } + ] + }, + { + "accumulatedStake": 0.8801881975418616, + "relativeStake": 0.003110331612320714, + "relays": [ + { + "domain": "adar-monitor.freeddns.org", + "port": 3011 + } + ] + }, + { + "accumulatedStake": 0.8832979726393192, + "relativeStake": 0.0031097750974575337, + "relays": [ + { + "address": "149.102.137.115", + "port": 6006 + } + ] + }, + { + "accumulatedStake": 0.8863937335223262, + "relativeStake": 0.0030957608830070667, + "relays": [ + { + "domain": "relay.preprod.crimsonpool.com", + "port": 3100 + } + ] + }, + { + "accumulatedStake": 0.8894642625559919, + "relativeStake": 0.0030705290336656035, + "relays": [ + { + "domain": "preprod.junglestakepool.com", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.8924781019332957, + "relativeStake": 0.003013839377303793, + "relays": [ + { + "address": "130.61.98.58", + "port": 3002 + }, + { + "address": "138.2.174.95", + "port": 3000 + } + ] + }, + { + "accumulatedStake": 0.8954496451108208, + "relativeStake": 0.0029715431775251544, + "relays": [ + { + "address": "0.0.0.0", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.8984169347684745, + "relativeStake": 0.002967289657653701, + "relays": [ + { + "domain": "preprod.vampyre.fund", + "port": 3101 + } + ] + }, + { + "accumulatedStake": 0.9013836030256982, + "relativeStake": 0.002966668257223746, + "relays": [ + { + "domain": "preprod1-node.play.dev.cardano.org", + "port": 3001 + } + ] + } + ], + "slotNo": 94142925, + "version": 1 +} diff --git a/docs/environments-pre/preprod/shelley-genesis.json b/docs/environments-pre/preprod/shelley-genesis.json new file mode 100644 index 00000000..24862eb8 --- /dev/null +++ b/docs/environments-pre/preprod/shelley-genesis.json @@ -0,0 +1,72 @@ +{ + "activeSlotsCoeff": 0.05, + "epochLength": 432000, + "genDelegs": { + "637f2e950b0fd8f8e3e811c5fbeb19e411e7a2bf37272b84b29c1a0b": { + "delegate": "aae9293510344ddd636364c2673e34e03e79e3eefa8dbaa70e326f7d", + "vrf": "227116365af2ed943f1a8b5e6557bfaa34996f1578eec667a5e2b361c51e4ce7" + }, + "8a4b77c4f534f8b8cc6f269e5ebb7ba77fa63a476e50e05e66d7051c": { + "delegate": "d15422b2e8b60e500a82a8f4ceaa98b04e55a0171d1125f6c58f8758", + "vrf": "0ada6c25d62db5e1e35d3df727635afa943b9e8a123ab83785e2281605b09ce2" + }, + "b00470cd193d67aac47c373602fccd4195aad3002c169b5570de1126": { + "delegate": "b3b539e9e7ed1b32fbf778bf2ebf0a6b9f980eac90ac86623d11881a", + "vrf": "0ff0ce9b820376e51c03b27877cd08f8ba40318f1a9f85a3db0b60dd03f71a7a" + }, + "b260ffdb6eba541fcf18601923457307647dce807851b9d19da133ab": { + "delegate": "7c64eb868b4ef566391a321c85323f41d2b95480d7ce56ad2abcb022", + "vrf": "7fb22abd39d550c9a022ec8104648a26240a9ff9c88b8b89a6e20d393c03098e" + }, + "ced1599fd821a39593e00592e5292bdc1437ae0f7af388ef5257344a": { + "delegate": "de7ca985023cf892f4de7f5f1d0a7181668884752d9ebb9e96c95059", + "vrf": "c301b7fc4d1b57fb60841bcec5e3d2db89602e5285801e522fce3790987b1124" + }, + "dd2a7d71a05bed11db61555ba4c658cb1ce06c8024193d064f2a66ae": { + "delegate": "1e113c218899ee7807f4028071d0e108fc790dade9fd1a0d0b0701ee", + "vrf": "faf2702aa4893c877c622ab22dfeaf1d0c8aab98b837fe2bf667314f0d043822" + }, + "f3b9e74f7d0f24d2314ea5dfbca94b65b2059d1ff94d97436b82d5b4": { + "delegate": "fd637b08cc379ef7b99c83b416458fcda8a01a606041779331008fb9", + "vrf": "37f2ea7c843a688159ddc2c38a2f997ab465150164a9136dca69564714b73268" + } + }, + "initialFunds": {}, + "maxKESEvolutions": 62, + "maxLovelaceSupply": 45000000000000000, + "networkId": "Testnet", + "networkMagic": 1, + "protocolParams": { + "protocolVersion": { + "minor": 0, + "major": 2 + }, + "decentralisationParam": 1, + "eMax": 18, + "extraEntropy": { + "tag": "NeutralNonce" + }, + "maxTxSize": 16384, + "maxBlockBodySize": 65536, + "maxBlockHeaderSize": 1100, + "minFeeA": 44, + "minFeeB": 155381, + "minUTxOValue": 1000000, + "poolDeposit": 500000000, + "minPoolCost": 340000000, + "keyDeposit": 2000000, + "nOpt": 150, + "rho": 0.003, + "tau": 0.20, + "a0": 0.3 + }, + "securityParam": 2160, + "slotLength": 1, + "slotsPerKESPeriod": 129600, + "staking": { + "pools": {}, + "stake": {} + }, + "systemStart": "2022-06-01T00:00:00Z", + "updateQuorum": 5 +} diff --git a/docs/environments-pre/preprod/submit-api-config.json b/docs/environments-pre/preprod/submit-api-config.json new file mode 100644 index 00000000..89f6238b --- /dev/null +++ b/docs/environments-pre/preprod/submit-api-config.json @@ -0,0 +1,113 @@ +{ + "EnableLogMetrics": false, + "EnableLogging": true, + "GenesisHash": "d4b8de7a11d929a323373cbab6c1a9bdc931beffff11db111cf9d57356ee1937", + "PrometheusPort": 8080, + "RequiresNetworkMagic": "RequiresMagic", + "defaultBackends": [ + "KatipBK" + ], + "defaultScribes": [ + [ + "StdoutSK", + "stdout" + ] + ], + "minSeverity": "Info", + "options": { + "cfokey": { + "value": "Release-1.0.0" + }, + "mapBackends": {}, + "mapSeverity": { + "db-sync-node": "Info", + "db-sync-node.Mux": "Error", + "db-sync-node.Subscription": "Error" + }, + "mapSubtrace": { + "#ekgview": { + "contents": [ + [ + { + "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": "Contains" + } + ] + ], + [ + { + "contents": "#ekgview.#aggregation.cardano.epoch-validation.benchmark", + "tag": "StartsWith" + }, + [ + { + "contents": "diff.RTS.gcNum.timed.", + "tag": "Contains" + } + ] + ] + ], + "subtrace": "FilterTrace" + }, + "#messagecounters.aggregation": { + "subtrace": "NoTrace" + }, + "#messagecounters.ekgview": { + "subtrace": "NoTrace" + }, + "#messagecounters.katip": { + "subtrace": "NoTrace" + }, + "#messagecounters.monitoring": { + "subtrace": "NoTrace" + }, + "#messagecounters.switchboard": { + "subtrace": "NoTrace" + }, + "benchmark": { + "contents": [ + "GhcRtsStats", + "MonotonicClock" + ], + "subtrace": "ObservableTrace" + }, + "cardano.epoch-validation.utxo-stats": { + "subtrace": "NoTrace" + } + } + }, + "rotation": { + "rpKeepFilesNum": 10, + "rpLogLimitBytes": 5000000, + "rpMaxAgeHours": 24 + }, + "setupBackends": [ + "AggregationBK", + "KatipBK" + ], + "setupScribes": [ + { + "scFormat": "ScText", + "scKind": "StdoutSK", + "scName": "stdout", + "scRotation": null + } + ] +} diff --git a/static/book.play.dev.cardano.org/environments-pre/preview/topology-genesis-mode.json b/docs/environments-pre/preprod/topology.json similarity index 64% rename from static/book.play.dev.cardano.org/environments-pre/preview/topology-genesis-mode.json rename to docs/environments-pre/preprod/topology.json index 34367a0c..988cfe8d 100644 --- a/static/book.play.dev.cardano.org/environments-pre/preview/topology-genesis-mode.json +++ b/docs/environments-pre/preprod/topology.json @@ -1,4 +1,10 @@ { + "bootstrapPeers": [ + { + "address": "preprod-node.play.dev.cardano.org", + "port": 3001 + } + ], "localRoots": [ { "accessPoints": [], @@ -7,12 +13,12 @@ "valency": 1 } ], + "peerSnapshotFile": "peer-snapshot.json", "publicRoots": [ { "accessPoints": [], "advertise": false } ], - "peerSnapshotFile": "peer-snapshot.json", - "useLedgerAfterSlot": 73267000 + "useLedgerAfterSlot": 93830456 } diff --git a/docs/environments-pre/preview b/docs/environments-pre/preview deleted file mode 120000 index 6b2e1697..00000000 --- a/docs/environments-pre/preview +++ /dev/null @@ -1 +0,0 @@ -../environments/preview \ No newline at end of file diff --git a/docs/environments-pre/preview/alonzo-genesis.json b/docs/environments-pre/preview/alonzo-genesis.json new file mode 100644 index 00000000..0fd90dee --- /dev/null +++ b/docs/environments-pre/preview/alonzo-genesis.json @@ -0,0 +1,196 @@ +{ + "lovelacePerUTxOWord": 34482, + "executionPrices": { + "prSteps": + { + "numerator" : 721, + "denominator" : 10000000 + }, + "prMem": + { + "numerator" : 577, + "denominator" : 10000 + } + }, + "maxTxExUnits": { + "exUnitsMem": 10000000, + "exUnitsSteps": 10000000000 + }, + "maxBlockExUnits": { + "exUnitsMem": 50000000, + "exUnitsSteps": 40000000000 + }, + "maxValueSize": 5000, + "collateralPercentage": 150, + "maxCollateralInputs": 3, + "costModels": { + "PlutusV1": { + "sha2_256-memory-arguments": 4, + "equalsString-cpu-arguments-constant": 1000, + "cekDelayCost-exBudgetMemory": 100, + "lessThanEqualsByteString-cpu-arguments-intercept": 103599, + "divideInteger-memory-arguments-minimum": 1, + "appendByteString-cpu-arguments-slope": 621, + "blake2b-cpu-arguments-slope": 29175, + "iData-cpu-arguments": 150000, + "encodeUtf8-cpu-arguments-slope": 1000, + "unBData-cpu-arguments": 150000, + "multiplyInteger-cpu-arguments-intercept": 61516, + "cekConstCost-exBudgetMemory": 100, + "nullList-cpu-arguments": 150000, + "equalsString-cpu-arguments-intercept": 150000, + "trace-cpu-arguments": 150000, + "mkNilData-memory-arguments": 32, + "lengthOfByteString-cpu-arguments": 150000, + "cekBuiltinCost-exBudgetCPU": 29773, + "bData-cpu-arguments": 150000, + "subtractInteger-cpu-arguments-slope": 0, + "unIData-cpu-arguments": 150000, + "consByteString-memory-arguments-intercept": 0, + "divideInteger-memory-arguments-slope": 1, + "divideInteger-cpu-arguments-model-arguments-slope": 118, + "listData-cpu-arguments": 150000, + "headList-cpu-arguments": 150000, + "chooseData-memory-arguments": 32, + "equalsInteger-cpu-arguments-intercept": 136542, + "sha3_256-cpu-arguments-slope": 82363, + "sliceByteString-cpu-arguments-slope": 5000, + "unMapData-cpu-arguments": 150000, + "lessThanInteger-cpu-arguments-intercept": 179690, + "mkCons-cpu-arguments": 150000, + "appendString-memory-arguments-intercept": 0, + "modInteger-cpu-arguments-model-arguments-slope": 118, + "ifThenElse-cpu-arguments": 1, + "mkNilPairData-cpu-arguments": 150000, + "lessThanEqualsInteger-cpu-arguments-intercept": 145276, + "addInteger-memory-arguments-slope": 1, + "chooseList-memory-arguments": 32, + "constrData-memory-arguments": 32, + "decodeUtf8-cpu-arguments-intercept": 150000, + "equalsData-memory-arguments": 1, + "subtractInteger-memory-arguments-slope": 1, + "appendByteString-memory-arguments-intercept": 0, + "lengthOfByteString-memory-arguments": 4, + "headList-memory-arguments": 32, + "listData-memory-arguments": 32, + "consByteString-cpu-arguments-intercept": 150000, + "unIData-memory-arguments": 32, + "remainderInteger-memory-arguments-minimum": 1, + "bData-memory-arguments": 32, + "lessThanByteString-cpu-arguments-slope": 248, + "encodeUtf8-memory-arguments-intercept": 0, + "cekStartupCost-exBudgetCPU": 100, + "multiplyInteger-memory-arguments-intercept": 0, + "unListData-memory-arguments": 32, + "remainderInteger-cpu-arguments-model-arguments-slope": 118, + "cekVarCost-exBudgetCPU": 29773, + "remainderInteger-memory-arguments-slope": 1, + "cekForceCost-exBudgetCPU": 29773, + "sha2_256-cpu-arguments-slope": 29175, + "equalsInteger-memory-arguments": 1, + "indexByteString-memory-arguments": 1, + "addInteger-memory-arguments-intercept": 1, + "chooseUnit-cpu-arguments": 150000, + "sndPair-cpu-arguments": 150000, + "cekLamCost-exBudgetCPU": 29773, + "fstPair-cpu-arguments": 150000, + "quotientInteger-memory-arguments-minimum": 1, + "decodeUtf8-cpu-arguments-slope": 1000, + "lessThanInteger-memory-arguments": 1, + "lessThanEqualsInteger-cpu-arguments-slope": 1366, + "fstPair-memory-arguments": 32, + "modInteger-memory-arguments-intercept": 0, + "unConstrData-cpu-arguments": 150000, + "lessThanEqualsInteger-memory-arguments": 1, + "chooseUnit-memory-arguments": 32, + "sndPair-memory-arguments": 32, + "addInteger-cpu-arguments-intercept": 197209, + "decodeUtf8-memory-arguments-slope": 8, + "equalsData-cpu-arguments-intercept": 150000, + "mapData-cpu-arguments": 150000, + "mkPairData-cpu-arguments": 150000, + "quotientInteger-cpu-arguments-constant": 148000, + "consByteString-memory-arguments-slope": 1, + "cekVarCost-exBudgetMemory": 100, + "indexByteString-cpu-arguments": 150000, + "unListData-cpu-arguments": 150000, + "equalsInteger-cpu-arguments-slope": 1326, + "cekStartupCost-exBudgetMemory": 100, + "subtractInteger-cpu-arguments-intercept": 197209, + "divideInteger-cpu-arguments-model-arguments-intercept": 425507, + "divideInteger-memory-arguments-intercept": 0, + "cekForceCost-exBudgetMemory": 100, + "blake2b-cpu-arguments-intercept": 2477736, + "remainderInteger-cpu-arguments-constant": 148000, + "tailList-cpu-arguments": 150000, + "encodeUtf8-cpu-arguments-intercept": 150000, + "equalsString-cpu-arguments-slope": 1000, + "lessThanByteString-memory-arguments": 1, + "multiplyInteger-cpu-arguments-slope": 11218, + "appendByteString-cpu-arguments-intercept": 396231, + "lessThanEqualsByteString-cpu-arguments-slope": 248, + "modInteger-memory-arguments-slope": 1, + "addInteger-cpu-arguments-slope": 0, + "equalsData-cpu-arguments-slope": 10000, + "decodeUtf8-memory-arguments-intercept": 0, + "chooseList-cpu-arguments": 150000, + "constrData-cpu-arguments": 150000, + "equalsByteString-memory-arguments": 1, + "cekApplyCost-exBudgetCPU": 29773, + "quotientInteger-memory-arguments-slope": 1, + "verifySignature-cpu-arguments-intercept": 3345831, + "unMapData-memory-arguments": 32, + "mkCons-memory-arguments": 32, + "sliceByteString-memory-arguments-slope": 1, + "sha3_256-memory-arguments": 4, + "ifThenElse-memory-arguments": 1, + "mkNilPairData-memory-arguments": 32, + "equalsByteString-cpu-arguments-slope": 247, + "appendString-cpu-arguments-intercept": 150000, + "quotientInteger-cpu-arguments-model-arguments-slope": 118, + "cekApplyCost-exBudgetMemory": 100, + "equalsString-memory-arguments": 1, + "multiplyInteger-memory-arguments-slope": 1, + "cekBuiltinCost-exBudgetMemory": 100, + "remainderInteger-memory-arguments-intercept": 0, + "sha2_256-cpu-arguments-intercept": 2477736, + "remainderInteger-cpu-arguments-model-arguments-intercept": 425507, + "lessThanEqualsByteString-memory-arguments": 1, + "tailList-memory-arguments": 32, + "mkNilData-cpu-arguments": 150000, + "chooseData-cpu-arguments": 150000, + "unBData-memory-arguments": 32, + "blake2b-memory-arguments": 4, + "iData-memory-arguments": 32, + "nullList-memory-arguments": 32, + "cekDelayCost-exBudgetCPU": 29773, + "subtractInteger-memory-arguments-intercept": 1, + "lessThanByteString-cpu-arguments-intercept": 103599, + "consByteString-cpu-arguments-slope": 1000, + "appendByteString-memory-arguments-slope": 1, + "trace-memory-arguments": 32, + "divideInteger-cpu-arguments-constant": 148000, + "cekConstCost-exBudgetCPU": 29773, + "encodeUtf8-memory-arguments-slope": 8, + "quotientInteger-cpu-arguments-model-arguments-intercept": 425507, + "mapData-memory-arguments": 32, + "appendString-cpu-arguments-slope": 1000, + "modInteger-cpu-arguments-constant": 148000, + "verifySignature-cpu-arguments-slope": 1, + "unConstrData-memory-arguments": 32, + "quotientInteger-memory-arguments-intercept": 0, + "equalsByteString-cpu-arguments-constant": 150000, + "sliceByteString-memory-arguments-intercept": 0, + "mkPairData-memory-arguments": 32, + "equalsByteString-cpu-arguments-intercept": 112536, + "appendString-memory-arguments-slope": 1, + "lessThanInteger-cpu-arguments-slope": 497, + "modInteger-cpu-arguments-model-arguments-intercept": 425507, + "modInteger-memory-arguments-minimum": 1, + "sha3_256-cpu-arguments-intercept": 0, + "verifySignature-memory-arguments": 1, + "cekLamCost-exBudgetMemory": 100, + "sliceByteString-cpu-arguments-intercept": 150000 + } + } +} diff --git a/docs/environments-pre/preview/byron-genesis.json b/docs/environments-pre/preview/byron-genesis.json new file mode 100644 index 00000000..99b58458 --- /dev/null +++ b/docs/environments-pre/preview/byron-genesis.json @@ -0,0 +1,117 @@ +{ "bootStakeholders": + { "021e737009040bf7f1e7b1bcc148f29d748d4a6b561902c95e4a9f36": 1 + , "0bc82ced9544980b9ffe7f64b1538bbda6804a5cc32c8035485e184b": 1 + , "18ed9844deef98cf9ba8b39791dede0538d2d2fa79bf67ef37dcc826": 1 + , "66cfa84ad0ee5ca8586244c8393007cf3d9622d77cfa03fd4f35065b": 1 + , "76c4d6c68c0ef81ae364411a84e52ce66089ed006ca29adfc0227901": 1 + , "8cc6b89fec65cc83d34b7bab2e6494db631d8476a86625767dd0c2a0": 1 + , "e90060fdc085ac9f63cdb3b32ba1d84e0f7eb98561687b213b4c8770": 1 + } +, "heavyDelegation": + { "021e737009040bf7f1e7b1bcc148f29d748d4a6b561902c95e4a9f36": + { "omega": 0 + , "issuerPk": + "6hSFCotivD08t02n43RMiaF9LzwtYVrFMu/WX6ShfEsxfdXFL5Y6c+DwHSZOCywU0RJz5er2icIO03UytC9NTg==" + , "delegatePk": + "JEnSVQTPGriTx1+lAMkKhCNsMBDNPGw+NiEvNPh4ui6IdvxrO+WkQPTy5U865XB4VFvi/zb7d+H1bilnztQNBg==" + , "cert": + "558952d17442e8cc73f0c7dd606e329b38ed2ec0c1f83fe2567d28b21ef2223d2d23640cd0531f75832b50e519631c48643fcfaa7168851645dce07b90d87f0e" + } + , "0bc82ced9544980b9ffe7f64b1538bbda6804a5cc32c8035485e184b": + { "omega": 0 + , "issuerPk": + "MJ7IskKU8GKk0Eeg3zhfSOK1DDVXOMHD2V/zhEpODUtL9YB0Y7sXnbZfg3+Df05hskP5Jz+dZvdC6DH/dP9jmQ==" + , "delegatePk": + "hwO7NJL7LfAk5e/QG61FKcdORoK60tvprE3063Muh4EQKrWA6l7t23B2GziK8D0hRO0j5W1Gzpn8WW69XLIlKA==" + , "cert": + "2bccf50d0c3cbb03dd29cfba817e8ba615db3d7722b41b264ad08722e548cfe83d069b29d13e490823d7519ecdd9940ea49573f6027056c4bd58da1adf75020e" + } + , "18ed9844deef98cf9ba8b39791dede0538d2d2fa79bf67ef37dcc826": + { "omega": 0 + , "issuerPk": + "pXbW4Jak8maeuWiosvrurykKnqDSHswUjroonSDS3fTnWS+BKe+vjT4zZJNKhQ33KbagiHVJ5CJUNggfsCtG2g==" + , "delegatePk": + "rbJAZp3kWCUvp8dnLR6qsgpGU+qKAFow4NHYKWiKCkfm1qFCFONob50N1IbNWCGWAhg38ZPTvBazTasjsfj6yQ==" + , "cert": + "89e1638e31fd3d402cecb897ba773d8c2c11c2d3cff2462b266e21461539b1a4fe8fb528e159b9af473799b51e49aa5b5816a88f10c484aa7cef7ad12850830a" + } + , "66cfa84ad0ee5ca8586244c8393007cf3d9622d77cfa03fd4f35065b": + { "omega": 0 + , "issuerPk": + "/LGZjmmcAMRisP7Rf454GM2QUKgj2aAyqE+iQo2PIEhcistFOlT+idtbLTceZAnQcwwPJDtTcNi+EnPQyscZOg==" + , "delegatePk": + "rinFUiKKCPPFY0ULEKn1SPRgLVmOS3jdTXDtrxK6VI1I11G3uBS1Olxi0mQSN3kf+B3hm/xHkuUDVNaSXNiBeQ==" + , "cert": + "3e7f30bb68c5bc4d23c2a730ac154a188a1fd45aac3f438efd380303171443d2ca4f50e5a1ff66b40ae3da64697f2599956ae06c21b73fa828b8c0dc9fb27302" + } + , "76c4d6c68c0ef81ae364411a84e52ce66089ed006ca29adfc0227901": + { "omega": 0 + , "issuerPk": + "9EE85tTLdSSR4T1Xoy6n9wr6jlbavCdfp9oQKusskO3DSSyNqRYS7QzYQ96j/WnphUey63082YkKijMfF9A4eA==" + , "delegatePk": + "dvyHDkXg8LFtb0K6Sitl8OGSEZPvfCVQYLDR6Au6t6/ROvlerMKQ8uri4fG7hQQzbHKtdKWgv94t+zuFJTQ1fw==" + , "cert": + "5ec0ed46ae7e575bdb089f1bceca3b2689b13a7162fe08578fe60ba64607fffaa507412a97652c3c81cc0ef93ff404cf809a628ae19faba1a035fca0505c1d04" + } + , "8cc6b89fec65cc83d34b7bab2e6494db631d8476a86625767dd0c2a0": + { "omega": 0 + , "issuerPk": + "Hr5S5PAxf9HSB4FzmtZzaFcXrNrctrI5XUrDrnCkOUTX6rhbtOMkXU3sWVDOvU6LNSSr3/Ws2+iCYZIr7LmTWg==" + , "delegatePk": + "FaLH2b5H/XS31YRnm98N6fP4Etx6m+GbniVAXMwOp8KhYXPKBJBsX/EjIy3pSkvRBhGCjsycB0yrDxWMi5ZsIQ==" + , "cert": + "10f06304cceb42071605ebba67b308c7568e5e6fe0d773c58f7e8c13bc8d8a340f70a4fd5e1b4a1c1db1de5c7646802bbc929d6c82d7adb8a77cb6ad77eac50a" + } + , "e90060fdc085ac9f63cdb3b32ba1d84e0f7eb98561687b213b4c8770": + { "omega": 0 + , "issuerPk": + "B2R+VXzy3c8bxncdOpQ2Z/tblxRNQO8AXQ0OsJDQvZYnLeGQcLD78kyYLpi3nfuS4SfnLar23NV4yiEVwaw+Yw==" + , "delegatePk": + "nACHGIBacymrKwn07iW/a5ZKJCPZ2cKQqeXw3ivR7WOYVUuufWhZlCoUTZ7rtBqoDaexblUQwkC7hA7AmNA3FA==" + , "cert": + "b5440daa05f7fae557df46e4f1b7c5802b86f465daad1137e315abf6e72f1c877207276abb8dcba86e18e42d39b34c2f0fa82ba2919944cdc8e2e5264baa450b" + } + } +, "startTime": 1666656000 +, "nonAvvmBalances": + { "FHnt4NL7yPXjpZtYj1YUiX9QYYUZGXDT9gA2PJXQFkTSMx3EgawXK5BUrCHdhe2": + "0" + , "FHnt4NL7yPXk7D87qAWEmfnL7wSQ9AzBU2mjZt3eM48NSCbygxgzAU6vCGiRZEW": + "0" + , "FHnt4NL7yPXpazQsTdJ3Gp1twQUo4N5rrgGbRNSzchjchPiApc1k4CvqDMcdd7H": + "0" + , "FHnt4NL7yPXtNo1wLCLZyGTMfAvB14h8onafiYkM7B69ZwvGgXeUyQWfi7FPrif": + "0" + , "FHnt4NL7yPXtmi4mAjD43V3NB3shDs1gCuHNcMLPsRWjaw1b2yRV2xad8S8V6aq": + "0" + , "FHnt4NL7yPXvDWHa8bVs73UEUdJd64VxWXSFNqetECtYfTd9TtJguJ14Lu3feth": + "30000000000000000" + , "FHnt4NL7yPXvNSRpCYydjRr7koQCrsTtkovk5uYMimgqMJX2DyrEEBqiXaTd8rG": + "0" + , "FHnt4NL7yPY9rTvdsCeyRnsbzp4bN7XdmAZeU5PzA1qR2asYmN6CsdxJw4YoDjG": + "0" + } +, "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": 432 , "protocolMagic": 2 } +, "avvmDistr": {} +} diff --git a/docs/environments-pre/preview/config-bp.json b/docs/environments-pre/preview/config-bp.json new file mode 100644 index 00000000..f08a7601 --- /dev/null +++ b/docs/environments-pre/preview/config-bp.json @@ -0,0 +1,120 @@ +{ + "AlonzoGenesisFile": "alonzo-genesis.json", + "AlonzoGenesisHash": "7e94a15f55d1e82d10f09203fa1d40f8eede58fd8066542cf6566008068ed874", + "ByronGenesisFile": "byron-genesis.json", + "ByronGenesisHash": "83de1d7302569ad56cf9139a41e2e11346d4cb4a31c00142557b6ab3fa550761", + "ConsensusMode": "GenesisMode", + "ConwayGenesisFile": "conway-genesis.json", + "ConwayGenesisHash": "9cc5084f02e27210eacba47af0872e3dba8946ad9460b6072d793e1d2f3987ef", + "EnableP2P": true, + "ExperimentalHardForksEnabled": false, + "ExperimentalProtocolsEnabled": false, + "LastKnownBlockVersion-Alt": 0, + "LastKnownBlockVersion-Major": 3, + "LastKnownBlockVersion-Minor": 1, + "LedgerDB": { + "Backend": "V2InMemory", + "NumOfDiskSnapshots": 2, + "QueryBatchSize": 100000, + "SnapshotInterval": 864 + }, + "MinNodeVersion": "10.4.0", + "PeerSharing": false, + "Protocol": "Cardano", + "RequiresNetworkMagic": "RequiresMagic", + "ShelleyGenesisFile": "shelley-genesis.json", + "ShelleyGenesisHash": "363498d1024f84bb39d3fa9593ce391483cb40d479b87233f868d6e57c3a400d", + "TargetNumberOfKnownPeers": 100, + "TargetNumberOfRootPeers": 100, + "TestAllegraHardForkAtEpoch": 0, + "TestAlonzoHardForkAtEpoch": 0, + "TestMaryHardForkAtEpoch": 0, + "TestShelleyHardForkAtEpoch": 0, + "TraceAcceptPolicy": true, + "TraceBlockFetchClient": false, + "TraceBlockFetchDecisions": false, + "TraceBlockFetchProtocol": false, + "TraceBlockFetchProtocolSerialised": false, + "TraceBlockFetchServer": false, + "TraceChainDb": true, + "TraceChainSyncBlockServer": false, + "TraceChainSyncClient": false, + "TraceChainSyncHeaderServer": false, + "TraceChainSyncProtocol": false, + "TraceConnectionManager": true, + "TraceDNSResolver": true, + "TraceDNSSubscription": true, + "TraceDiffusionInitialization": true, + "TraceErrorPolicy": true, + "TraceForge": true, + "TraceHandshake": true, + "TraceInboundGovernor": true, + "TraceIpSubscription": true, + "TraceLedgerPeers": true, + "TraceLocalChainSyncProtocol": false, + "TraceLocalConnectionManager": true, + "TraceLocalErrorPolicy": true, + "TraceLocalHandshake": true, + "TraceLocalRootPeers": true, + "TraceLocalTxSubmissionProtocol": false, + "TraceLocalTxSubmissionServer": false, + "TraceMempool": true, + "TraceMux": false, + "TracePeerSelection": true, + "TracePeerSelectionActions": true, + "TracePublicRootPeers": true, + "TraceServer": true, + "TraceTxInbound": false, + "TraceTxOutbound": false, + "TraceTxSubmissionProtocol": false, + "TracingVerbosity": "NormalVerbosity", + "TurnOnLogMetrics": true, + "TurnOnLogging": true, + "UseTraceDispatcher": false, + "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/docs/environments-pre/preview/config.json b/docs/environments-pre/preview/config.json new file mode 100644 index 00000000..bd03f224 --- /dev/null +++ b/docs/environments-pre/preview/config.json @@ -0,0 +1,118 @@ +{ + "AlonzoGenesisFile": "alonzo-genesis.json", + "AlonzoGenesisHash": "7e94a15f55d1e82d10f09203fa1d40f8eede58fd8066542cf6566008068ed874", + "ByronGenesisFile": "byron-genesis.json", + "ByronGenesisHash": "83de1d7302569ad56cf9139a41e2e11346d4cb4a31c00142557b6ab3fa550761", + "ConsensusMode": "GenesisMode", + "ConwayGenesisFile": "conway-genesis.json", + "ConwayGenesisHash": "9cc5084f02e27210eacba47af0872e3dba8946ad9460b6072d793e1d2f3987ef", + "EnableP2P": true, + "ExperimentalHardForksEnabled": false, + "ExperimentalProtocolsEnabled": false, + "LastKnownBlockVersion-Alt": 0, + "LastKnownBlockVersion-Major": 3, + "LastKnownBlockVersion-Minor": 1, + "LedgerDB": { + "Backend": "V2InMemory", + "NumOfDiskSnapshots": 2, + "QueryBatchSize": 100000, + "SnapshotInterval": 864 + }, + "MinNodeVersion": "10.4.0", + "PeerSharing": true, + "Protocol": "Cardano", + "RequiresNetworkMagic": "RequiresMagic", + "ShelleyGenesisFile": "shelley-genesis.json", + "ShelleyGenesisHash": "363498d1024f84bb39d3fa9593ce391483cb40d479b87233f868d6e57c3a400d", + "TestAllegraHardForkAtEpoch": 0, + "TestAlonzoHardForkAtEpoch": 0, + "TestMaryHardForkAtEpoch": 0, + "TestShelleyHardForkAtEpoch": 0, + "TraceAcceptPolicy": true, + "TraceBlockFetchClient": false, + "TraceBlockFetchDecisions": false, + "TraceBlockFetchProtocol": false, + "TraceBlockFetchProtocolSerialised": false, + "TraceBlockFetchServer": false, + "TraceChainDb": true, + "TraceChainSyncBlockServer": false, + "TraceChainSyncClient": false, + "TraceChainSyncHeaderServer": false, + "TraceChainSyncProtocol": false, + "TraceConnectionManager": true, + "TraceDNSResolver": true, + "TraceDNSSubscription": true, + "TraceDiffusionInitialization": true, + "TraceErrorPolicy": true, + "TraceForge": true, + "TraceHandshake": true, + "TraceInboundGovernor": true, + "TraceIpSubscription": true, + "TraceLedgerPeers": true, + "TraceLocalChainSyncProtocol": false, + "TraceLocalConnectionManager": true, + "TraceLocalErrorPolicy": true, + "TraceLocalHandshake": true, + "TraceLocalRootPeers": true, + "TraceLocalTxSubmissionProtocol": false, + "TraceLocalTxSubmissionServer": false, + "TraceMempool": true, + "TraceMux": false, + "TracePeerSelection": true, + "TracePeerSelectionActions": true, + "TracePublicRootPeers": true, + "TraceServer": true, + "TraceTxInbound": false, + "TraceTxOutbound": false, + "TraceTxSubmissionProtocol": false, + "TracingVerbosity": "NormalVerbosity", + "TurnOnLogMetrics": true, + "TurnOnLogging": true, + "UseTraceDispatcher": false, + "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/docs/environments-pre/preview/conway-genesis.json b/docs/environments-pre/preview/conway-genesis.json new file mode 100644 index 00000000..4f8b1d06 --- /dev/null +++ b/docs/environments-pre/preview/conway-genesis.json @@ -0,0 +1,297 @@ +{ + "poolVotingThresholds": { + "committeeNormal": 0.51, + "committeeNoConfidence": 0.51, + "hardForkInitiation": 0.51, + "motionNoConfidence": 0.51, + "ppSecurityGroup": 0.51 + }, + "dRepVotingThresholds": { + "motionNoConfidence": 0.67, + "committeeNormal": 0.67, + "committeeNoConfidence": 0.6, + "updateToConstitution": 0.75, + "hardForkInitiation": 0.6, + "ppNetworkGroup": 0.67, + "ppEconomicGroup": 0.67, + "ppTechnicalGroup": 0.67, + "ppGovGroup": 0.75, + "treasuryWithdrawal": 0.67 + }, + "committeeMinSize": 0, + "committeeMaxTermLength": 365, + "govActionLifetime": 30, + "govActionDeposit": 100000000000, + "dRepDeposit": 500000000, + "dRepActivity": 20, + "minFeeRefScriptCostPerByte": 15, + "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 + ], + "constitution": { + "anchor": { + "dataHash": "ca41a91f399259bcefe57f9858e91f6d00e1a38d6d9c63d4052914ea7bd70cb2", + "url": "ipfs://bafkreifnwj6zpu3ixa4siz2lndqybyc5wnnt3jkwyutci4e2tmbnj3xrdm" + }, + "script": "fa24fb305126805cf2164c161d852a0e7330cf988f1fe558cf7d4a64" + }, + "committee": { + "members": { + "scriptHash-ff9babf23fef3f54ec29132c07a8e23807d7b395b143ecd8ff79f4c7": 1000 + }, + "threshold": { + "numerator": 2, + "denominator": 3 + } + } +} diff --git a/docs/environments-pre/preview/db-sync-config.json b/docs/environments-pre/preview/db-sync-config.json new file mode 100644 index 00000000..6a5e0139 --- /dev/null +++ b/docs/environments-pre/preview/db-sync-config.json @@ -0,0 +1,115 @@ +{ + "EnableFutureGenesis": true, + "EnableLogMetrics": false, + "EnableLogging": true, + "NetworkName": "preview", + "NodeConfigFile": "config.json", + "PrometheusPort": 8080, + "RequiresNetworkMagic": "RequiresMagic", + "defaultBackends": [ + "KatipBK" + ], + "defaultScribes": [ + [ + "StdoutSK", + "stdout" + ] + ], + "minSeverity": "Info", + "options": { + "cfokey": { + "value": "Release-1.0.0" + }, + "mapBackends": {}, + "mapSeverity": { + "db-sync-node": "Info", + "db-sync-node.Mux": "Error", + "db-sync-node.Subscription": "Error" + }, + "mapSubtrace": { + "#ekgview": { + "contents": [ + [ + { + "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": "Contains" + } + ] + ], + [ + { + "contents": "#ekgview.#aggregation.cardano.epoch-validation.benchmark", + "tag": "StartsWith" + }, + [ + { + "contents": "diff.RTS.gcNum.timed.", + "tag": "Contains" + } + ] + ] + ], + "subtrace": "FilterTrace" + }, + "#messagecounters.aggregation": { + "subtrace": "NoTrace" + }, + "#messagecounters.ekgview": { + "subtrace": "NoTrace" + }, + "#messagecounters.katip": { + "subtrace": "NoTrace" + }, + "#messagecounters.monitoring": { + "subtrace": "NoTrace" + }, + "#messagecounters.switchboard": { + "subtrace": "NoTrace" + }, + "benchmark": { + "contents": [ + "GhcRtsStats", + "MonotonicClock" + ], + "subtrace": "ObservableTrace" + }, + "cardano.epoch-validation.utxo-stats": { + "subtrace": "NoTrace" + } + } + }, + "rotation": { + "rpKeepFilesNum": 10, + "rpLogLimitBytes": 5000000, + "rpMaxAgeHours": 24 + }, + "setupBackends": [ + "AggregationBK", + "KatipBK" + ], + "setupScribes": [ + { + "scFormat": "ScText", + "scKind": "StdoutSK", + "scName": "stdout", + "scRotation": null + } + ] +} diff --git a/docs/environments-pre/preview/guardrails-script.plutus b/docs/environments-pre/preview/guardrails-script.plutus new file mode 100644 index 00000000..b6af50ac --- /dev/null +++ b/docs/environments-pre/preview/guardrails-script.plutus @@ -0,0 +1,5 @@ +{ + "type": "PlutusScriptV3", + "description": "", + "cborHex": "5908545908510101003232323232323232323232323232323232323232323232323232323232323232323232323232323232259323255333573466e1d20000011180098111bab357426ae88d55cf00104554ccd5cd19b87480100044600422c6aae74004dd51aba1357446ae88d55cf1baa3255333573466e1d200a35573a002226ae84d5d11aab9e00111637546ae84d5d11aba235573c6ea800642b26006003149a2c8a4c301f801c0052000c00e0070018016006901e4070c00e003000c00d20d00fc000c0003003800a4005801c00e003002c00d20c09a0c80e1801c006001801a4101b5881380018000600700148013003801c006005801a410100078001801c006001801a4101001f8001800060070014801b0038018096007001800600690404002600060001801c0052008c00e006025801c006001801a41209d8001800060070014802b003801c006005801a410112f501c3003800c00300348202b7881300030000c00e00290066007003800c00b003482032ad7b806038403060070014803b00380180960003003800a4021801c00e003002c00d20f40380e1801c006001801a41403f800100a0c00e0029009600f0030078040c00e002900a600f003800c00b003301a483403e01a600700180060066034904801e00060001801c0052016c01e00600f801c006001801980c2402900e30000c00e002901060070030128060c00e00290116007003800c00b003483c0ba03860070018006006906432e00040283003800a40498003003800a404d802c00e00f003800c00b003301a480cb0003003800c003003301a4802b00030001801c01e0070018016006603490605c0160006007001800600660349048276000600030000c00e0029014600b003801c00c04b003800c00300348203a2489b00030001801c00e006025801c006001801a4101b11dc2df80018000c0003003800a4055802c00e007003012c00e003000c00d2080b8b872c000c0006007003801809600700180060069040607e4155016000600030000c00e00290166007003012c00e003000c00d2080c001c000c0003003800a405d801c00e003002c00d20c80180e1801c006001801a412007800100a0c00e00290186007003013c0006007001480cb005801801e006003801800e00600500403003800a4069802c00c00f003001c00c007003803c00e003002c00c05300333023480692028c0004014c00c00b003003c00c00f003003c00e00f003800c00b00301480590052008003003800a406d801c00e003002c00d2000c00d2006c00060070018006006900a600060001801c0052038c00e007001801600690006006901260003003800c003003483281300020141801c005203ac00e006027801c006001801a403d800180006007001480f3003801804e00700180060069040404af3c4e302600060001801c005203ec00e006013801c006001801a4101416f0fd20b80018000600700148103003801c006005801a403501c3003800c0030034812b00030000c00e0029021600f003800c00a01ac00e003000c00ccc08d20d00f4800b00030000c0000000000803c00c016008401e006009801c006001801807e0060298000c000401e006007801c0060018018074020c000400e00f003800c00b003010c000802180020070018006006019801805e0003000400600580180760060138000800c00b00330134805200c400e00300080330004006005801a4001801a410112f58000801c00600901260008019806a40118002007001800600690404a75ee01e00060008018046000801801e000300c4832004c025201430094800a0030028052003002c00d2002c000300648010c0092002300748028c0312000300b48018c0292012300948008c0212066801a40018000c0192008300a2233335573e00250002801994004d55ce800cd55cf0008d5d08014c00cd5d10011263009222532900389800a4d2219002912c80344c01526910c80148964cc04cdd68010034564cc03801400626601800e0071801226601800e01518010096400a3000910c008600444002600244004a664600200244246466004460044460040064600444600200646a660080080066a00600224446600644b20051800484ccc02600244666ae68cdc3801000c00200500a91199ab9a33710004003000801488ccd5cd19b89002001800400a44666ae68cdc4801000c00a00122333573466e20008006005000912a999ab9a3371200400222002220052255333573466e2400800444008440040026eb400a42660080026eb000a4264666015001229002914801c8954ccd5cd19b8700400211333573466e1c00c006001002118011229002914801c88cc044cdc100200099b82002003245200522900391199ab9a3371066e08010004cdc1001001c002004403245200522900391199ab9a3371266e08010004cdc1001001c00a00048a400a45200722333573466e20cdc100200099b820020038014000912c99807001000c40062004912c99807001000c400a2002001199919ab9a357466ae880048cc028dd69aba1003375a6ae84008d5d1000934000dd60010a40064666ae68d5d1800c0020052225933006003357420031330050023574400318010600a444aa666ae68cdc3a400000222c22aa666ae68cdc4000a4000226600666e05200000233702900000088994004cdc2001800ccdc20010008cc010008004c01088954ccd5cd19b87480000044400844cc00c004cdc300100091119803112c800c60012219002911919806912c800c4c02401a442b26600a004019130040018c008002590028c804c8888888800d1900991111111002a244b267201722222222008001000c600518000001112a999ab9a3370e004002230001155333573466e240080044600823002229002914801c88ccd5cd19b893370400800266e0800800e00100208c8c0040048c0088cc008008005" +} \ No newline at end of file diff --git a/docs/environments-pre/preview/peer-snapshot.json b/docs/environments-pre/preview/peer-snapshot.json new file mode 100644 index 00000000..135e4a5f --- /dev/null +++ b/docs/environments-pre/preview/peer-snapshot.json @@ -0,0 +1,1094 @@ +{ + "bigLedgerPools": [ + { + "accumulatedStake": 0.09289816883655608, + "relativeStake": 0.09289816883655608, + "relays": [ + { + "domain": "preview1-node.play.dev.cardano.org", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.15825812723246388, + "relativeStake": 0.06535995839590779, + "relays": [ + { + "domain": "node1.cardano.gratis", + "port": 6501 + }, + { + "domain": "node2.cardano.gratis", + "port": 6502 + }, + { + "domain": "mbb3.cardano.gratis", + "port": 6503 + } + ] + }, + { + "accumulatedStake": 0.20030783777588748, + "relativeStake": 0.042049710543423616, + "relays": [ + { + "domain": "tn-preview.psilobyte.io", + "port": 4201 + }, + { + "domain": "tn-preview2.psilobyte.io", + "port": 4202 + } + ] + }, + { + "accumulatedStake": 0.23201378167685865, + "relativeStake": 0.03170594390097117, + "relays": [ + { + "address": "132.145.71.219", + "port": 6001 + } + ] + }, + { + "accumulatedStake": 0.25962748913148215, + "relativeStake": 0.027613707454623476, + "relays": [ + { + "domain": "adaboy-preview-1c.gleeze.com", + "port": 5000 + }, + { + "domain": "adaboy-preview-2c.gleeze.com", + "port": 5000 + } + ] + }, + { + "accumulatedStake": 0.2820089887688403, + "relativeStake": 0.022381499637358162, + "relays": [ + { + "domain": "preview.world.bbhmm.net", + "port": 6200 + } + ] + }, + { + "accumulatedStake": 0.3038506492126152, + "relativeStake": 0.021841660443774873, + "relays": [ + { + "address": "73.222.122.247", + "port": 23001 + } + ] + }, + { + "accumulatedStake": 0.32424062170461865, + "relativeStake": 0.02038997249200346, + "relays": [ + { + "domain": "preview1.volcyada.com", + "port": 6004 + }, + { + "domain": "preview2.volcyada.com", + "port": 6005 + }, + { + "domain": "preview3.volcyada.com", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.3426308546832982, + "relativeStake": 0.01839023297867954, + "relays": [ + { + "domain": "relay-m.fluxpool.cc", + "port": 5001 + } + ] + }, + { + "accumulatedStake": 0.3604847256618092, + "relativeStake": 0.017853870978511075, + "relays": [ + { + "domain": "sully.crabdance.com", + "port": 6004 + } + ] + }, + { + "accumulatedStake": 0.3775565518717764, + "relativeStake": 0.017071826209967153, + "relays": [ + { + "address": "204.216.214.226", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.39353980492124574, + "relativeStake": 0.015983253049469362, + "relays": [ + { + "address": "75.119.130.108", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.40812303109651177, + "relativeStake": 0.014583226175265992, + "relays": [ + { + "address": "161.97.167.41", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.42202766457345364, + "relativeStake": 0.013904633476941902, + "relays": [ + { + "domain": "preview.leadstakepool.com", + "port": 3001 + }, + { + "domain": "preview.leadstakepool.com", + "port": 3002 + } + ] + }, + { + "accumulatedStake": 0.43479144124854924, + "relativeStake": 0.012763776675095581, + "relays": [ + { + "domain": "8.tcp.eu.ngrok.io", + "port": 28964 + } + ] + }, + { + "accumulatedStake": 0.44723248319706654, + "relativeStake": 0.012441041948517301, + "relays": [ + { + "domain": "129.213.55.211", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.4587498622455541, + "relativeStake": 0.011517379048487559, + "relays": [ + { + "domain": "relay1.preview.stakepool.quebec", + "port": 4000 + } + ] + }, + { + "accumulatedStake": 0.47019750430362395, + "relativeStake": 0.011447642058069835, + "relays": [ + { + "domain": "1.tcp.au.ngrok.io", + "port": 25432 + } + ] + }, + { + "accumulatedStake": 0.4812048145097918, + "relativeStake": 0.011007310206167877, + "relays": [ + { + "domain": "relay.test.lidonation.com", + "port": 3010 + } + ] + }, + { + "accumulatedStake": 0.49201589672213086, + "relativeStake": 0.010811082212339071, + "relays": [ + { + "address": "82.208.22.91", + "port": 6003 + } + ] + }, + { + "accumulatedStake": 0.5027718804155512, + "relativeStake": 0.010755983693420346, + "relays": [ + { + "domain": "previewrelay.stakepoolcentral.com", + "port": 15654 + } + ] + }, + { + "accumulatedStake": 0.5134202660107918, + "relativeStake": 0.010648385595240572, + "relays": [ + { + "address": "90.251.253.249", + "port": 3000 + } + ] + }, + { + "accumulatedStake": 0.5240654653281376, + "relativeStake": 0.010645199317345807, + "relays": [ + { + "domain": "preview-r1.panl.org", + "port": 3015 + } + ] + }, + { + "accumulatedStake": 0.534465782906997, + "relativeStake": 0.010400317578859319, + "relays": [ + { + "domain": "preview.frcan.com", + "port": 6010 + } + ] + }, + { + "accumulatedStake": 0.5446299672465801, + "relativeStake": 0.01016418433958317, + "relays": [ + { + "address": "73.54.73.48", + "port": 6000 + }, + { + "address": "144.126.157.225", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.5547507039453439, + "relativeStake": 0.010120736698763755, + "relays": [ + { + "domain": "adar-monitor.freeddns.org", + "port": 3010 + } + ] + }, + { + "accumulatedStake": 0.5648100954194579, + "relativeStake": 0.0100593914741141, + "relays": [ + { + "domain": "relay01.preview.junglestakepool.com", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.574587146600445, + "relativeStake": 0.009777051180987028, + "relays": [ + { + "domain": "test.smaug.pool.pm", + "port": 3003 + } + ] + }, + { + "accumulatedStake": 0.5842350095335263, + "relativeStake": 0.009647862933081282, + "relays": [ + { + "address": "207.180.211.199", + "port": 6007 + } + ] + }, + { + "accumulatedStake": 0.593615650185432, + "relativeStake": 0.009380640651905785, + "relays": [ + { + "address": "142.132.229.15", + "port": 6001 + } + ] + }, + { + "accumulatedStake": 0.6028646982759558, + "relativeStake": 0.009249048090523728, + "relays": [ + { + "domain": "144.126.157.40", + "port": 3005 + }, + { + "domain": "144.126.157.40", + "port": 3006 + } + ] + }, + { + "accumulatedStake": 0.6121135255681222, + "relativeStake": 0.009248827292166367, + "relays": [ + { + "domain": "testnet.valhallapool.net", + "port": 3000 + } + ] + }, + { + "accumulatedStake": 0.6212707746610211, + "relativeStake": 0.009157249092898917, + "relays": [ + { + "domain": "preview-testnet-relay.cardanistas.io", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.630272721661647, + "relativeStake": 0.009001947000626034, + "relays": [ + { + "address": "88.198.86.62", + "port": 4444 + } + ] + }, + { + "accumulatedStake": 0.6392383575737198, + "relativeStake": 0.008965635912072754, + "relays": [ + { + "domain": "beta.stake-cardano-pool.com", + "port": 7002 + } + ] + }, + { + "accumulatedStake": 0.6479390316594733, + "relativeStake": 0.008700674085753477, + "relays": [ + { + "domain": "preview-node.world.dev.cardano.org", + "port": 30002 + } + ] + }, + { + "accumulatedStake": 0.6566104509122048, + "relativeStake": 0.008671419252731509, + "relays": [ + { + "domain": "relay1.afica.io", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.665269272893583, + "relativeStake": 0.008658821981378087, + "relays": [ + { + "domain": "beadapool.ddns.net", + "port": 6001 + } + ] + }, + { + "accumulatedStake": 0.6737911699841745, + "relativeStake": 0.008521897090591618, + "relays": [ + { + "address": "52.166.113.150", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.682253505135175, + "relativeStake": 0.00846233515100051, + "relays": [ + { + "domain": "bbotest.duckdns.org", + "port": 6000 + }, + { + "domain": "bbotest01.duckdns.org", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.6906452123227652, + "relativeStake": 0.008391707187590126, + "relays": [ + { + "domain": "preview.testnet.cryptobounty.org", + "port": 6161 + } + ] + }, + { + "accumulatedStake": 0.6989781435200817, + "relativeStake": 0.008332931197316557, + "relays": [ + { + "domain": "adrelay.hawak.cloud", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.707305567569283, + "relativeStake": 0.008327424049201277, + "relays": [ + { + "domain": "preview-testnet-relay.junostakepool.com", + "port": 4521 + }, + { + "domain": "passive-preview-testnet-relay.junostakepool.com", + "port": 4531 + } + ] + }, + { + "accumulatedStake": 0.7155572671999648, + "relativeStake": 0.008251699630681853, + "relays": [ + { + "domain": "preview.adastack.net", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.723798497409419, + "relativeStake": 0.008241230209454135, + "relays": [ + { + "address": "194.163.149.210", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.731920407473913, + "relativeStake": 0.008121910064493943, + "relays": [ + { + "address": "128.140.96.209", + "port": 8000 + } + ] + }, + { + "accumulatedStake": 0.7400389412675705, + "relativeStake": 0.008118533793657623, + "relays": [ + { + "domain": "esq.ddns.net", + "port": 6010 + }, + { + "domain": "esq.ddns.net", + "port": 6011 + } + ] + }, + { + "accumulatedStake": 0.7481332909135958, + "relativeStake": 0.008094349646025298, + "relays": [ + { + "domain": "scarborough1.ddns.net", + "port": 6000 + }, + { + "domain": "scarborough1.ddns.net", + "port": 6001 + }, + { + "domain": "scarborough1.ddns.net", + "port": 6002 + } + ] + }, + { + "accumulatedStake": 0.7562121463708954, + "relativeStake": 0.008078855457299574, + "relays": [ + { + "domain": "alpha.relays.preview.mochipool.com", + "port": 7777 + } + ] + }, + { + "accumulatedStake": 0.764286122583907, + "relativeStake": 0.008073976213011655, + "relays": [ + { + "address": "5.161.75.212", + "port": 5003 + }, + { + "address": "100.100.100.100", + "port": 100 + }, + { + "address": "200.200.200.200", + "port": 200 + } + ] + }, + { + "accumulatedStake": 0.7723313765445476, + "relativeStake": 0.008045253960640564, + "relays": [ + { + "address": "184.174.32.106", + "port": 6002 + } + ] + }, + { + "accumulatedStake": 0.7803439956626369, + "relativeStake": 0.008012619118089252, + "relays": [ + { + "address": "194.60.201.143", + "port": 6001 + } + ] + }, + { + "accumulatedStake": 0.7874607517888133, + "relativeStake": 0.007116756126176332, + "relays": [ + { + "domain": "r1.pv.mrbee.io", + "port": 3101 + } + ] + }, + { + "accumulatedStake": 0.7939609484022502, + "relativeStake": 0.0065001966134369685, + "relays": [ + { + "address": "130.162.231.122", + "port": 6001 + } + ] + }, + { + "accumulatedStake": 0.7991755159472423, + "relativeStake": 0.005214567544992157, + "relays": [ + { + "domain": "prv-relay1.apexpool.info", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.8042778691127376, + "relativeStake": 0.0051023531654952, + "relays": [ + { + "domain": "relay.preview.cardanostakehouse.com", + "port": 11000 + } + ] + }, + { + "accumulatedStake": 0.8091072983805395, + "relativeStake": 0.004829429267802015, + "relays": [ + { + "address": "198.13.63.94", + "port": 4002 + }, + { + "address": "108.61.201.198", + "port": 4002 + } + ] + }, + { + "accumulatedStake": 0.8137374823668805, + "relativeStake": 0.004630183986340929, + "relays": [ + { + "domain": "preview.canadastakes.ca", + "port": 5002 + } + ] + }, + { + "accumulatedStake": 0.8182572546066514, + "relativeStake": 0.004519772239770917, + "relays": [ + { + "address": "194.60.201.143", + "port": 6001 + } + ] + }, + { + "accumulatedStake": 0.821629789781986, + "relativeStake": 0.00337253517533459, + "relays": [ + { + "domain": "preview-relays.onyxstakepool.com", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.8246087768234774, + "relativeStake": 0.002978987041491462, + "relays": [ + { + "address": "18.219.254.123", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.8274398819713624, + "relativeStake": 0.0028311051478849074, + "relays": [ + { + "domain": "testnet-relay.xstakepool.com", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.8302594868482059, + "relativeStake": 0.002819604876843548, + "relays": [ + { + "address": "0.0.0.0", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.8330242981297461, + "relativeStake": 0.0027648112815401972, + "relays": [ + { + "domain": "topo-test.topopool.com", + "port": 3010 + } + ] + }, + { + "accumulatedStake": 0.8356006121849499, + "relativeStake": 0.0025763140552037844, + "relays": [ + { + "domain": "ava1.sytes.net", + "port": 6010 + } + ] + }, + { + "accumulatedStake": 0.8380939733891081, + "relativeStake": 0.002493361204158133, + "relays": [ + { + "domain": "test.stakepool.at", + "port": 9001 + } + ] + }, + { + "accumulatedStake": 0.8405812456223296, + "relativeStake": 0.002487272233221543, + "relays": [ + { + "domain": "preview.bladepool.com", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.8430623185682086, + "relativeStake": 0.0024810729458789992, + "relays": [ + { + "domain": "preview.relays.liqwid.finance", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.8454727401833807, + "relativeStake": 0.0024104216151721288, + "relays": [ + { + "address": "69.128.162.203", + "port": 3000 + } + ] + }, + { + "accumulatedStake": 0.8477213171831962, + "relativeStake": 0.002248576999815546, + "relays": [ + { + "domain": "pn1.powerfulpools.com", + "port": 6030 + } + ] + }, + { + "accumulatedStake": 0.8499018461835024, + "relativeStake": 0.0021805290003061558, + "relays": [ + { + "domain": "d8bdbfbe.cardano-relay.bison.run", + "port": 1338 + } + ] + }, + { + "accumulatedStake": 0.8520178004291812, + "relativeStake": 0.002115954245678825, + "relays": [ + { + "domain": "157.173.103.26", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.8541310297073298, + "relativeStake": 0.0021132292781485596, + "relays": [ + { + "domain": "preview-test.ahlnet.nu", + "port": 2102 + } + ] + }, + { + "accumulatedStake": 0.8560945382513954, + "relativeStake": 0.0019635085440655644, + "relays": [ + { + "domain": "midnight-testnet.digitalfortress.online", + "port": 8001 + } + ] + }, + { + "accumulatedStake": 0.8580474263586461, + "relativeStake": 0.0019528881072507103, + "relays": [ + { + "domain": "previewrelay1.intertreecryptoconsultants.com", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.8599902281843963, + "relativeStake": 0.0019428018257502818, + "relays": [ + { + "domain": "pv-relays.digitalfortress.online", + "port": 8001 + } + ] + }, + { + "accumulatedStake": 0.8619001928287053, + "relativeStake": 0.0019099646443090162, + "relays": [ + { + "domain": "relay0-testnet.zeropercentstaking.com", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.8637795461955349, + "relativeStake": 0.0018793533668294892, + "relays": [ + { + "domain": "1.tcp.ap.ngrok.io", + "port": 25317 + } + ] + }, + { + "accumulatedStake": 0.8656491140653676, + "relativeStake": 0.001869567869832719, + "relays": [ + { + "address": "2001:861:4000:2b80:216:3eff:fe05:9009", + "port": 6006 + } + ] + }, + { + "accumulatedStake": 0.8673837021057317, + "relativeStake": 0.001734588040364049, + "relays": [ + { + "address": "2001:861:4000:2b80:216:3eff:feb6:d700", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.8690756655925269, + "relativeStake": 0.0016919634867952496, + "relays": [ + { + "domain": "spec2-staging.spirestaking2.com", + "port": 3006 + } + ] + }, + { + "accumulatedStake": 0.8707306579985138, + "relativeStake": 0.0016549924059869364, + "relays": [ + { + "address": "95.216.173.194", + "port": 16000 + } + ] + }, + { + "accumulatedStake": 0.8723282374585594, + "relativeStake": 0.0015975794600455175, + "relays": [ + { + "address": "88.198.86.61", + "port": 8888 + } + ] + }, + { + "accumulatedStake": 0.8739173439440143, + "relativeStake": 0.0015891064854550304, + "relays": [ + { + "address": "192.167.57.23", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.8754901102706356, + "relativeStake": 0.00157276632662124, + "relays": [ + { + "address": "168.138.37.117", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.8770294064755557, + "relativeStake": 0.001539296204920071, + "relays": [ + { + "address": "65.21.198.152", + "port": 3003 + } + ] + }, + { + "accumulatedStake": 0.8785630468488305, + "relativeStake": 0.0015336403732747702, + "relays": [ + { + "domain": "spec1-staging.spirestaking2.com", + "port": 3005 + } + ] + }, + { + "accumulatedStake": 0.8800937304909449, + "relativeStake": 0.0015306836421144626, + "relays": [ + { + "domain": "preview.ada.chicando.net", + "port": 3002 + } + ] + }, + { + "accumulatedStake": 0.8816227072073652, + "relativeStake": 0.0015289767164203068, + "relays": [ + { + "domain": "f7ca89d1.cardano-relay.stagebison.net", + "port": 1338 + } + ] + }, + { + "accumulatedStake": 0.8831490943093807, + "relativeStake": 0.0015263871020154737, + "relays": [ + { + "domain": "eu-central-1.relay-preview.easy1staking.com", + "port": 30100 + } + ] + }, + { + "accumulatedStake": 0.8846610901725336, + "relativeStake": 0.0015119958631529347, + "relays": [ + { + "domain": "relay.preview.crimsonpool.com", + "port": 3000 + } + ] + }, + { + "accumulatedStake": 0.88614223803845, + "relativeStake": 0.0014811478659164047, + "relays": [ + { + "domain": "testicles.kiwipool.org", + "port": 9720 + } + ] + }, + { + "accumulatedStake": 0.8876111281216277, + "relativeStake": 0.001468890083177691, + "relays": [ + { + "address": "152.53.108.208", + "port": 8081 + } + ] + }, + { + "accumulatedStake": 0.8890711672937353, + "relativeStake": 0.0014600391721075877, + "relays": [ + { + "address": "51.77.24.220", + "port": 4003 + } + ] + }, + { + "accumulatedStake": 0.8905258968635419, + "relativeStake": 0.001454729569806531, + "relays": [ + { + "domain": "pv-relays.digitalfortress.online", + "port": 8001 + } + ] + }, + { + "accumulatedStake": 0.8919793656210733, + "relativeStake": 0.0014534687575314014, + "relays": [ + { + "domain": "preview.happystaking.io", + "port": 3003 + } + ] + }, + { + "accumulatedStake": 0.8934283328407039, + "relativeStake": 0.001448967219630703, + "relays": [ + { + "address": "185.43.205.110", + "port": 3003 + } + ] + }, + { + "accumulatedStake": 0.8948748263924357, + "relativeStake": 0.0014464935517317487, + "relays": [ + { + "domain": "pv-relays.digitalfortress.online", + "port": 8001 + } + ] + }, + { + "accumulatedStake": 0.8963068083957848, + "relativeStake": 0.001431982003349146, + "relays": [ + { + "address": "152.53.38.172", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.8977363776641413, + "relativeStake": 0.0014295692683563947, + "relays": [ + { + "domain": "preview2-node.play.dev.cardano.org", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.8991606889421604, + "relativeStake": 0.0014243112780191788, + "relays": [ + { + "domain": "preview3-node.play.dev.cardano.org", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.9005451392542357, + "relativeStake": 0.0013844503120753662, + "relays": [ + { + "address": "217.180.194.220", + "port": 6000 + } + ] + } + ], + "slotNo": 83170148, + "version": 1 +} diff --git a/docs/environments-pre/preview/shelley-genesis.json b/docs/environments-pre/preview/shelley-genesis.json new file mode 100644 index 00000000..20abba3f --- /dev/null +++ b/docs/environments-pre/preview/shelley-genesis.json @@ -0,0 +1,68 @@ +{ + "activeSlotsCoeff": 0.05, + "epochLength": 86400, + "genDelegs": { + "12b0f443d02861948a0fce9541916b014e8402984c7b83ad70a834ce": { + "delegate": "7c54a168c731f2f44ced620f3cca7c2bd90731cab223d5167aa994e6", + "vrf": "62d546a35e1be66a2b06e29558ef33f4222f1c466adbb59b52d800964d4e60ec" + }, + "3df542796a64e399b60c74acfbdb5afa1e114532fa36b46d6368ef3a": { + "delegate": "c44bc2f3cc7e98c0f227aa399e4035c33c0d775a0985875fff488e20", + "vrf": "4f9d334decadff6eba258b2df8ae1f02580a2628bce47ae7d957e1acd3f42a3c" + }, + "93fd5083ff20e7ab5570948831730073143bea5a5d5539852ed45889": { + "delegate": "82a02922f10105566b70366b07c758c8134fa91b3d8ae697dfa5e8e0", + "vrf": "8a57e94a9b4c65ec575f35d41edb1df399fa30fdf10775389f5d1ef670ca3f9f" + }, + "a86cab3ea72eabb2e8aafbbf4abbd2ba5bdfd04eea26a39b126a78e4": { + "delegate": "10257f6d3bae913514bdc96c9170b3166bf6838cca95736b0e418426", + "vrf": "1b54aad6b013145a0fc74bb5c2aa368ebaf3999e88637d78e09706d0cc29874a" + }, + "b799804a28885bd49c0e1b99d8b3b26de0fac17a5cf651ecf0c872f0": { + "delegate": "ebe606e22d932d51be2c1ce87e7d7e4c9a7d1f7df4a5535c29e23d22", + "vrf": "b3fc06a1f8ee69ff23185d9af453503be8b15b2652e1f9fb7c3ded6797a2d6f9" + }, + "d125812d6ab973a2c152a0525b7fd32d36ff13555a427966a9cac9b1": { + "delegate": "e302198135fb5b00bfe0b9b5623426f7cf03179ab7ba75f945d5b79b", + "vrf": "b45ca2ed95f92248fa0322ce1fc9f815a5a5aa2f21f1adc2c42c4dccfc7ba631" + }, + "ef27651990a26449a40767d5e06cdef1670a3f3ff4b951d385b51787": { + "delegate": "0e0b11e80d958732e587585d30978d683a061831d1b753878f549d05", + "vrf": "b860ec844f6cd476c4fabb4aa1ca72d5c74d82f3835aed3c9515a35b6e048719" + } + }, + "initialFunds": {}, + "maxKESEvolutions": 62, + "maxLovelaceSupply": 45000000000000000, + "networkId": "Testnet", + "networkMagic": 2, + "protocolParams": { + "protocolVersion": { + "minor": 0, + "major": 6 + }, + "decentralisationParam": 1, + "eMax": 18, + "extraEntropy": { + "tag": "NeutralNonce" + }, + "maxTxSize": 16384, + "maxBlockBodySize": 65536, + "maxBlockHeaderSize": 1100, + "minFeeA": 44, + "minFeeB": 155381, + "minUTxOValue": 1000000, + "poolDeposit": 500000000, + "minPoolCost": 340000000, + "keyDeposit": 2000000, + "nOpt": 150, + "rho": 0.003, + "tau": 0.20, + "a0": 0.3 + }, + "securityParam": 432, + "slotLength": 1, + "slotsPerKESPeriod": 129600, + "systemStart": "2022-10-25T00:00:00Z", + "updateQuorum": 5 +} diff --git a/docs/environments-pre/preview/submit-api-config.json b/docs/environments-pre/preview/submit-api-config.json new file mode 100644 index 00000000..a5abd690 --- /dev/null +++ b/docs/environments-pre/preview/submit-api-config.json @@ -0,0 +1,113 @@ +{ + "EnableLogMetrics": false, + "EnableLogging": true, + "GenesisHash": "83de1d7302569ad56cf9139a41e2e11346d4cb4a31c00142557b6ab3fa550761", + "PrometheusPort": 8080, + "RequiresNetworkMagic": "RequiresMagic", + "defaultBackends": [ + "KatipBK" + ], + "defaultScribes": [ + [ + "StdoutSK", + "stdout" + ] + ], + "minSeverity": "Info", + "options": { + "cfokey": { + "value": "Release-1.0.0" + }, + "mapBackends": {}, + "mapSeverity": { + "db-sync-node": "Info", + "db-sync-node.Mux": "Error", + "db-sync-node.Subscription": "Error" + }, + "mapSubtrace": { + "#ekgview": { + "contents": [ + [ + { + "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": "Contains" + } + ] + ], + [ + { + "contents": "#ekgview.#aggregation.cardano.epoch-validation.benchmark", + "tag": "StartsWith" + }, + [ + { + "contents": "diff.RTS.gcNum.timed.", + "tag": "Contains" + } + ] + ] + ], + "subtrace": "FilterTrace" + }, + "#messagecounters.aggregation": { + "subtrace": "NoTrace" + }, + "#messagecounters.ekgview": { + "subtrace": "NoTrace" + }, + "#messagecounters.katip": { + "subtrace": "NoTrace" + }, + "#messagecounters.monitoring": { + "subtrace": "NoTrace" + }, + "#messagecounters.switchboard": { + "subtrace": "NoTrace" + }, + "benchmark": { + "contents": [ + "GhcRtsStats", + "MonotonicClock" + ], + "subtrace": "ObservableTrace" + }, + "cardano.epoch-validation.utxo-stats": { + "subtrace": "NoTrace" + } + } + }, + "rotation": { + "rpKeepFilesNum": 10, + "rpLogLimitBytes": 5000000, + "rpMaxAgeHours": 24 + }, + "setupBackends": [ + "AggregationBK", + "KatipBK" + ], + "setupScribes": [ + { + "scFormat": "ScText", + "scKind": "StdoutSK", + "scName": "stdout", + "scRotation": null + } + ] +} diff --git a/static/book.play.dev.cardano.org/environments-pre/preprod/topology-genesis-mode.json b/docs/environments-pre/preview/topology.json similarity index 64% rename from static/book.play.dev.cardano.org/environments-pre/preprod/topology-genesis-mode.json rename to docs/environments-pre/preview/topology.json index 46c526b1..8afbe632 100644 --- a/static/book.play.dev.cardano.org/environments-pre/preprod/topology-genesis-mode.json +++ b/docs/environments-pre/preview/topology.json @@ -1,4 +1,10 @@ { + "bootstrapPeers": [ + { + "address": "preview-node.play.dev.cardano.org", + "port": 3001 + } + ], "localRoots": [ { "accessPoints": [], @@ -7,12 +13,12 @@ "valency": 1 } ], + "peerSnapshotFile": "peer-snapshot.json", "publicRoots": [ { "accessPoints": [], "advertise": false } ], - "peerSnapshotFile": "peer-snapshot.json", - "useLedgerAfterSlot": 83894000 + "useLedgerAfterSlot": 83116868 } diff --git a/flake.lock b/flake.lock index c3904769..8f2fdf79 100644 --- a/flake.lock +++ b/flake.lock @@ -206,11 +206,11 @@ }, "capkgs": { "locked": { - "lastModified": 1746627884, - "narHash": "sha256-wcu/pOW54b2t+tL8bzW7pcGNTzKGEbeAzCkScZzT3Ig=", + "lastModified": 1750254939, + "narHash": "sha256-P0N8TOddVyzHkIpDPdGsXbhR6W1vAhpOUvZPvyrrcNY=", "owner": "input-output-hk", "repo": "capkgs", - "rev": "5645b1f13ecc500569754284b5f2ad2772c637d0", + "rev": "ba03172728d491a2a1619755c885a3bcdbdfb43c", "type": "github" }, "original": { @@ -269,6 +269,22 @@ "type": "github" } }, + "cardano-db-sync-service-ng": { + "flake": false, + "locked": { + "lastModified": 1749798397, + "narHash": "sha256-3tzP/6KrFVoFAtguO/Yd7yRPXbldBSjWsrdO1sc9zA0=", + "owner": "IntersectMBO", + "repo": "cardano-db-sync", + "rev": "da764296943a1de65a5085810bf70f55e6bda289", + "type": "github" + }, + "original": { + "owner": "IntersectMBO", + "repo": "cardano-db-sync", + "type": "github" + } + }, "cardano-metadata-service": { "flake": false, "locked": { @@ -333,17 +349,17 @@ "cardano-node-service-ng": { "flake": false, "locked": { - "lastModified": 1746450573, - "narHash": "sha256-Szhph7YncIbQ+/QmqzSW61WLConBa8XIA6K/3A8mP00=", + "lastModified": 1750274327, + "narHash": "sha256-eJble5dz62eE0VNmHJhoYJn/xowHSbvlkcJtfwO8QH0=", "owner": "IntersectMBO", "repo": "cardano-node", - "rev": "0983ac29304aadac74a5604eeefa76cfbcc91611", + "rev": "7e86a3633f52e160ea3f81721642688903505782", "type": "github" }, "original": { "owner": "IntersectMBO", + "ref": "jl/new-tracing-service", "repo": "cardano-node", - "rev": "0983ac29304aadac74a5604eeefa76cfbcc91611", "type": "github" } }, @@ -373,11 +389,15 @@ "cardano-db-sync-schema": "cardano-db-sync-schema", "cardano-db-sync-schema-ng": "cardano-db-sync-schema-ng", "cardano-db-sync-service": "cardano-db-sync-service", + "cardano-db-sync-service-ng": "cardano-db-sync-service-ng", "cardano-metadata-service": "cardano-metadata-service", "cardano-node-service": "cardano-node-service", "cardano-node-service-ng": "cardano-node-service-ng", "cardano-ogmios-service": "cardano-ogmios-service", + "cardano-submit-api-service": "cardano-submit-api-service", + "cardano-submit-api-service-ng": "cardano-submit-api-service-ng", "cardano-tracer-service": "cardano-tracer-service", + "cardano-tracer-service-ng": "cardano-tracer-service-ng", "cardano-wallet-service": "cardano-wallet-service", "colmena": "colmena", "flake-parts": "flake-parts", @@ -395,16 +415,16 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1749161364, - "narHash": "sha256-G2NHhvq3s/I/G3oaLId6znnsmfKAbn0PCjFB4zUcYDE=", + "lastModified": 1750277715, + "narHash": "sha256-5y20ooSTAjXP9VxO8JxRkWVSP4lvC+3ZitIHH80AtIM=", "owner": "input-output-hk", "repo": "cardano-parts", - "rev": "a531b5602e2682ad865dfdfbac412d9c0f6c3a61", + "rev": "fc3d839df581e3aedd609403a280fe5dcd1d888d", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "v2025-06-05", + "ref": "jl/new-tracing", "repo": "cardano-parts", "type": "github" } @@ -425,6 +445,40 @@ "type": "github" } }, + "cardano-submit-api-service": { + "flake": false, + "locked": { + "lastModified": 1745954148, + "narHash": "sha256-Moth/2BOCWDdgXrOX6fv2rykqe4zR9POjC+g4dlUqqc=", + "owner": "IntersectMBO", + "repo": "cardano-node", + "rev": "420c94fbb075146c6ec7fba78c5b0482fafe72dd", + "type": "github" + }, + "original": { + "owner": "IntersectMBO", + "ref": "10.4.1", + "repo": "cardano-node", + "type": "github" + } + }, + "cardano-submit-api-service-ng": { + "flake": false, + "locked": { + "lastModified": 1750182374, + "narHash": "sha256-fLNUecLWwZTvJuyekr53mb3fcC+tvCu6UBJuJ4vcYHI=", + "owner": "IntersectMBO", + "repo": "cardano-node", + "rev": "7e045ab501e99130a57f363f0964bb4f241c6550", + "type": "github" + }, + "original": { + "owner": "IntersectMBO", + "ref": "10.5.0", + "repo": "cardano-node", + "type": "github" + } + }, "cardano-tracer-service": { "flake": false, "locked": { @@ -442,6 +496,23 @@ "type": "github" } }, + "cardano-tracer-service-ng": { + "flake": false, + "locked": { + "lastModified": 1750274327, + "narHash": "sha256-eJble5dz62eE0VNmHJhoYJn/xowHSbvlkcJtfwO8QH0=", + "owner": "IntersectMBO", + "repo": "cardano-node", + "rev": "7e86a3633f52e160ea3f81721642688903505782", + "type": "github" + }, + "original": { + "owner": "IntersectMBO", + "ref": "jl/new-tracing-service", + "repo": "cardano-node", + "type": "github" + } + }, "cardano-wallet-service": { "flake": false, "locked": { @@ -1008,15 +1079,16 @@ "sodium": "sodium_2" }, "locked": { - "lastModified": 1747796208, - "narHash": "sha256-ZUBNrv+lO0CWhnN0R0ZiG/eIB+W5pnyAGsxf/lozECo=", + "lastModified": 1750276872, + "narHash": "sha256-qBWYXACqvJPU8HIzN7j6xGimpdMq1MsYSSxThag5V9Y=", "owner": "input-output-hk", "repo": "iohk-nix", - "rev": "281f635b01f8fe843baefe010a694f67041c0848", + "rev": "ec362fd271bd5eddf821879ae84afe75100b1a6b", "type": "github" }, "original": { "owner": "input-output-hk", + "ref": "jl/legacy-tracing-transition", "repo": "iohk-nix", "type": "github" } @@ -1029,15 +1101,16 @@ "sodium": "sodium_3" }, "locked": { - "lastModified": 1747796208, - "narHash": "sha256-ZUBNrv+lO0CWhnN0R0ZiG/eIB+W5pnyAGsxf/lozECo=", + "lastModified": 1750118009, + "narHash": "sha256-AgpwV2pcM5844elTb9yhlOlrwF/Jwxm7J2JjJTHQEII=", "owner": "input-output-hk", "repo": "iohk-nix", - "rev": "281f635b01f8fe843baefe010a694f67041c0848", + "rev": "e7a454189581106a17ff2f1acf990208557bb120", "type": "github" }, "original": { "owner": "input-output-hk", + "ref": "jl/new-tracing", "repo": "iohk-nix", "type": "github" } @@ -1451,32 +1524,32 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1684171562, - "narHash": "sha256-BMUWjVWAUdyMWKk0ATMC9H0Bv4qAV/TXwwPUvTiC5IQ=", + "lastModified": 1740683541, + "narHash": "sha256-t1NxrPg8UJCZQ039zSMYB5//XluEdwACTDIxDK31R1I=", "owner": "nixos", "repo": "nixpkgs", - "rev": "55af203d468a6f5032a519cba4f41acf5a74b638", + "rev": "2bc8d3dcc2eb6f7d23590b52042e274eda02318e", "type": "github" }, "original": { "owner": "nixos", - "ref": "release-22.11", + "ref": "release-24.11", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_5": { "locked": { - "lastModified": 1684171562, - "narHash": "sha256-BMUWjVWAUdyMWKk0ATMC9H0Bv4qAV/TXwwPUvTiC5IQ=", + "lastModified": 1740683541, + "narHash": "sha256-t1NxrPg8UJCZQ039zSMYB5//XluEdwACTDIxDK31R1I=", "owner": "nixos", "repo": "nixpkgs", - "rev": "55af203d468a6f5032a519cba4f41acf5a74b638", + "rev": "2bc8d3dcc2eb6f7d23590b52042e274eda02318e", "type": "github" }, "original": { "owner": "nixos", - "ref": "release-22.11", + "ref": "release-24.11", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index 9a2e6891..ccc10baf 100644 --- a/flake.nix +++ b/flake.nix @@ -5,11 +5,11 @@ nixpkgs.follows = "cardano-parts/nixpkgs"; nixpkgs-unstable.follows = "cardano-parts/nixpkgs-unstable"; flake-parts.follows = "cardano-parts/flake-parts"; - cardano-parts.url = "github:input-output-hk/cardano-parts/v2025-06-05"; - # cardano-parts.url = "path:/home/jlotoski/work/iohk/cardano-parts-wt/v2025-06-05"; + cardano-parts.url = "github:input-output-hk/cardano-parts/jl/new-tracing"; + # cardano-parts.url = "path:/home/jlotoski/work/iohk/cardano-parts-wt/jl/new-tracing"; # Local pins for additional customization: - # cardanoTest.url = "github:IntersectMBO/cardano-node/mgalazyn/feature/make-peer-snapshot-file-path-relative-to-topology-file"; + # cardanoFix.url = "github:IntersectMBO/cardano-node/new-tracing/fix-metrics"; # PParams api testing cardano-node-pparams-api.url = "github:johnalotoski/cardano-node-pparams-api"; diff --git a/flake/cluster.nix b/flake/cluster.nix index 83227bc7..039c61d6 100644 --- a/flake/cluster.nix +++ b/flake/cluster.nix @@ -66,14 +66,15 @@ with flake.lib; { # Until upstream parts ng has capkgs version, use local flake pins pkgs = { cardano-cli = system: flake.withSystem system ({config, ...}: config.cardano-parts.pkgs.cardano-cli-ng); + cardano-db-sync-pkgs = flake.config.flake.cardano-parts.pkgs.special.cardano-db-sync-pkgs-ng; cardano-db-sync = system: flake.withSystem system ({config, ...}: config.cardano-parts.pkgs.cardano-db-sync-ng); cardano-db-tool = system: flake.withSystem system ({config, ...}: config.cardano-parts.pkgs.cardano-db-tool-ng); - cardano-db-sync-pkgs = flake.config.flake.cardano-parts.pkgs.special.cardano-db-sync-pkgs-ng; cardano-faucet = system: flake.withSystem system ({config, ...}: config.cardano-parts.pkgs.cardano-faucet-ng); + cardano-node-pkgs = flake.config.flake.cardano-parts.pkgs.special.cardano-node-pkgs-ng; cardano-node = system: flake.withSystem system ({config, ...}: config.cardano-parts.pkgs.cardano-node-ng); cardano-smash = system: flake.withSystem system ({config, ...}: config.cardano-parts.pkgs.cardano-smash-ng); cardano-submit-api = system: flake.withSystem system ({config, ...}: config.cardano-parts.pkgs.cardano-submit-api-ng); - cardano-node-pkgs = flake.config.flake.cardano-parts.pkgs.special.cardano-node-pkgs-ng; + cardano-tracer = system: flake.withSystem system ({config, ...}: config.cardano-parts.pkgs.cardano-tracer-ng); mithril-client-cli = system: flake.withSystem system ({config, ...}: config.cardano-parts.pkgs.mithril-client-cli-ng); mithril-signer = system: flake.withSystem system ({config, ...}: config.cardano-parts.pkgs.mithril-signer-ng); }; diff --git a/flake/colmena.nix b/flake/colmena.nix index c152723c..993e6b27 100644 --- a/flake/colmena.nix +++ b/flake/colmena.nix @@ -30,10 +30,10 @@ in # m5a-large.aws.instance.instance_type = "m5a.large"; m5ad-large.aws.instance.instance_type = "m5ad.large"; # m5a-2xlarge.aws.instance.instance_type = "m5a.2xlarge"; - r5-large.aws.instance.instance_type = "r5.large"; r5-xlarge.aws.instance.instance_type = "r5.xlarge"; r5-2xlarge.aws.instance.instance_type = "r5.2xlarge"; r6a-large.aws.instance.instance_type = "r6a.large"; + r6a-xlarge.aws.instance.instance_type = "r6a.xlarge"; # t3a-micro.aws.instance.instance_type = "t3a.micro"; # t3a-small.aws.instance.instance_type = "t3a.small"; t3a-medium.aws.instance.instance_type = "t3a.medium"; @@ -85,6 +85,9 @@ in # Base cardano-node service config.flake.cardano-parts.cluster.groups.default.meta.cardano-node-service-ng + # For earlier versions of the tracing service, use `newMetrics` below + config.flake.cardano-parts.cluster.groups.default.meta.cardano-tracer-service-ng + # Config for cardano-node group deployments inputs.cardano-parts.nixosModules.profile-cardano-node-group inputs.cardano-parts.nixosModules.profile-cardano-custom-metrics @@ -205,6 +208,7 @@ in dbsync = { imports = [ config.flake.cardano-parts.cluster.groups.default.meta.cardano-node-service + config.flake.cardano-parts.cluster.groups.default.meta.cardano-tracer-service-ng config.flake.cardano-parts.cluster.groups.default.meta.cardano-db-sync-service inputs.cardano-parts.nixosModules.profile-cardano-db-sync inputs.cardano-parts.nixosModules.profile-cardano-node-group @@ -218,6 +222,23 @@ in ]; }; + # While new tracing PRs are WIP, the new node service is required + # dbsync-pre = { + # imports = [ + # config.flake.cardano-parts.cluster.groups.default.meta.cardano-node-service-ng + # config.flake.cardano-parts.cluster.groups.default.meta.cardano-tracer-service-ng + # config.flake.cardano-parts.cluster.groups.default.meta.cardano-db-sync-service + # inputs.cardano-parts.nixosModules.profile-cardano-db-sync + # inputs.cardano-parts.nixosModules.profile-cardano-node-group + # inputs.cardano-parts.nixosModules.profile-cardano-custom-metrics + # inputs.cardano-parts.nixosModules.profile-cardano-postgres + # { + # services.cardano-node.shareNodeSocket = true; + # services.cardano-postgres.enablePsqlrc = true; + # } + # ]; + # }; + # ogmios = { # imports = [ # config.flake.cardano-parts.cluster.groups.default.meta.cardano-ogmios-service @@ -344,21 +365,20 @@ in preprodRelMig = mkWorldRelayMig 30000; previewRelMig = mkWorldRelayMig 30002; - newMetrics = { - imports = [ - ( - # Existing tracer service requires a pkgs with commonLib defined in the cardano-node repo flake overlay. - # We'll import it through flake-compat so we don't need a full flake input just for obtaining commonLib. - import - config.flake.cardano-parts.cluster.groups.default.meta.cardano-tracer-service - (import - "${config.flake.cardano-parts.cluster.groups.default.meta.cardano-node-service}/../../default.nix" {system = "x86_64-linux";}) - .legacyPackages - .x86_64-linux - ) - inputs.cardano-parts.nixosModules.profile-cardano-node-new-tracing - ]; - }; + # For the early versions of the new tracing system with the workbench modified nixos service + # newMetrics = { + # imports = [ + # ( + # import + # "${self.inputs.cardano-parts.inputs.cardano-tracer-service.outPath}/nix/nixos/cardano-tracer-service.nix" + # (import "${self.inputs.cardano-parts.inputs.cardano-tracer-service.outPath}/default.nix" {system = "x86_64-linux";}) + # .legacyPackages + # .x86_64-linux + # ) + # {disabledModules = [config.flake.cardano-parts.cluster.groups.default.meta.cardano-tracer-service-ng];} + # inputs.cardano-parts.nixosModules.profile-cardano-node-new-tracing + # ]; + # }; # logRejected = { # services = { @@ -724,7 +744,7 @@ in preprod1-rel-a-1 = {imports = [eu-central-1 r6a-large (ebs 80) (nodeRamPct 70) (group "preprod1") node rel preprodRelMig mithrilRelay (declMSigner "preprod1-bp-a-1")];}; preprod1-rel-b-1 = {imports = [eu-west-1 r6a-large (ebs 80) (nodeRamPct 70) (group "preprod1") node rel preprodRelMig];}; preprod1-rel-c-1 = {imports = [us-east-2 r6a-large (ebs 80) (nodeRamPct 70) (group "preprod1") node rel preprodRelMig tcpTxOpt];}; - preprod1-dbsync-a-1 = {imports = [eu-central-1 r5-xlarge (ebs 200) (group "preprod1") dbsync pre smash preprodSmash];}; + preprod1-dbsync-a-1 = {imports = [eu-central-1 r6a-xlarge (ebs 200) (group "preprod1") dbsync pre smash preprodSmash];}; preprod1-faucet-a-1 = {imports = [eu-central-1 r6a-large (ebs 80) (nodeRamPct 70) (group "preprod1") node faucet preprodFaucet];}; preprod2-bp-b-1 = {imports = [eu-west-1 r6a-large (ebs 80) (nodeRamPct 70) (group "preprod2") node bp mithrilRelease (declMRel "preprod2-rel-b-1")];}; @@ -742,10 +762,30 @@ in # Preview, one-third on release tag, two-thirds on pre-release tag preview1-bp-a-1 = {imports = [eu-central-1 r6a-large (ebs 80) (nodeRamPct 70) (group "preview1") node bp mithrilRelease (declMRel "preview1-rel-a-1")];}; # preview1-rel-a-1 = {imports = [eu-central-1 r6a-large (ebs 80) (nodeRamPct 70) (group "preview1") node rel maxVerbosity previewRelMig mithrilRelay (declMSigner "preview1-bp-a-1")];}; - preview1-rel-a-1 = {imports = [eu-central-1 r6a-large (ebs 80) (nodeRamPct 70) (group "preview1") node rel newMetrics previewRelMig mithrilRelay (declMSigner "preview1-bp-a-1")];}; + preview1-rel-a-1 = { + imports = [ + eu-central-1 + r6a-large + (ebs 80) + (nodeRamPct 70) + (group "preview1") + node + rel + pre + previewRelMig + mithrilRelay + (declMSigner "preview1-bp-a-1") + { + services.cardano-node = { + useLegacyTracing = false; + ngTracer = true; + }; + } + ]; + }; preview1-rel-b-1 = {imports = [eu-west-1 r6a-large (ebs 80) (nodeRamPct 70) (group "preview1") node minLog rel previewRelMig];}; preview1-rel-c-1 = {imports = [us-east-2 r6a-large (ebs 80) (nodeRamPct 70) (group "preview1") node rel previewRelMig tcpTxOpt];}; - preview1-dbsync-a-1 = {imports = [eu-central-1 r5-large (ebs 250) (group "preview1") dbsync pre smash previewSmash];}; + preview1-dbsync-a-1 = {imports = [eu-central-1 r6a-large (ebs 250) (group "preview1") dbsync pre smash previewSmash];}; preview1-faucet-a-1 = {imports = [eu-central-1 r6a-large (ebs 80) (nodeRamPct 70) (group "preview1") node faucet previewFaucet];}; # Smallest d variant for testing @@ -762,22 +802,40 @@ in # tcpTxOpt bp pre - # config.flake.cardano-parts.cluster.groups.default.meta.cardano-tracer-service-ng { - services.mithril-signer.enable = false; - # services.cardano-node = { - # useLegacyTracing = false; - # ngTracer = true; - # # profiling = "space-cost"; - # }; - # services.cardano-tracer = { - # # profiling = "space-cost"; - # }; + services = { + mithril-signer.enable = false; + cardano-node = { + useLegacyTracing = false; + ngTracer = true; + }; + }; } ]; }; - preview2-bp-b-1 = {imports = [eu-west-1 r6a-large (ebs 80) (nodeRamPct 70) (group "preview2") node bp pre mithrilRelease (declMRel "preview2-rel-b-1")];}; + preview2-bp-b-1 = { + imports = [ + eu-west-1 + r6a-large + (ebs 80) + (nodeRamPct 70) + (group "preview2") + node + bp + pre + mithrilRelease + (declMRel "preview2-rel-b-1") + { + services = { + cardano-node = { + useLegacyTracing = false; + ngTracer = true; + }; + }; + } + ]; + }; preview2-rel-a-1 = {imports = [eu-central-1 r6a-large (ebs 80) (nodeRamPct 70) (group "preview2") node traceTxs rel pre previewRelMig];}; preview2-rel-b-1 = {imports = [eu-west-1 r6a-large (ebs 80) (nodeRamPct 70) (group "preview2") node rel pre previewRelMig mithrilRelay (declMSigner "preview2-bp-b-1")];}; preview2-rel-c-1 = {imports = [us-east-2 r6a-large (ebs 80) (nodeRamPct 70) (group "preview2") node rel pre previewRelMig tcpTxOpt];}; @@ -809,7 +867,13 @@ in node bp { - services.mithril-signer.enable = false; + services = { + mithril-signer.enable = false; + cardano-node = { + useLegacyTracing = true; + # ngTracer = true; + }; + }; } ]; }; diff --git a/flake/opentofu/cluster.nix b/flake/opentofu/cluster.nix index f0b3a514..6d702d86 100644 --- a/flake/opentofu/cluster.nix +++ b/flake/opentofu/cluster.nix @@ -451,17 +451,32 @@ in { aws_iam_role_policy_attachment = let mkRoleAttachments = roleResourceName: policyList: - listToAttrs (map (policy: { + listToAttrs (map (policy: + if isString policy + then { name = "${roleResourceName}_policy_attachment_${policy}"; value = { role = "\${aws_iam_role.${roleResourceName}.name}"; policy_arn = "\${aws_iam_policy.${policy}.arn}"; }; + } + else { + name = "${roleResourceName}_policy_attachment_${policy.name}"; + value = { + role = "\${aws_iam_role.${roleResourceName}.name}"; + policy_arn = policy.arn; + }; }) - policyList); + policyList); in foldl' recursiveUpdate {} [ - (mkRoleAttachments "ec2_role" ["kms_user"]) + (mkRoleAttachments "ec2_role" [ + "kms_user" + { + name = "ssm"; + arn = "arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore"; + } + ]) ]; aws_iam_policy.kms_user = { @@ -545,11 +560,12 @@ in { from_port = 443; to_port = 443; }) - (mkRule { - description = "Allow SSH"; - from_port = 22; - to_port = 22; - }) + # No longer required with SSH over SSM + # (mkRule { + # description = "Allow SSH"; + # from_port = 22; + # to_port = 22; + # }) (mkRule { description = "Allow Cardano"; from_port = 3001; @@ -661,7 +677,13 @@ in { ${ concatStringsSep "\n" (map (name: '' Host ${name} + HostName ''${aws_instance.${name}[0].id} + ProxyCommand sh -c "aws --region ${nodes.${name}.aws.region} ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'" + Tag ${nodes.${name}.aws.instance.instance_type} + + Host ${name}.ipv4 HostName ''${aws_eip.${name}[0].public_ip} + Tag ${nodes.${name}.aws.region} Host ${name}.ipv6 HostName ''${length(aws_instance.${name}[0].ipv6_addresses) > 0 ? aws_instance.${name}[0].ipv6_addresses[0] : "unavailable.ipv6"} diff --git a/flake/opentofu/grafana/alerts/cardano-node-divergence.nix-import b/flake/opentofu/grafana/alerts/cardano-node-divergence.nix-import index b033bbc2..dbc54c53 100644 --- a/flake/opentofu/grafana/alerts/cardano-node-divergence.nix-import +++ b/flake/opentofu/grafana/alerts/cardano-node-divergence.nix-import @@ -4,26 +4,11 @@ let lagBlocks ? 6, lagSeconds ? 120, thresholdMinutes ? 5, - useLegacyTracing ? true, }: let - blockMetric = - if useLegacyTracing - then "cardano_node_metrics_blockNum_int" - # Some new tracing system metrics have converged with legacy, but changes - # are still in progress, so leave these separated for now in case this - # diverge again before being finalized. - else "cardano_node_metrics_blockNum_int"; - slotMetric = - if useLegacyTracing - then "cardano_node_metrics_slotNum_int" - # See comment above - else "cardano_node_metrics_slotNum_int"; + blockMetric = "cardano_node_metrics_blockNum_int"; + slotMetric = "cardano_node_metrics_slotNum_int"; in { - alert = "cardano_node_block_divergence_${env}${ - if useLegacyTracing - then "" - else "_new_tracing" - }"; + alert = "cardano_node_block_divergence_${env}"; expr = '' ( (abs(max(${blockMetric}{environment="${env}"}) - on() group_right() ${blockMetric}{environment="${env}"}) > bool ${toString lagBlocks}) @@ -44,17 +29,5 @@ in { (mkDivergenceAlert {env = "mainnet";}) (mkDivergenceAlert {env = "preprod";}) (mkDivergenceAlert {env = "preview";}) - (mkDivergenceAlert { - env = "mainnet"; - useLegacyTracing = false; - }) - (mkDivergenceAlert { - env = "preprod"; - useLegacyTracing = false; - }) - (mkDivergenceAlert { - env = "preview"; - useLegacyTracing = false; - }) ]; } diff --git a/flake/opentofu/grafana/alerts/cardano-node-forge.nix-import b/flake/opentofu/grafana/alerts/cardano-node-forge.nix-import index 9fbb10cf..18f88380 100644 --- a/flake/opentofu/grafana/alerts/cardano-node-forge.nix-import +++ b/flake/opentofu/grafana/alerts/cardano-node-forge.nix-import @@ -1,21 +1,10 @@ let mkKesAlert = { periodNotice, - useLegacyTracing ? true, }: let - kesPeriodsRemaining = - if useLegacyTracing - then "cardano_node_metrics_remainingKESPeriods_int" - # Some new tracing system metrics have converged with legacy, but changes - # are still in progress, so leave these separated for now in case this - # diverge again before being finalized. - else "cardano_node_metrics_remainingKESPeriods_int"; + kesPeriodsRemaining = "cardano_node_metrics_remainingKESPeriods_int"; in { - alert = "cardano_node_KES_expiration_metric_${toString periodNotice}period_notice${ - if useLegacyTracing - then "" - else "_new_tracing" - }"; + alert = "cardano_node_KES_expiration_metric_${toString periodNotice}period_notice"; expr = "${kesPeriodsRemaining} <= ${toString periodNotice}"; for = "5m"; labels.severity = "page"; @@ -66,7 +55,7 @@ in { } { alert = "cardano_node_forge_not_adopted_error_new_tracing"; - expr = "sum_over_time(abs((cardano_node_metrics_forgedSlotLast_int - cardano_node_metrics_forgedSlotLast_int == bool 0) - 1)[1h:]) > 0"; + expr = "increase(cardano_node_metrics_Forge_didnt_adopt_counter[1h]) > 0"; for = "1m"; labels.severity = "page"; annotations = { @@ -111,17 +100,5 @@ in { (mkKesAlert {periodNotice = 10;}) (mkKesAlert {periodNotice = 5;}) (mkKesAlert {periodNotice = 1;}) - (mkKesAlert { - periodNotice = 10; - useLegacyTracing = false; - }) - (mkKesAlert { - periodNotice = 5; - useLegacyTracing = false; - }) - (mkKesAlert { - periodNotice = 1; - useLegacyTracing = false; - }) ]; } diff --git a/flake/opentofu/grafana/alerts/cardano-node-network.nix-import b/flake/opentofu/grafana/alerts/cardano-node-network.nix-import index 60788b17..d47ef19e 100644 --- a/flake/opentofu/grafana/alerts/cardano-node-network.nix-import +++ b/flake/opentofu/grafana/alerts/cardano-node-network.nix-import @@ -21,21 +21,20 @@ in { for = "1m"; labels.severity = "page"; annotations = { - summary = "Blocks adoption delay have been above 4.5s for more than 5% of blocks."; - description = "Node average of blocks adoption delay have been above 4.5s for more than 5% of blocks for more than 6 hours."; + summary = "Blocks adoption delay has been above 4.5s for more than 5% of blocks."; + description = "Node average of blocks adoption delay has been above 4.5s for more than 5% of blocks for more than 6 hours."; + }; + } + { + alert = "blocks_adoption_delay_too_high_new_tracing"; + expr = "avg(quantile_over_time(0.95, cardano_node_metrics_blockfetchclient_blockdelay_real[6h])) >= 4.5"; + for = "1m"; + labels.severity = "page"; + annotations = { + summary = "Blocks adoption delay has been above 4.5s for more than 5% of blocks."; + description = "Node average of blocks adoption delay has been above 4.5s for more than 5% of blocks for more than 6 hours."; }; } - # TODO: This metric does not exist in the new tracing system yet - # { - # alert = "blocks_adoption_delay_too_high_new_tracing"; - # expr = "avg(quantile_over_time(0.95, cardano_node_metrics_blockadoption_forgeDelay_real[6h])) >= 4.5"; - # for = "1m"; - # labels.severity = "page"; - # annotations = { - # summary = "Blocks adoption delay have been above 4.5s for more than 5% of blocks."; - # description = "Node average of blocks adoption delay have been above 4.5s for more than 5% of blocks for more than 6 hours."; - # }; - # } # TODO: Static max block size until node publishes max block size metric { alert = "blocks_utilization_too_high"; @@ -48,17 +47,16 @@ in { }; } # TODO: Static max block size until node publishes max block size metric - # TODO: This metric does not exist in the new tracing system yet - # { - # alert = "blocks_utilization_too_high_new_tracing"; - # expr = "100 * avg(avg_over_time(Blockfetch_Client_Blocksize[6h]) / 90112) > ${highBlockUtilization}"; - # for = "5m"; - # labels.severity = "page"; - # annotations = { - # summary = "Block utilization is above ${highBlockUtilization}%."; - # description = "Block utilization has averaged above ${highBlockUtilization}% for more than 6h."; - # }; - # } + { + alert = "blocks_utilization_too_high_new_tracing"; + expr = "100 * avg(avg_over_time(cardano_node_metrics_blockfetchclient_blocksize_int[6h]) / 90112) > ${highBlockUtilization}"; + for = "5m"; + labels.severity = "page"; + annotations = { + summary = "Block utilization is above ${highBlockUtilization}%."; + description = "Block utilization has averaged above ${highBlockUtilization}% for more than 6h."; + }; + } { alert = "cardano_blockfetchclient_blockdelay_high"; expr = ''cardano_node_metrics_blockfetchclient_blockdelay_cdfFive < 0.90''; @@ -69,17 +67,16 @@ in { description = "{{$labels.instance}}: cardano-node has block fetch delays with less than 90% of blocks over a 6 hour window arriving in 5 seconds."; }; } - # TODO: This metric does not exist in the new tracing system yet - # { - # alert = "cardano_blockfetchclient_blockdelay_high_new_tracing"; - # expr = ''Blockfetch_Client_Blockdelay_cdfFive < 0.90''; - # for = "10m"; - # labels.severity = "page"; - # annotations = { - # summary = "{{$labels.instance}}: cardano-node has less than 90% of blocks arriving in 5 seconds."; - # description = "{{$labels.instance}}: cardano-node has block fetch delays with less than 90% of blocks over a 6 hour window arriving in 5 seconds."; - # }; - # } + { + alert = "cardano_blockfetchclient_blockdelay_high_new_tracing"; + expr = ''cardano_node_metrics_blockfetchclient_blockdelay_cdfFive_real < 0.90''; + for = "10m"; + labels.severity = "page"; + annotations = { + summary = "{{$labels.instance}}: cardano-node has less than 90% of blocks arriving in 5 seconds."; + description = "{{$labels.instance}}: cardano-node has block fetch delays with less than 90% of blocks over a 6 hour window arriving in 5 seconds."; + }; + } { alert = "cardano_blockfetchclient_blockdelay_critical"; expr = "cardano_node_metrics_blockfetchclient_blockdelay_cdfFive < 0.50"; @@ -90,17 +87,16 @@ in { description = "{{$labels.instance}}: cardano-node has block fetch delays with less than 50% of blocks over a 6 hour window arriving in 5 seconds. This is abnormal even for mempool trace enabled nodes."; }; } - # TODO: This metric does not exist in the new tracing system yet - # { - # alert = "cardano_blockfetchclient_blockdelay_critical_new_tracing"; - # expr = ''Blockfetch_Client_Blockdelay_cdfFive < 0.50''; - # for = "10m"; - # labels.severity = "page"; - # annotations = { - # summary = "{{$labels.instance}}: cardano-node has less than 50% of blocks arriving in 5 seconds."; - # description = "{{$labels.instance}}: cardano-node has block fetch delays with less than 50% of blocks over a 6 hour window arriving in 5 seconds. This is abnormal even for mempool trace enabled nodes."; - # }; - # } + { + alert = "cardano_blockfetchclient_blockdelay_critical_new_tracing"; + expr = ''cardano_node_metrics_blockfetchclient_blockdelay_cdfFive_real < 0.50''; + for = "10m"; + labels.severity = "page"; + annotations = { + summary = "{{$labels.instance}}: cardano-node has less than 50% of blocks arriving in 5 seconds."; + description = "{{$labels.instance}}: cardano-node has block fetch delays with less than 50% of blocks over a 6 hour window arriving in 5 seconds. This is abnormal even for mempool trace enabled nodes."; + }; + } { alert = "cardano_connection_count_high"; expr = ''cardano_node_metrics_connectionManager_incomingConns > 450''; @@ -111,5 +107,15 @@ in { description = "{{$labels.instance}}: cardano-node has an incoming connection count > 450 which is close to the hard limit of 512. Consider scaling or taking other action."; }; } + { + alert = "cardano_connection_count_high_new_tracing"; + expr = ''cardano_node_metrics_connectionManager_inboundConns_int > 450''; + for = "10m"; + labels.severity = "page"; + annotations = { + summary = "{{$labels.instance}}: cardano-node has a high number of connections."; + description = "{{$labels.instance}}: cardano-node has an incoming connection count > 450 which is close to the hard limit of 512. Consider scaling or taking other action."; + }; + } ]; } diff --git a/flake/opentofu/grafana/alerts/cardano-node-quality.nix-import b/flake/opentofu/grafana/alerts/cardano-node-quality.nix-import index 23506bf2..54265101 100644 --- a/flake/opentofu/grafana/alerts/cardano-node-quality.nix-import +++ b/flake/opentofu/grafana/alerts/cardano-node-quality.nix-import @@ -15,16 +15,6 @@ in { description = "Degraded Chain Density: more than 20% of nodes have low chain density (<${chainDensityLow}%) in environment {{$labels.environment}}."; }; } - { - alert = "chain_quality_degraded_new_tracing"; - expr = ''100 * quantile by(environment) (0.2, (cardano_node_metrics_density_real{environment!~"preview"} * 20)) < ${chainDensityLow}''; - for = "5m"; - labels.severity = "page"; - annotations = { - summary = "Degraded Chain Density: more than 20% of nodes have low chain density (<${chainDensityLow}%) in environment {{$labels.environment}}."; - description = "Degraded Chain Density: more than 20% of nodes have low chain density (<${chainDensityLow}%) in environment {{$labels.environment}}."; - }; - } { alert = "chain_quality_degraded_very_low"; expr = ''100 * quantile by(environment) (0.2, (cardano_node_metrics_density_real * 20)) < ${chainDensityVeryLow}''; @@ -35,15 +25,5 @@ in { description = "Degraded Chain Density: more than 20% of nodes have low chain density (<${chainDensityVeryLow}%) in environment {{$labels.environment}}."; }; } - { - alert = "chain_quality_degraded_very_low_new_tracing"; - expr = ''100 * quantile by(environment) (0.2, (cardano_node_metrics_density_real * 20)) < ${chainDensityVeryLow}''; - for = "5m"; - labels.severity = "page"; - annotations = { - summary = "Degraded Chain Density: more than 20% of nodes have low chain density (<${chainDensityVeryLow}%) in environment {{$labels.environment}}."; - description = "Degraded Chain Density: more than 20% of nodes have low chain density (<${chainDensityVeryLow}%) in environment {{$labels.environment}}."; - }; - } ]; } diff --git a/flake/opentofu/grafana/alerts/cardano-node.nix-import b/flake/opentofu/grafana/alerts/cardano-node.nix-import index dce00ee0..0e69eb8e 100644 --- a/flake/opentofu/grafana/alerts/cardano-node.nix-import +++ b/flake/opentofu/grafana/alerts/cardano-node.nix-import @@ -25,16 +25,6 @@ description = "{{$labels.instance}}: cardano-node blockheight unchanged for more than 10 minutes at a 2 minute rate resolution."; }; } - { - alert = "cardano_node_blockheight_unchanged_new_tracing"; - expr = "rate(cardano_node_metrics_blockNum_int[2m]) == 0"; - for = "10m"; - labels.severity = "page"; - annotations = { - summary = "{{$labels.instance}}: cardano-node blockheight unchanged for more than 10 minutes."; - description = "{{$labels.instance}}: cardano-node blockheight unchanged for more than 10 minutes at a 2 minute rate resolution."; - }; - } { alert = "cardano_node_mempool_high"; expr = "cardano_node_metrics_txsInMempool_int > 200"; @@ -45,16 +35,6 @@ description = "{{$labels.instance}}: cardano-node transactions in mempool have been greater than 200 for more than 10 minutes."; }; } - { - alert = "cardano_node_mempool_high_new_tracing"; - expr = "cardano_node_metrics_txsInMempool_int > 200"; - for = "10m"; - labels.severity = "page"; - annotations = { - summary = "{{$labels.instance}}: cardano-node transactions in mempool have been elevated for more than 10 minutes."; - description = "{{$labels.instance}}: cardano-node transactions in mempool have been greater than 200 for more than 10 minutes."; - }; - } # Note: This alert will automatically disable after 6 hours (360 minutes) even if there are still no expected metrics available. { alert = "cardano_node_metric_missing"; @@ -66,16 +46,5 @@ description = "{{$labels.instance}}: cardano-node blockheight metric has gone missing for more than 10 minutes at a 1 minute resolution."; }; } - # Note: This alert will automatically disable after 6 hours (360 minutes) even if there are still no expected metrics available. - { - alert = "cardano_node_metric_missing_new_tracing"; - expr = "(sum_over_time((cardano_node_metrics_blockNum_int != bool 0)[360m:1m]) < bool 350) > 0 unless cardano_node_metrics_blockNum_int"; - for = "1m"; - labels.severity = "page"; - annotations = { - summary = "{{$labels.instance}}: cardano-node blockheight metric has gone missing for more than 10 minutes."; - description = "{{$labels.instance}}: cardano-node blockheight metric has gone missing for more than 10 minutes at a 1 minute resolution."; - }; - } ]; } diff --git a/flake/opentofu/grafana/dashboards/cardano-node-new-tracing.json b/flake/opentofu/grafana/dashboards/cardano-node-new-tracing.json index 23bbc3c8..0fb40484 100644 --- a/flake/opentofu/grafana/dashboards/cardano-node-new-tracing.json +++ b/flake/opentofu/grafana/dashboards/cardano-node-new-tracing.json @@ -540,7 +540,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(cardano_node_metrics_nodeIsNotLeader_int{environment=\"$environment\"}[1h])/rate(cardano_node_metrics_slotNum_int{environment=\"$environment\"}[1h])) / 0.05", + "expr": "sum(rate(cardano_node_metrics_nodeIsLeader_int{environment=\"$environment\"}[1h])/rate(cardano_node_metrics_slotNum_int{environment=\"$environment\"}[1h])) / 0.05", "interval": "", "legendFormat": "Total led slots", "range": true, diff --git a/flake/opentofu/grafana/dashboards/cardano-node-p2p-new-tracing.json b/flake/opentofu/grafana/dashboards/cardano-node-p2p-new-tracing.json index 5e0bc524..b6363184 100644 --- a/flake/opentofu/grafana/dashboards/cardano-node-p2p-new-tracing.json +++ b/flake/opentofu/grafana/dashboards/cardano-node-p2p-new-tracing.json @@ -210,7 +210,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "cardano_node_metrics_peerSelection_hot_int{environment=\"$environment\"}", + "expr": "cardano_node_metrics_peerSelection_Hot_int{environment=\"$environment\"}", "interval": "", "legendFormat": "{{instance}}", "range": true, @@ -504,7 +504,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "cardano_node_metrics_peerSelection_warm_int{environment=\"$environment\"}", + "expr": "cardano_node_metrics_peerSelection_Warm_int{environment=\"$environment\"}", "interval": "", "legendFormat": "{{instance}}", "range": true, @@ -798,7 +798,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "cardano_node_metrics_peerSelection_cold_int{environment=\"$environment\"}", + "expr": "cardano_node_metrics_peerSelection_Cold_int{environment=\"$environment\"}", "interval": "", "legendFormat": "{{instance}}", "range": true, @@ -1192,7 +1192,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "avg(quantile_over_time(0.5,cardano_node_metrics_blockfetchclient_blockdelay_s{environment=\"$environment\"}[15m]))", + "expr": "avg(quantile_over_time(0.5,cardano_node_metrics_blockfetchclient_blockdelay_real{environment=\"$environment\"}[15m]))", "interval": "", "legendFormat": "P50", "range": true, @@ -1204,7 +1204,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "avg(quantile_over_time(0.95,cardano_node_metrics_blockfetchclient_blockdelay_s{environment=\"$environment\"}[15m]))", + "expr": "avg(quantile_over_time(0.95,cardano_node_metrics_blockfetchclient_blockdelay_real{environment=\"$environment\"}[15m]))", "hide": false, "interval": "", "legendFormat": "P95", @@ -1296,13 +1296,13 @@ "targets": [ { "exemplar": true, - "expr": "cardano_node_metrics_connectionManager_prunableConns{environment=\"$environment\"}", + "expr": "cardano_node_metrics_connectionManager_fullDuplexConns_int{environment=\"$environment\"}", "interval": "", "legendFormat": "{{instance}}", "refId": "A" } ], - "title": "Connections relevant for pruning", + "title": "Negotiated full duplex connections", "type": "timeseries" }, { @@ -1491,7 +1491,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "rate(cardano_node_metrics_blockfetchclient_lateblocks{environment=\"$environment\"}[1h])/rate(cardano_node_metrics_blockNum_int{environment=\"$environment\"}[1h])", + "expr": "rate(cardano_node_metrics_blockfetchclient_lateblocks_counter{environment=\"$environment\"}[1h])/rate(cardano_node_metrics_blockNum_int{environment=\"$environment\"}[1h])", "interval": "", "legendFormat": "{{instance}}", "range": true, diff --git a/flake/opentofu/grafana/dashboards/cardano-performance-new-tracing.json b/flake/opentofu/grafana/dashboards/cardano-performance-new-tracing.json index eafcbeba..83b081aa 100644 --- a/flake/opentofu/grafana/dashboards/cardano-performance-new-tracing.json +++ b/flake/opentofu/grafana/dashboards/cardano-performance-new-tracing.json @@ -603,7 +603,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "max(cardano_node_metrics_Mem_resident_intt{environment=\"$environment\",instance=~\".*-bp-.*\"})", + "expr": "max(cardano_node_metrics_Mem_resident_int{environment=\"$environment\",instance=~\".*-bp-.*\"})", "hide": false, "interval": "", "intervalFactor": 1, diff --git a/mdbook/README-book.md b/mdbook/README-book.md index adedd094..a2479d8c 100644 --- a/mdbook/README-book.md +++ b/mdbook/README-book.md @@ -24,4 +24,4 @@ _Use the nagivation panel on the left to explore [The Cardano Book][book]._
-
34301acf4d2229db1a881aa26aef88efbcda65f5
+
c6aba64fe2fa238a99eb47f6847534c06b6e7694
diff --git a/mdbook/adv-preprod.md b/mdbook/adv-preprod.md index c677e531..2cbd639a 100644 --- a/mdbook/adv-preprod.md +++ b/mdbook/adv-preprod.md @@ -1,12 +1,13 @@ ## Advanced Configuration: Pre-Production Testnet -There is currently no pre-release version available for the pre-production environment. +Users wanting to test a cardano-node pre-release version on the pre-production +environment may obtain compatible configuration files below. -The latest version available is cardano-node release `10.4.1`. +The latest version available is cardano-node pre-release `10.5.0`. #### Configuration files -Compatible with cardano-node release [10.4.1](https://github.com/IntersectMBO/cardano-node/releases/tag/10.4.1) +Compatible with cardano-node pre-release [10.5.0](https://github.com/IntersectMBO/cardano-node/releases/tag/10.5.0) ``` NOTE: @@ -22,7 +23,6 @@ PeerSharing enabled relay as the block-producer's IP will be leaked. - [DB Sync Config](environments-pre/preprod/db-sync-config.json) - [Submit API Config](environments-pre/preprod/submit-api-config.json) - [Node Topology](environments-pre/preprod/topology.json) -- [Node Topology (Genesis mode)](environments-pre/preprod/topology-genesis-mode.json) - [Peer Snapshot](environments-pre/preprod/peer-snapshot.json) - [Byron Genesis](environments-pre/preprod/byron-genesis.json) - [Shelley Genesis](environments-pre/preprod/shelley-genesis.json) @@ -30,26 +30,22 @@ PeerSharing enabled relay as the block-producer's IP will be leaked. - [Conway Genesis](environments-pre/preprod/conway-genesis.json) - [Compiled guardrails script](environments-pre/preprod/guardrails-script.plutus) +#### Ouroboros Genesis Mode + +Ouroboros genesis mode is now the default consensus mode on preview and preprod +testnets starting with node `10.5.0`. If needed, use of praos mode and the +bootstrap peers found in the above topology file can be reverted to by setting: + +* Node config's `ConsensusMode` option to a value of `PraosMode` + #### UTXO-HD -Users migrating from a previous version of the node should read the [release +Users migrating from a node version older than `10.4.1` should also read the [10.4.1 release notes](https://github.com/IntersectMBO/cardano-node/releases/tag/10.4.1) and the consensus [migration guide](https://ouroboros-consensus.cardano.intersectmbo.org/docs/for-developers/utxo-hd/migrating) to properly configure the node and convert the database such that a replay from genesis can be avoided. -#### Ouroboros Genesis Mode - -For those preferring to use Genesis mode over bootstrap peers, the Genesis mode -topology file given above can be used in place of the default topology file. -The following requirements will also need to be met: - -* The node config file will need to have `ConsensusMode` set to `GenesisMode` - -* The peer snapshot file, provided above, will need to exist at the path -declared at `peerSnapshotFile` in the genesis mode topology file: an absolute -path, or a relative path with respect to the node binary directory - #### Guardrails reference script UTxO For convenience, the guardrails script has been put on a UTxO so that it can be used as reference script in diff --git a/mdbook/adv-preview.md b/mdbook/adv-preview.md index 6c29a80f..ef86c5f0 100644 --- a/mdbook/adv-preview.md +++ b/mdbook/adv-preview.md @@ -1,12 +1,13 @@ ## Advanced Configuration: Preview Testnet -There is currently no pre-release version available for the preview environment. +Users wanting to test a cardano-node pre-release version on the preview +environment may obtain compatible configuration files below. -The latest version available is cardano-node release `10.4.1`. +The latest version available is cardano-node pre-release `10.5.0`. #### Configuration files -Compatible with cardano-node release [10.4.1](https://github.com/IntersectMBO/cardano-node/releases/tag/10.4.1) +Compatible with cardano-node pre-release [10.5.0](https://github.com/IntersectMBO/cardano-node/releases/tag/10.5.0) ``` NOTE: @@ -22,7 +23,6 @@ PeerSharing enabled relay as the block-producer's IP will be leaked. - [DB Sync Config](environments-pre/preview/db-sync-config.json) - [Submit API Config](environments-pre/preview/submit-api-config.json) - [Node Topology](environments-pre/preview/topology.json) -- [Node Topology (Genesis mode)](environments-pre/preview/topology-genesis-mode.json) - [Peer Snapshot](environments-pre/preview/peer-snapshot.json) - [Byron Genesis](environments-pre/preview/byron-genesis.json) - [Shelley Genesis](environments-pre/preview/shelley-genesis.json) @@ -30,26 +30,22 @@ PeerSharing enabled relay as the block-producer's IP will be leaked. - [Conway Genesis](environments-pre/preview/conway-genesis.json) - [Compiled guardrails script](environments-pre/preview/guardrails-script.plutus) +#### Ouroboros Genesis Mode + +Ouroboros genesis mode is now the default consensus mode on preview and preprod +testnets starting with node `10.5.0`. If needed, use of praos mode and the +bootstrap peers found in the above topology file can be reverted to by setting: + +* Node config's `ConsensusMode` option to a value of `PraosMode` + #### UTXO-HD -Users migrating from a previous version of the node should read the [release +Users migrating from a node version older than `10.4.1` should also read the [10.4.1 release notes](https://github.com/IntersectMBO/cardano-node/releases/tag/10.4.1) and the consensus [migration guide](https://ouroboros-consensus.cardano.intersectmbo.org/docs/for-developers/utxo-hd/migrating) to properly configure the node and convert the database such that a replay from genesis can be avoided. -#### Ouroboros Genesis Mode - -For those preferring to use Genesis mode over bootstrap peers, the Genesis mode -topology file given above can be used in place of the default topology file. -The following requirements will also need to be met: - -* The node config file will need to have `ConsensusMode` set to `GenesisMode` - -* The peer snapshot file, provided above, will need to exist at the path -declared at `peerSnapshotFile` in the genesis mode topology file: an absolute -path, or a relative path with respect to the node binary directory - #### Guardrails reference script UTxO For convenience, the guardrails script has been put on a UTxO so that it can be used as reference script in diff --git a/scripts/bash-fns.sh b/scripts/bash-fns.sh new file mode 100644 index 00000000..827cea1e --- /dev/null +++ b/scripts/bash-fns.sh @@ -0,0 +1,76 @@ +# shellcheck disable=SC2148 +# +# Various bash helper fns which aren't used enough to move to just recipes. + +# This can be used to simplify ssh sessions, rsync, ex: +# ssh -o "$(ssm-proxy-cmd "$REGION")" "$INSTANCE_ID" +ssm-proxy-cmd() { + echo "ProxyCommand=sh -c 'aws --region $1 ssm start-session --target %h --document-name AWS-StartSSHSession --parameters portNumber=%p'" +} + + +# A handy transaction submission function with mempool monitoring. +# CARDANO_NODE_{NETWORK_ID,SOCKET_PATH}, TESTNET_MAGIC should already be exported. +submit() ( + set -euo pipefail + TX_SIGNED="$1" + + TXID=$(cardano-cli latest transaction txid --tx-file "$TX_SIGNED") + + echo "Submitting $TX_SIGNED with txid $TXID..." + cardano-cli latest transaction submit --tx-file "$TX_SIGNED" + + EXISTS="true" + while [ "$EXISTS" = "true" ]; do + EXISTS=$(cardano-cli latest query tx-mempool tx-exists "$TXID" | jq -r .exists) + if [ "$EXISTS" = "true" ]; then + echo "The transaction still exists in the mempool, sleeping 5s: $TXID" + else + echo "The transaction has been removed from the mempool." + fi + sleep 5 + done + echo "Transaction $TX_SIGNED with txid $TXID submitted successfully." + echo +) + +foreach-pair() ( + set -euo pipefail + + [ -n "${DEBUG:-}" ] && set -x + + if [ "$#" -ne 3 ]; then + echo "Usage:" + echo " foreach-pair \$STRING_LIST_1 \$STRING_LIST_2 \$STRING_CMD" + echo + echo "Where:" + echo " \$STRING_CMD has \$i and \$j embedded as iters from the two lists" + echo + echo "Example:" + echo " foreach-pair \"\$(just ssh-list name "preview1.*")\" \"\$(just ssh-list region "preview1.*")\" 'just aws-ec2-status \$i \$j'" + exit 1 + fi + + local l1="$1" + local l2="$2" + local cmd="$3" + + read -r -a l1 <<< "$l1" + read -r -a l2 <<< "$l2" + + if [[ ${#l1[@]} -ne ${#l2[@]} ]]; then + echo "Error: Lists are not the same length." >&2 + exit 1 + fi + + local length=${#l1[@]} + + for ((n = 0; n < length; n++)); do + # shellcheck disable=SC2034 + local i="${l1[n]}" + # shellcheck disable=SC2034 + local j="${l2[n]}" + + eval "$cmd" || true + done +) diff --git a/scripts/playground/cc-vote.sh b/scripts/playground/cc-vote.sh new file mode 100755 index 00000000..680b0714 --- /dev/null +++ b/scripts/playground/cc-vote.sh @@ -0,0 +1,121 @@ +#!/usr/bin/env bash +set -euo pipefail + +[ -n "${DEBUG:-}" ] && set -x + +if [ "$#" -ne "4" ]; then + echo "Three arguments are required:" + echo " $0 \$ENV \$ACTION_ID \$ACTION_IX \$VOTE" + echo + echo "Where:" + echo " ENV be 'preview' or 'preprod'" + echo " VOTE must be 'yes', 'no' or 'abstain'" + exit 1 +else + ENV="$1" + ACTION_ID="$2" + ACTION_IX="$3" + VOTE="$4" +fi + +ORCH_DIR="secrets/envs/$ENV/icc-keys" +INITHOT_DIR="$ORCH_DIR/init-hot" +SIGNER_DIR="$ORCH_DIR/testnets-secret" +ORCH_ADDR=$(just sops-decrypt-binary "$ORCH_DIR/orchestrator.addr") + +case "$VOTE" in + yes) + ANCHOR="https://raw.githubusercontent.com/carloslodelar/proposals/refs/heads/main/voteYES.jsonld" + ;; + no) + ANCHOR="https://raw.githubusercontent.com/carloslodelar/proposals/refs/heads/main/voteNO.jsonld" + ;; + abstain) + ANCHOR="https://raw.githubusercontent.com/carloslodelar/proposals/refs/heads/main/voteABSTAIN.jsonld" + ;; + *) + echo "Error: Invalid third argument. Please provide 'yes', 'no', or 'abstain'." + exit 1 + ;; +esac + +# Hash the anchor data using cardano-cli. +# Note that using the `--text` option would result in an incorrect hash. +cardano-cli hash anchor-data \ + --file-text <(curl -sL "$ANCHOR") \ + --out-file anchor.hash + +cardano-cli conway query utxo \ + --address "$(just sops-decrypt-binary "$INITHOT_DIR/nft.addr")" \ + --output-json \ + | jq ' + [ + to_entries + | .[] + | select(.value.value["'"$(cat <(just sops-decrypt-binary "$INITHOT_DIR/minting.plutus.hash"))"'"]["'"$(cat <(just sops-decrypt-binary "$INITHOT_DIR/nft-token-name"))"'"]) + ] | from_entries' \ + > hot-nft.utxo + +orchestrator-cli vote \ + --utxo-file hot-nft.utxo \ + --hot-credential-script-file <(just sops-decrypt-binary "$INITHOT_DIR/credential.plutus") \ + --governance-action-tx-id "$ACTION_ID" \ + --governance-action-index "$ACTION_IX" \ + --"$VOTE" \ + --metadata-url "$ANCHOR" \ + --metadata-hash "$(cat anchor.hash)" \ + --out-dir vote + +cardano-cli conway transaction build \ + --tx-in "$(cardano-cli conway query utxo --address "$ORCH_ADDR" --output-json | jq -r 'keys[0]')" \ + --tx-in-collateral "$(cardano-cli conway query utxo --address "$ORCH_ADDR" --output-json | jq -r 'keys[0]')" \ + --tx-in "$(jq -r 'keys[0]' hot-nft.utxo)" \ + --tx-in-script-file <(just sops-decrypt-binary "$INITHOT_DIR/nft.plutus") \ + --tx-in-inline-datum-present \ + --tx-in-redeemer-file "vote/redeemer.json" \ + --tx-out "$(cat vote/value)" \ + --tx-out-inline-datum-file "vote/datum.json" \ + --required-signer-hash "$(orchestrator-cli extract-pub-key-hash <(just sops-decrypt-binary "$SIGNER_DIR/voter-1.crt"))" \ + --required-signer-hash "$(orchestrator-cli extract-pub-key-hash <(just sops-decrypt-binary "$SIGNER_DIR/voter-2.crt"))" \ + --required-signer-hash "$(orchestrator-cli extract-pub-key-hash <(just sops-decrypt-binary "$SIGNER_DIR/voter-3.crt"))" \ + --vote-file "vote/vote" \ + --vote-script-file <(just sops-decrypt-binary "$INITHOT_DIR/credential.plutus") \ + --vote-redeemer-value {} \ + --change-address "$ORCH_ADDR" \ + --out-file body.json + +cardano-cli conway transaction witness \ + --tx-body-file body.json \ + --signing-key-file <(just sops-decrypt-binary "${SIGNER_DIR}/voter-1.skey") \ + --out-file voter1.witness + +cardano-cli conway transaction witness \ + --tx-body-file body.json \ + --signing-key-file <(just sops-decrypt-binary "${SIGNER_DIR}/voter-2.skey") \ + --out-file voter2.witness + +cardano-cli conway transaction witness \ + --tx-body-file body.json \ + --signing-key-file <(just sops-decrypt-binary "${SIGNER_DIR}/voter-3.skey") \ + --out-file voter3.witness + +cardano-cli conway transaction witness \ + --tx-body-file body.json \ + --signing-key-file <(just sops-decrypt-binary "${ORCH_DIR}/orchestrator.skey") \ + --out-file orchestrator.witness + +cardano-cli conway transaction assemble \ + --tx-body-file body.json \ + --witness-file voter1.witness \ + --witness-file voter2.witness \ + --witness-file voter3.witness \ + --witness-file orchestrator.witness \ + --out-file vote-tx.signed + +echo +echo "The debug view of the transaction body is:" +cardano-cli debug transaction view --tx-file vote-tx.signed +echo +echo +echo "This transaction may be submitted to the network with the following command:" +echo "cardano-cli conway transaction submit --tx-file vote-tx.signed" diff --git a/scripts/recipes/aws.just b/scripts/recipes/aws.just index c25a1c02..3494532e 100644 --- a/scripts/recipes/aws.just +++ b/scripts/recipes/aws.just @@ -39,3 +39,49 @@ aws-ec2-stop NAME REGION: set -e ID=$(just aws-ec2-id {{NAME}} {{REGION}}) aws --region {{REGION}} ec2 stop-instances --instance-ids "$ID" + +# Describe ssm active sessions +aws-ssm-sessions: + #!/usr/bin/env bash + set -e + aws ssm describe-sessions --state Active + +# Export short term aws sso credentials +aws-sso-export FILE="aws-sso.sh" AWS_PROFILE=null: + #!/usr/bin/env bash + set -e + if [ -n "{{AWS_PROFILE}}" ]; then + PROFILE="{{AWS_PROFILE}}" + echo "Exporting short term AWS SSO credentials for profile \"$PROFILE\" to file: {{FILE}}..." + elif [ -n "$AWS_PROFILE" ]; then + PROFILE="$AWS_PROFILE" + echo "Exporting short term AWS SSO credentials for profile \"$PROFILE\" from env var AWS_PROFILE to file {{FILE}}..." + else + echo "ERROR: Either a recipe AWS_PROFILE arg must be given or the env var AWS_PROFILE must be set." + fi + + if ! aws sts get-caller-identity --profile "$AWS_PROFILE" &> /dev/null; then + echo + nu -c 'print $"(ansi "bg_light_red")Please run:(ansi reset) `just aws-sso-login` first to obtain sso credentials"' + exit 1 + fi + + echo + aws configure export-credentials --format env > {{FILE}} + +# Login to aws sso +aws-sso-login AWS_PROFILE=null: + #!/usr/bin/env bash + set -e + if [ -n "{{AWS_PROFILE}}" ]; then + PROFILE="{{AWS_PROFILE}}" + echo "Logging into AWS SSO using profile \"$PROFILE\" from cli..." + elif [ -n "$AWS_PROFILE" ]; then + PROFILE="$AWS_PROFILE" + echo "Logging into AWS SSO using profile \"$PROFILE\" from env var AWS_PROFILE..." + else + echo "ERROR: Either a recipe AWS_PROFILE arg must be given or the env var AWS_PROFILE must be set." + fi + + echo + aws sso login --profile "$PROFILE" diff --git a/scripts/recipes/demo.just b/scripts/recipes/demo.just index 6a507114..7d7ce127 100644 --- a/scripts/recipes/demo.just +++ b/scripts/recipes/demo.just @@ -158,7 +158,7 @@ start-demo: echo "Submitting a Plomin prep cost model action..." PROPOSAL_ARGS=("--cost-model-file" "scripts/cost-models/mainnet-plutusv3-pv10-prep.json") ACTION="create-protocol-parameters-update" \ - STAKE_KEY="$STAKE_POOL_DIR/no-deploy/sp-1-owner-stake" \ + STAKE_KEY="$STAKE_POOL_DIR/no-deploy/$(cut -f1 -d' ' <<< "$POOL_NAMES")-owner-stake" \ nix run .#job-submit-gov-action -- "${PROPOSAL_ARGS[@]}" echo "Sleeping $FIXED_DELAY_SECS seconds until $(date -d @$(($(date +%s) + $FIXED_DELAY_SECS)))" echo "Sleeping until cost model can be voted on, epoch 5" @@ -168,7 +168,7 @@ start-demo: echo "Submitting a Plomin hard fork action..." PROPOSAL_ARGS=("--protocol-major-version" "10" "--protocol-minor-version" "0") ACTION="create-hardfork" \ - STAKE_KEY="$STAKE_POOL_DIR/no-deploy/sp-1-owner-stake" \ + STAKE_KEY="$STAKE_POOL_DIR/no-deploy/$(cut -f1 -d' ' <<< "$POOL_NAMES")-owner-stake" \ nix run .#job-submit-gov-action -- "${PROPOSAL_ARGS[@]}" echo "Sleeping $FIXED_DELAY_SECS seconds until $(date -d @$(($(date +%s) + $FIXED_DELAY_SECS)))" sleep "$FIXED_DELAY_SECS" @@ -206,7 +206,7 @@ start-demo: echo "Submitting the pool $i vote for the Plomin hard fork..." DECISION=yes \ ROLE=spo \ - VOTE_KEY="$STAKE_POOL_DIR/no-deploy/sp-${i}-cold" \ + VOTE_KEY="$STAKE_POOL_DIR/no-deploy/$(cut -f${i} -d' ' <<< "$POOL_NAMES")-cold" \ nix run .#job-submit-vote echo "Sleeping $FIXED_DELAY_SECS seconds until $(date -d @$(($(date +%s) + $FIXED_DELAY_SECS)))" sleep "$FIXED_DELAY_SECS" @@ -263,6 +263,7 @@ start-demo-ng: export USE_DECRYPTION="${USE_DECRYPTION:-true}" export USE_NODE_CONFIG_BP="${USE_NODE_CONFIG_BP:-false}" export DEBUG="${DEBUG:-true}" + export RETIRE_BOOTSTRAP_POOL="${RETIRE_BOOTSTRAP_POOL:-true}" export SECURITY_PARAM="${SECURITY_PARAM:-8}" export SLOT_LENGTH="${SLOT_LENGTH:-100}" export FIXED_DELAY_SECS="${FIXED_DELAY_SECS:-10}" @@ -309,13 +310,18 @@ start-demo-ng: sleep 10 echo - echo "Retiring the bootstrap pool..." - BOOTSTRAP_POOL_DIR="$KEY_DIR/bootstrap-pool" \ - RICH_KEY="$KEY_DIR/utxo-keys/rich-utxo" \ - nix run .#job-retire-bootstrap-pool - echo "Sleeping 10 seconds until $(date -d @$(($(date +%s) + 10)))" - sleep 10 - echo + if [ "$RETIRE_BOOTSTRAP_POOL" = "true" ]; then + echo "Retiring the bootstrap pool..." + BOOTSTRAP_POOL_DIR="$KEY_DIR/bootstrap-pool" \ + RICH_KEY="$KEY_DIR/utxo-keys/rich-utxo" \ + nix run .#job-retire-bootstrap-pool + echo "Sleeping 10 seconds until $(date -d @$(($(date +%s) + 10)))" + sleep 10 + echo + else + echo "Skipping bootstrap pool retirement..." + echo + fi WAIT_FOR_TIP() { TYPE="$1" @@ -340,7 +346,7 @@ start-demo-ng: echo "Submitting a Plomin prep cost model action..." PROPOSAL_ARGS=("--cost-model-file" "scripts/cost-models/mainnet-plutusv3-pv10-prep.json") ACTION="create-protocol-parameters-update" \ - STAKE_KEY="$STAKE_POOL_DIR/no-deploy/sp-1-owner-stake" \ + STAKE_KEY="$STAKE_POOL_DIR/no-deploy/$(cut -f1 -d' ' <<< "$POOL_NAMES")-owner-stake" \ nix run .#job-submit-gov-action -- "${PROPOSAL_ARGS[@]}" echo "Sleeping until cost model can be voted on, epoch 1" WAIT_FOR_TIP "epoch" "1" @@ -349,7 +355,7 @@ start-demo-ng: echo "Submitting a Plomin hard fork action..." PROPOSAL_ARGS=("--protocol-major-version" "10" "--protocol-minor-version" "0") ACTION="create-hardfork" \ - STAKE_KEY="$STAKE_POOL_DIR/no-deploy/sp-1-owner-stake" \ + STAKE_KEY="$STAKE_POOL_DIR/no-deploy/$(cut -f1 -d' ' <<< "$POOL_NAMES")-owner-stake" \ nix run .#job-submit-gov-action -- "${PROPOSAL_ARGS[@]}" echo "Sleeping $FIXED_DELAY_SECS seconds until $(date -d @$(($(date +%s) + $FIXED_DELAY_SECS)))" sleep "$FIXED_DELAY_SECS" @@ -387,17 +393,18 @@ start-demo-ng: echo "Submitting the pool $i vote for the Plomin hard fork..." DECISION=yes \ ROLE=spo \ - VOTE_KEY="$STAKE_POOL_DIR/no-deploy/sp-${i}-cold" \ + VOTE_KEY="$STAKE_POOL_DIR/no-deploy/$(cut -f${i} -d' ' <<< "$POOL_NAMES")-cold" \ nix run .#job-submit-vote echo "Sleeping $FIXED_DELAY_SECS seconds until $(date -d @$(($(date +%s) + $FIXED_DELAY_SECS)))" sleep "$FIXED_DELAY_SECS" done - echo "Sleeping until epoch 3 for the plomin HF votes to register..." - WAIT_FOR_TIP "epoch" "3" + CURRENT_EPOCH=$(jq -re ".epoch" <<< "$(just query-tip demo "$TESTNET_MAGIC")") + echo "Sleeping until epoch $((CURRENT_EPOCH + 1)) for the plomin HF votes to register..." + WAIT_FOR_TIP "epoch" "$((CURRENT_EPOCH + 1))" echo - echo "Sleeping until epoch 4 for the Plomin HF action to ratify..." - WAIT_FOR_TIP "epoch" "4" + echo "Sleeping until epoch $((CURRENT_EPOCH + 2)) for the Plomin HF action to ratify..." + WAIT_FOR_TIP "epoch" "$((CURRENT_EPOCH + 2))" echo just query-tip demo "$TESTNET_MAGIC" diff --git a/secrets/envs/preview/delegator/payment.addr b/secrets/envs/preview/delegator/payment.addr new file mode 100644 index 00000000..753629ee --- /dev/null +++ b/secrets/envs/preview/delegator/payment.addr @@ -0,0 +1,15 @@ +{ + "data": "ENC[AES256_GCM,data:g7U7dQ1abTZ4tC2Ft56lbse4F9y8Wh6nWRo9XvsJTDs6xcUva0xZBPTdevflYcBPrkgL0X8vBySRasQBrb4t3ZVFPxcx0ITUgJdcbrVGoqxbIv7N0hDLLV0LH0/KuFadHaYkcCSNZWATbARW,iv:uPMgLP6Sip/Oxp2Wh13gsMuSYsPGJPdNFdKRZHZJ4z8=,tag:SlY01ImBb9Esc9ojkfXzGQ==,type:str]", + "sops": { + "age": [ + { + "recipient": "age1rj7vaq0rsarnum2fx6zq0k3l64f6mca9t9mlhqu4nfvpqhux6uts5zud2m", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNcXA4L1dUeVFBdVpsTXl5\neWh4blR4ZnFpUENid2hLTHJTMHBodWJWSldzCnc1VFh4RS82YmtNMVdtVDhYd2xS\nc1VFZVYwNjZyYS8xRVpJZ3hVRzJSMWMKLS0tIGtra3c0S3hBU2pncm8xQW92Y3hF\nM0N6M28xRW5YRG81ZklLMFBIbFIrTjAKPY/xDYzLcQ/zNDDze2TX9ScVTV61jxH9\nDu20uYvift1Sh7FqxsNyRBQ6hf58cR1WKDAs6qIgVeWXeMr8acPQcQ==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2025-06-05T23:45:59Z", + "mac": "ENC[AES256_GCM,data:NzcwdvTfZHujUGiduQk1rSpJ8hw51hzqBPkHUBPCl7878SRmSeIZimC2rDNmAj2KX3xGS/X5YgNDcTFGiSk1NAGhcZTVOrD5dSvRCIHxKS2L0dNul//PX/HF1+woiyVoPR/fksHKZMNrjk+DejVe51kO4yNdYw5+aAO01tQ97HY=,iv:OkvS2XtRS+zzUOun0kwc9a5IKyPFb9tPTdjOW0cR7j4=,tag:fTwdJORP9wVIx/2MuG6y3Q==,type:str]", + "unencrypted_suffix": "_unencrypted", + "version": "3.10.2" + } +} diff --git a/secrets/envs/preview/delegator/payment.skey b/secrets/envs/preview/delegator/payment.skey new file mode 100644 index 00000000..a882ddbe --- /dev/null +++ b/secrets/envs/preview/delegator/payment.skey @@ -0,0 +1,15 @@ +{ + "data": "ENC[AES256_GCM,data:c2tgZ5gTRC9bG74zmjw0rZ/91w50pX5xmL3HfYlUq9u/a/VNFY0kP5fHoryhS4kpvptG3DIBSAApQtoE8pdeTLB88ri67PnavRIsVG2/eAjXRWRJtcY1kYJVCJsR11ma+LMWrM2y0PDXr4g9cAWnavpveZYqi62tGzsKNoZkgRzLXJuoGo3dmE1upOBSn5ktOtHIS3PegFyL2fwCnXFDyPP0+Inzc99DmTNqcFjXqj4cG7Cx,iv:ORoW9E2Ie3chjtahpuT7iuZIVI7VsUKbrktMSNFuf4A=,tag:/x5lu1aLWsSo297iaQbDpw==,type:str]", + "sops": { + "age": [ + { + "recipient": "age1rj7vaq0rsarnum2fx6zq0k3l64f6mca9t9mlhqu4nfvpqhux6uts5zud2m", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBocDQrZWM4Q0FibW5MUzdk\nYVIrL2hNdGw0ZkNEZmh3aXVaazlvekxNWkMwClBOUFlwaEkydFUvTThXZkl1aFJm\nS3FUdCs2QnRZMEpXanJvRkY5UkRnQzAKLS0tIDNZTTk4TmczZ0dmMkNJT1Z2Tmkr\nRThYYU1mVGgvZHJrcHhGMWdzWGx2N0UKL49IyqwZC63AkAbx0IPLy91Cq5qgDvHj\nsjn+5di7AazLrQvnbBf+h7TjwLAD0+yjR2KULmgEfj5r7KFzpAbozA==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2025-06-05T23:45:59Z", + "mac": "ENC[AES256_GCM,data:PTMe5nRKu+0HBnK2n89Pu8GOdCk4KSiBBHsAIqQ8rdOsuuEfml/lc4oMQMeCZfQD5zZI1Q8BHPtkncUWSpcnPrv/tpDl+xCRRGU+uto+nQjXNYvZIaBd5yi4mRMT8Ds7tCAiZ1rXgJjW/mTByfB+QEFjopGUq1Vh/VpmcKgoWEM=,iv:paBFd0FKWQo/le9466/NoWkcf3r3fWHFmGZPZY9YXQs=,tag:jj+hAvEz/nO8wVafY5Pwyw==,type:str]", + "unencrypted_suffix": "_unencrypted", + "version": "3.10.2" + } +} diff --git a/secrets/envs/preview/delegator/payment.vkey b/secrets/envs/preview/delegator/payment.vkey new file mode 100644 index 00000000..13051db4 --- /dev/null +++ b/secrets/envs/preview/delegator/payment.vkey @@ -0,0 +1,15 @@ +{ + "data": "ENC[AES256_GCM,data:Bcz8edIQfvda2XVQs9IQ5gtoIxu2rzA5YFz3mXYNIHvQE5+cToLJjomoBAhdDCJvmdN7aTE+x8T/1G3bwKgC2fe16GR7nuMUPzcD13el5s5owaw8bSS3FnDp2/OtiTMkeU1b8UfFxrxihjE8/gHAwihmHoLMTR8Mvv0kNO9wD7FfMWxv/09yyUCYnm7tj8Zl7B0f1DNCgUfxG5xwzyP3I2ZqlLIMt6JNeeYVqTi3RoZ8ADty/BMfZtcuHCBTUA==,iv:x9Kjotmub4YA1PmX+D+2FapJI8p7rSpfa2RsfdSIADg=,tag:er0me+CDg4Jp09fOUTxjjQ==,type:str]", + "sops": { + "age": [ + { + "recipient": "age1rj7vaq0rsarnum2fx6zq0k3l64f6mca9t9mlhqu4nfvpqhux6uts5zud2m", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMSlNPYTN2ejlQUDhPZlFp\nV1kwakNLckZoTGxlUHZtVm1CUTR4dlJTMFVRCnU1WHlSMlBLTmd6NzdHaEVhUzRo\nVkVtcFkzUGphTnFkTHFTQXpySTdFZU0KLS0tIGdzNHZEV21kN1BDUmtOUWhkN1RJ\nZHZyYytKdW9TRjRzVHB5c290bUo4V2sKTTJJfHivO/70XIVfD7V2vg0FqTOEA4cd\nAaUOh1hUAbKVHRxuhd5krFB+diMVxFtOkYgkFDj/iHbGJuqvmtu6wg==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2025-06-05T23:45:59Z", + "mac": "ENC[AES256_GCM,data:g1f92uUzcbM/lM3vRX6fqM8JPP4LqaXrZIyvoFEPrA/o0M4oPa6RFv/1nBtUMqdY5iVIDnQYl8XZBjUZvH1smMDrlXrJuDGVQCm7OGQCzAM0T+uvOOlBAkokR9BYKTgKOnvCtNDMJuX9lP1Ez6fp4tLAv8OsCN4Me0ps8AV6b1A=,iv:4kKwxLghZtfNFLBhUEp2eT/aFxmsubS9hpSqDlLOGf4=,tag:fZHcee+SXxJvSUW9nNfQSw==,type:str]", + "unencrypted_suffix": "_unencrypted", + "version": "3.10.2" + } +} diff --git a/secrets/envs/preview/delegator/stake.addr b/secrets/envs/preview/delegator/stake.addr new file mode 100644 index 00000000..02803d22 --- /dev/null +++ b/secrets/envs/preview/delegator/stake.addr @@ -0,0 +1,15 @@ +{ + "data": "ENC[AES256_GCM,data:cXDkiKfjbW0zvneNolpjQ3EB4ewSil33ltdx+9aGgeB8c91QqMMm7HUZrpJpY8pteIP4V58ePIKK4IwBS/Oiqg==,iv:bU6IRLzABYjq5tsNkt7kwESlDM5eEha6kfi/QtUfTE0=,tag:NmIfZz5v67Vycw+V61Hf4g==,type:str]", + "sops": { + "age": [ + { + "recipient": "age1rj7vaq0rsarnum2fx6zq0k3l64f6mca9t9mlhqu4nfvpqhux6uts5zud2m", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIUXNJWWFiVE9HaHFNYXlx\nL3hVV2FIV2lQYlBqcHk2Z1FXM1FaSnNCcDE0CmdYS3dSREs2QzZ0UnJvVnl5dzVp\nTWh5VEVRbXlFbHFGb3NJT0p6djlOMUEKLS0tIFdRS1ZGYVR0U1lIdE11NE5sV1p2\nY3pOVzdLR2svY3pKYThReGNKaWswNzgKWFoSSQ7xNrWmCVBMpMZREZse1yY6/xkG\nY2q8qWCY6AkOH8iEW/3H89Vi5xKHeH5xxWZgq/8Q6ylaqacl4ofJWw==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2025-06-05T23:45:59Z", + "mac": "ENC[AES256_GCM,data:L4QKTqAm6LYzBmtrpzCf3oO7xHrgowG3pQklgo7EZ2GjGHkbRMuGYzpKWRbaQyxoRjd6wEiYe8YAV9tTHvDU/mZiMLinGUrCTy8tukpEK7ICli/pK1sVCCUcppBMeucI5y4PWwwM6dNw/vQT7SNRzDu5PjtdBPWv5ZeMUi4kvqg=,iv:gMs4oILYjwJMDujk/GKm4Q5TegdaxqPY+WDGAB5mbPI=,tag:P9Tri9ax3JA09umYqJaTGg==,type:str]", + "unencrypted_suffix": "_unencrypted", + "version": "3.10.2" + } +} diff --git a/secrets/envs/preview/delegator/stake.skey b/secrets/envs/preview/delegator/stake.skey new file mode 100644 index 00000000..d9688a1f --- /dev/null +++ b/secrets/envs/preview/delegator/stake.skey @@ -0,0 +1,15 @@ +{ + "data": "ENC[AES256_GCM,data:jvu3dRv8AIzy/YIXbHt6w363zA5HqMiLISe9eCivfWu60tRkxcJWIpFlImF1a1suP4NR6kG3EHsZzyuk8BnnKlTsdQVC64DW3R5b2p5f2w6ApB+8EMe5QX/vZW+1J5ca0cazF9WRBuj/aUrMY6T9ZPVQf6+Fm91zkTbicAwxvQ4wk4jwmtp+b4AY9PrIMSTkw6bYQKjUofL16FQx932XrVNKrXzaUbUYXZMM3ZRSjuE=,iv:OWD8MkMoWrqQ6F8Q4RNOq7/KscqIdQXl4pLom+dDYl0=,tag:SfqHMx0eDY5kHgMHTb+tmg==,type:str]", + "sops": { + "age": [ + { + "recipient": "age1rj7vaq0rsarnum2fx6zq0k3l64f6mca9t9mlhqu4nfvpqhux6uts5zud2m", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArdjFFRGttRkZpKzd3b1VP\nMkZOWTR3K3NBeWRkYlhPL09SM3FMbU9heEJzCmtJUktxWloyZEwrZmR6UGljM1l1\neExSUTBUM0plNURYZml4RE5Yd3ZLMlEKLS0tIGNBbFdMM3EzVE1mK3VRN2E5QjlJ\nK0NvMktiTnNEdmg1OHJjT3lHTHFabm8KQBKUqWdzFf50oX06IzZEl0Z7mMgPVEhl\ndBRn2UtibbWAqhz1skhSEPIEfCoH0gF9X9y38pheAUg+uSOh7Geqbw==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2025-06-05T23:45:59Z", + "mac": "ENC[AES256_GCM,data:CYpJq+7rieKNOJAxB35odWVnRCRUYGg0Mz2FMGHhdzu+CG5BXtWEtWg0afsgvRgjJc0bS9fd22kdnGNbQwsOf8HfwnozFTvd4UZsK3c2EO0/Dswr7QOg2vKFNLM7t0RxCy3pe4GUNNJ15Glw7Mwe9RrGBQBHvcQAx0Ca9e29kqI=,iv:gCsDcHQYHScGjKIVw1A7yues6el3dirBCblW1D6O7O4=,tag:6gRNWCqPLL3JHNtMRPf/Gg==,type:str]", + "unencrypted_suffix": "_unencrypted", + "version": "3.10.2" + } +} diff --git a/secrets/envs/preview/delegator/stake.vkey b/secrets/envs/preview/delegator/stake.vkey new file mode 100644 index 00000000..e934b3e0 --- /dev/null +++ b/secrets/envs/preview/delegator/stake.vkey @@ -0,0 +1,15 @@ +{ + "data": "ENC[AES256_GCM,data:7k894cWKK2jsV7+ujNeSj8L7CcbnUQXTEcJAxI1nGYxqaRjISgB8h8y9FVI9AOb3feEZRGqPzTeQ6RMSkKegnpWmseWakqhBaNxxiUkWwc6sdIrj7wrrZyM+pYRgLHFLsXLYJnA3WUl35GzBgJH4wSwdETGYfEieVV70ctzT8j05zvLmGHmcV148MsoZCNscR7DsWUY9hlEbXc1bz6RItoq0CivY+rSBoXHwh8guPqWXlp0Hs+cVfE79,iv:l3hOBKiKMT8Sxv467HZ/4c2jC0hb1/iwy3IM0D1uFA4=,tag:Z17ednJ0MQpmnGP8cE8rgQ==,type:str]", + "sops": { + "age": [ + { + "recipient": "age1rj7vaq0rsarnum2fx6zq0k3l64f6mca9t9mlhqu4nfvpqhux6uts5zud2m", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwdCs4aTdQbUdFMzdBRGdl\nVzhuTEtwZm5nT3R5dGJuQW5kSll3bzVvdGtjClVzbUpQNkJrN0Y5MTFLQnVkN1Np\nbzhEMCtMK0FmR1VTcTFSS3duSlNTdWMKLS0tIEtKSzg0WGlsSEVBbm1kbmdUeUdq\ndkh0M3gwc2swcURaQ1ZYbVVQRnZrR00K6m0kP8GLBUYdqlFxey1NsFm8AVEmw5wF\nbyDeUkio9tkJWaII4xmc5p92Y5Qbd3fv8hPAjMikafQ3jkNSeSD5vA==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2025-06-05T23:45:59Z", + "mac": "ENC[AES256_GCM,data:hy/TArVqcPkEiF2NWopV6Gl/SACXHE/y43RqtOtU8rZdouBIK2ezZx8oC9bEZ0Qs0HDjKDhudmK6yqGKCWJy4LOxJIny1nRYP949RFajv21UR4WcS+EShMQeAAkvOBThBi3r0flEiN9YVVhuF889DF3y0G+/WOd9h0G1BaPWvfo=,iv:ik00nZpxEZQ0xb5H37zZ3WKfUZwuxEHiZ764UqsmW4E=,tag:r7dQrVlSSox0k1BDtAQE5A==,type:str]", + "unencrypted_suffix": "_unencrypted", + "version": "3.10.2" + } +} diff --git a/secrets/envs/preview/icc-keys/hot-nft.utxo b/secrets/envs/preview/icc-keys/hot-nft.utxo deleted file mode 100644 index 7ea450ab..00000000 --- a/secrets/envs/preview/icc-keys/hot-nft.utxo +++ /dev/null @@ -1,20 +0,0 @@ -{ - "data": "ENC[AES256_GCM,data:6o2uMNMHhdh/MlE9wipbC6F+Rtq4o2l6U0lAoq6i46S55P4AV/EH+m82y/7t+CEVkRjm4BGv9Sz1QMFPLj5YT+UxzYLV+mRh4FjcmGBBjp7xWNJauPQtXK+7koH89joEk1Pn3EtV6txTH4PXB9Pzpn1OXH+eXackwwySJ9mIC9tdmXTIEt8u+vnzuvAuT0HMzbu1kvqI7k2bHcN92GHfTqlTBELhwMG0toawBjbPJgp/2PgNT2dewer18z6oSS68TYsdHEyh9tshDqBo5MzSky16PwSVCfM3Y8AKuJsowIOgSgGrV+11VBezjL9B6b8vtCfC2avLHGUE/3gJc44cegOI9TuhQmDn93ZfwvVOIBvHcNY3LYUDlmzsNTdrTXahdb1HiZ3WePgrdmguJda0N23mXD39oqXUTQ6Hxjaj6zzncqGOpI+8hWsY5caV0pxAcp601KDFlyeM2e3Mg0YpfHqaF91gggvR33F4uRgfHgUrI+h6BW243XjNFb/rGtEC9avmuKqrqa/FJrVjFJDPDkS2a4l3idM4kG3UpDF8jWQER+5Y5r9izWJCYdMbJnUrBKBJ7BLOZA99unZqAG4bbBKXktI7kIx/cnL7Hm2MkYeXK0qWLcDs21cRwjLYKfdIxb4l4hWGelHtgqaO8fq/qITsL3QcIHsosFaHWNrV7mswC2PzToEp0cnj3w3uSBQPibDGVDmnhHYRn6RUHY7rZ8e1ianpIc/05fz3sGDxRVrXpYlBExJb0ULDA/14r9S4DkNq7Ydcj/4N/fZJt1qjsnWGZGy0RG5KLcw2AhRw9YvEGwg4vSfHTIl0hFLie+8h+rAtTamcugOFxQzUE90KyZuk8FHIMTTWlwZcxIoGTw1EOkQRHbhmgMeCEgqfO9h23QS1sQGFI6jg3Vf95IKhFzKIwu/GUC1j61xWDO2HpUkSoK6Zz0dl7V+5Bff3QXDEtL6vsZ/4otn/UiTgzubQJ7pexL1bXXZ9rkRYi8ySAvdPLOmN1a6CMP/2fnju0UpyMLvImWlAzVrtd8dixkLjmKbXOhBaZkErzbshfgX3naIBkT9tP8stEhY+aP+2F9CSNBJQAL82iTCHfxr2fth2FXQ5GF6Xjr2hXsgIUs0pRV+XBwWinsiI0h0qI+XK01//J46ObPK2IlMJnEXC3FvYXcUTCVReekx0ujVXHSOWDsNwAve4KEdT9biN64lNROWGvwdPq0uWU6JW51OpDXSJlxH15iD/As6RhAo+C7UGqSBIAIhuI1SYKqCenk7Dz01ASWP5kJd616ZFCLBjqwyICpf4np3Q5kf7Wm8GhfSdoZb9VxoluxBHA5aEoGCrSpP90oe9QYIK0zExS2CKEmDnZpEuvbVKW/UShpXy4wPRL0HH+hZGHVIlcWDkG1pevDDyxitHcpaG8NvlpbwP/oTWquOrYrA0FhDjsQ1R/gP4gzMFDEp2vh2QTkslbwrMZ8SSCgOVsErhkJJSgDT4eEBM8H2UaqNugf7ZFInMNrQejf6lqTVtkiTkqtW02njcvzb9pMM7K+Pc7nbbQ8YsDSGa5C850J77YN9iAQQ/nAUosOIUMXKE8OqaPpwVL6/G5k5MXepYmfSNyx6MJ8xwhMiIB6FE46rizME9c7JnbRz16fL0G+yDZ39KmrsD68nevV73RK3TlAWK4krCfpfLhemighoiJmTYcXyDbh1Z60V0lpyLZ2HsxBggYL3e5DpgYYgRiRi9I9jwVrqG99j3C9DMl24ICisoZLhawfKNpfxtkoJ5ODRLLJAC1mQCHXncA8ZGavOP4/vL9Wbjvhq7lFskSTaokkkl5eC3CnosLX35R2jX3LYCKqr5e8wyltY33xfuMR3vStKR44v3/gGADuKOWS2UdTApCxEG+IlW+Ft2avB72y9JMu/SYrx5Ax/pVixcF6lhUCTEY8WOBC4gtEbEhJG2YKPPJt2DhpwmTmjQ+z0+uT6dO9bFSHRK5AiViEShctB0lDy8Aqn6Unr3nc3LuNfEdPjDWQMVjtvev2ITK7+5DrPRJOLI1F/0Dei0j3bVGTjEvCT5rx78gZ4j6Vgp6OwHENCZQvE/i3BdiOo9xHQ5/x1hwrWwCX6RtyzRyxo6So5C1Qvy4CzbZQ76U4NAc4hUONL01KjHpoWbRxRTbSwpKblojMew0cxR/HX2DmnvKKMzsFcw2FV/Y2UvTh6REexE6kjtoY2+H0iCX5fe21TJbZdM6VxX4nUhZ/j1h1T7zIUegIqO19FTPErKQrz1fJM+idljICtMYMBTXhkndZh1rnZHn913peHlDPE4Lu7iHz3ZiMidP0YaIeFE1cuet84paDbivpw7gifYoa5yYOpSdHXm2KQx9QBNjgou/fHgapAlexHbzZTUZHMIQM8jPExM97XE5yXQ3oJiocLfQk2jC6WlwUP2U6HXTgyrtMyX9LF7HqWU2C5cqkPf9U1/++JshtgfqyhGUxqvly9P0vy3MjLx+HbgttXcvxM69Dyd4i5hhO3ae30OyJEwfgU9OGTCpZ5hpB4lSYCCX4NyUhmd0NONHK7T+uQtR0JhRZCaas+JzIu+PYTEjBYJFvfMERuoV+m8x/uYWmp1hJ37VQSk4v2HD0bg2Y2ggh9/Waur9+f4mm6SczY2XM5g0xK7HsGpIX6J5GyHia7FSWUQERmFzXfZI/XzbUPybaLBNaxYANXk7EYSRBXJpYyj3Wj52zg8aofCuicxZNesoeWJIYe/UG14Vd8vfqRIHPfD8dNHnUez1mWwrFfrTl9CyEVm9TBxK7rSS0WuIbF55C/yGALeYepojHnD0MvGpZeOM/rf8BwgvnR12lRJMfWzxLCgemPgCxVCcqJSwQLAc/dMIo7Q2QWDurdOhYBZkcecOGBMIMYnej6rhCWncrLbnXAu3+E8K2mQYMJDVK3K5Iyx6zA5IF46R7S36iYxGcX1IzF7XznRavpsM63e0B72DNtjEq4GTpGCrLWnoV+ZrDG5cuxj18/g4IoKwMFJ79qXdIYtE8OyixE3E8Ke/6HpJCyZP36xJcUjy/IZ7VarUbx/wPASdSyOvrS2SrAGqqYgbpwcm3AkuoqThW0fHhf1Gi9CXizWWn5654NLGZ7emTikWEgfDrCD+rga7x0vALIL8furWpxIwCDHgImGmYm592X819w=,iv:pyRD7f+lIeM2ybwer1eYfIjAffUvqW2xvZdCzs03QQY=,tag:CtPKSURke9mR6tcNLubGVw==,type:str]", - "sops": { - "kms": null, - "gcp_kms": null, - "azure_kv": null, - "hc_vault": null, - "age": [ - { - "recipient": "age1rj7vaq0rsarnum2fx6zq0k3l64f6mca9t9mlhqu4nfvpqhux6uts5zud2m", - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzUHEwVmJUekhzc09rdFVh\nM1RvMUZXVTFuSXFTNjFPZ0JmYmxwam81ekFjCklpbDIwci9xWHRvd3VaaGhNUkph\nMmlhTXlMWVE1M3B1YWYvZXpFaTNSaTgKLS0tIElkVFlHaTZTOFQ4MUoxRHdYZlN5\nQlZpMnlNa01Jby9HV0JVamtlcDZpdGsKetSbjsZYwMQJ95reyM11+Qjz7efoQiXB\nF7Rm3gUjovr4IvXm7S99HzGS9DXW8m+f/0IJs09Y0DcABN6oJQuigw==\n-----END AGE ENCRYPTED FILE-----\n" - } - ], - "lastmodified": "2025-01-24T16:46:29Z", - "mac": "ENC[AES256_GCM,data:3UbIqsClo68gq/D8JbST0n8iX6aUfTKCx6A0pb2xW0HdodrmBWSHMoJqScNfqzDMZ8UuG4VFLCyfDFg4d9hCTtIOr5500PfqJuMfDMd8V2J0inCPprJu6PZZoiuLATnbJyc8E8YFOAHJpvVntOUDoOHATqaMic5J+0y/4WKvdnY=,iv:cYmfOUonmlQsY6imbbv90OcfWD4/7mv9fA7pHjcDl78=,tag:wnTqEGtgUQu4UEvjzrSUjw==,type:str]", - "pgp": null, - "unencrypted_suffix": "_unencrypted", - "version": "3.9.2" - } -} \ No newline at end of file diff --git a/static/book.play.dev.cardano.org/404.html b/static/book.play.dev.cardano.org/404.html index 20a294ac..313259fd 100644 --- a/static/book.play.dev.cardano.org/404.html +++ b/static/book.play.dev.cardano.org/404.html @@ -1,5 +1,5 @@ - + @@ -8,7 +8,7 @@ - + @@ -24,26 +24,29 @@ - - - + + + - - -
- + + - + + + + +
- - -
- +