diff --git a/.envrc b/.envrc index 1d9c2db..4387f0a 100644 --- a/.envrc +++ b/.envrc @@ -11,6 +11,11 @@ source ./.envrc.${CFG_PRESET} git config --local commit.gpgSign true git config --local tag.gpgSign true +# ensure submodules are checked out: +if [ ! -d "cardano-configurations" ]; then + git submodule update +fi + # docker on mac expects linux/arm64/v8 but currently we don't publish that build if [[ "$(uname -s)" == "Darwin" ]] && [[ "$(uname -m)" == "arm64" ]]; then export DOCKER_DEFAULT_PLATFORM=linux/arm64 @@ -52,5 +57,5 @@ export NODE_KEY="$(cat ./midnight-node.privatekey)" export CARDANO_NETWORK=preview export CARDANO_IMAGE="ghcr.io/intersectmbo/cardano-node:10.2.1" export CARDANO_DATA_DIR=./cardano-data -export CARDANO_CONFIG_DIR=./cardano-config/${CARDANO_NETWORK} +export CARDANO_CONFIG_DIR=./cardano-configurations/${CARDANO_NETWORK}/cardano-node/ export HOME_IPC=${HOME}/ipc diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..86b99ef --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "cardano-configurations"] + path = cardano-configurations + url = https://github.com/input-output-hk/cardano-configurations.git diff --git a/CHANGELOG.md b/CHANGELOG.md index cb24ad5..c0b003a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## 🚀 Features +- Optimise postgres config - Switch networks by altering CFG_PRESET only - Added `test.sh` to detect problems and provide solutions. - Added `reset-midnight.sh` script to clear down midnight's blockchain. diff --git a/cardano-config/preview/LICENSE.md b/cardano-config/preview/LICENSE.md deleted file mode 100644 index 73d76d4..0000000 --- a/cardano-config/preview/LICENSE.md +++ /dev/null @@ -1,16 +0,0 @@ -The files in this dir are part of https://github.com/midnightntwrk/midnight-node-docker -Copyright (C) 2025 Midnight Foundation -SPDX-License-Identifier: Apache-2.0 -Licensed under the Apache License, Version 2.0 (the "License"); -You may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -The original source of these files is https://github.com/input-output-hk/cardano-playground/tree/main/static/book.play.dev.cardano.org/environments/preview diff --git a/cardano-config/preview/alonzo-genesis.json b/cardano-config/preview/alonzo-genesis.json deleted file mode 100644 index 0fd90de..0000000 --- a/cardano-config/preview/alonzo-genesis.json +++ /dev/null @@ -1,196 +0,0 @@ -{ - "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/cardano-config/preview/byron-genesis.json b/cardano-config/preview/byron-genesis.json deleted file mode 100644 index 99b5845..0000000 --- a/cardano-config/preview/byron-genesis.json +++ /dev/null @@ -1,117 +0,0 @@ -{ "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/cardano-config/preview/config.json b/cardano-config/preview/config.json deleted file mode 100644 index 1255b6b..0000000 --- a/cardano-config/preview/config.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "AlonzoGenesisFile": "alonzo-genesis.json", - "AlonzoGenesisHash": "7e94a15f55d1e82d10f09203fa1d40f8eede58fd8066542cf6566008068ed874", - "ApplicationName": "cardano-sl", - "ApplicationVersion": 0, - "ByronGenesisFile": "byron-genesis.json", - "ByronGenesisHash": "83de1d7302569ad56cf9139a41e2e11346d4cb4a31c00142557b6ab3fa550761", - "EnableP2P": true, - "ConwayGenesisFile": "conway-genesis.json", - "ConwayGenesisHash": "802439177a0061399d98c3543304c91cfdc6df00b79b7242ecefa7aec9e06f38", - "LastKnownBlockVersion-Alt": 0, - "LastKnownBlockVersion-Major": 3, - "LastKnownBlockVersion-Minor": 1, - "Protocol": "Cardano", - "RequiresNetworkMagic": "RequiresMagic", - "ShelleyGenesisFile": "shelley-genesis.json", - "ShelleyGenesisHash": "363498d1024f84bb39d3fa9593ce391483cb40d479b87233f868d6e57c3a400d", - "TargetNumberOfActivePeers": 20, - "TargetNumberOfEstablishedPeers": 50, - "TargetNumberOfKnownPeers": 100, - "TargetNumberOfRootPeers": 100, - "TestAllegraHardForkAtEpoch": 0, - "TestAlonzoHardForkAtEpoch": 0, - "TestEnableDevelopmentHardForkEras": true, - "TestEnableDevelopmentNetworkProtocols": true, - "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": false, - "TraceInboundGovernor": true, - "TraceIpSubscription": true, - "TraceLedgerPeers": true, - "TraceLocalChainSyncProtocol": false, - "TraceLocalErrorPolicy": true, - "TraceLocalHandshake": false, - "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, - "defaultBackends": [ - "KatipBK" - ], - "defaultScribes": [ - [ - "StdoutSK", - "stdout" - ] - ], - "hasEKG": 12788, - "hasPrometheus": [ - "127.0.0.1", - 12798 - ], - "minSeverity": "Info", - "options": { - "mapBackends": { - "cardano.node.metrics": [ - "EKGViewBK" - ], - "cardano.node.resources": [ - "EKGViewBK" - ] - }, - "mapSubtrace": { - "cardano.node.metrics": { - "subtrace": "Neutral" - } - } - }, - "rotation": { - "rpKeepFilesNum": 10, - "rpLogLimitBytes": 5000000, - "rpMaxAgeHours": 24 - }, - "setupBackends": [ - "KatipBK" - ], - "setupScribes": [ - { - "scFormat": "ScText", - "scKind": "StdoutSK", - "scName": "stdout", - "scRotation": null - } - ] -} diff --git a/cardano-config/preview/conway-genesis.json b/cardano-config/preview/conway-genesis.json deleted file mode 100644 index ab005fa..0000000 --- a/cardano-config/preview/conway-genesis.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "genDelegs": {}, - "poolVotingThresholds": { - "pvtCommitteeNormal": 0.51, - "pvtCommitteeNoConfidence": 0.51, - "pvtHardForkInitiation": 0.51, - "pvtMotionNoConfidence": 0.51 - }, - "dRepVotingThresholds": { - "dvtMotionNoConfidence": 0.51, - "dvtCommitteeNormal": 0.51, - "dvtCommitteeNoConfidence": 0.51, - "dvtUpdateToConstitution": 0.51, - "dvtHardForkInitiation": 0.51, - "dvtPPNetworkGroup": 0.51, - "dvtPPEconomicGroup": 0.51, - "dvtPPTechnicalGroup": 0.51, - "dvtPPGovGroup": 0.51, - "dvtTreasuryWithdrawal": 0.51 - }, - "minCommitteeSize": 0, - "committeeTermLimit": 60, - "govActionExpiration": 14, - "govActionDeposit": 0, - "dRepDeposit": 0, - "dRepActivity": 0, - "constitution": { - "anchor": { - "url": "", - "dataHash": "0000000000000000000000000000000000000000000000000000000000000000" - } - }, - "committee": { - "members": { - }, - "quorum": 0 - } -} - diff --git a/cardano-config/preview/db-sync-config.json b/cardano-config/preview/db-sync-config.json deleted file mode 100644 index 78aba84..0000000 --- a/cardano-config/preview/db-sync-config.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "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/cardano-config/preview/shelley-genesis.json b/cardano-config/preview/shelley-genesis.json deleted file mode 100644 index 20abba3..0000000 --- a/cardano-config/preview/shelley-genesis.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "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/cardano-config/preview/submit-api-config.json b/cardano-config/preview/submit-api-config.json deleted file mode 100644 index a5abd69..0000000 --- a/cardano-config/preview/submit-api-config.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "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/cardano-config/preview/topology.json b/cardano-config/preview/topology.json deleted file mode 100644 index 32cb61b..0000000 --- a/cardano-config/preview/topology.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "localRoots": [ - { - "accessPoints": [], - "advertise": false, - "valency": 1 - } - ], - "publicRoots": [ - { - "accessPoints": [ - { - "address": "preview-node.world.dev.cardano.org", - "port": 30002 - } - ], - "advertise": false - } - ], - "useLedgerAfterSlot": 322000 -} diff --git a/cardano-configurations b/cardano-configurations new file mode 160000 index 0000000..a913d87 --- /dev/null +++ b/cardano-configurations @@ -0,0 +1 @@ +Subproject commit a913d87246dc2484562a00c86e5f9c74a20e82ce diff --git a/compose-partner-chains.yml b/compose-partner-chains.yml index 6f387b2..1bb1f83 100644 --- a/compose-partner-chains.yml +++ b/compose-partner-chains.yml @@ -33,6 +33,13 @@ services: volumes: - ${HOME_IPC}:/ipc # Use ${HOME_IPC} from .envrc - ${CARDANO_DATA_DIR}:/data + healthcheck: + # Ping the EKG port to see if it responds. + # Assuming if EKG isn't up then the rest of cardano-node isn't either. + test: ["CMD-SHELL", "curl -f 127.0.0.1:12788 || exit 1"] + interval: 60s + timeout: 10s + retries: 5 postgres: image: postgres:15.3 @@ -44,6 +51,8 @@ services: - POSTGRES_USER=${POSTGRES_USER} volumes: - postgres-data:/var/lib/postgresql/data + - ./postgresql.conf:/etc/postgresql.conf + command: -c config_file=/etc/postgresql.conf -c listen_addresses='*' ports: - "${POSTGRES_PORT}:${POSTGRES_PORT}" healthcheck: @@ -61,6 +70,7 @@ services: postgres: condition: service_healthy environment: + - DB_SYNC_CONFIG=/etc/db-sync-config.yaml - NETWORK=${CARDANO_NETWORK} - POSTGRES_HOST=${POSTGRES_HOST} - POSTGRES_PORT=${POSTGRES_PORT} @@ -70,6 +80,8 @@ services: volumes: - ${HOME_IPC}:/node-ipc # Use ${HOME_IPC} from .envrc - db-sync-data:/var/lib + - ./db-sync-config.yaml:/etc/db-sync-config.yaml + - ./cardano-configurations/network/${CARDANO_NETWORK}:/etc/config/ cardano-ogmios: image: cardanosolutions/ogmios:v6.11.0 diff --git a/db-sync-config.yaml b/db-sync-config.yaml new file mode 100644 index 0000000..be384a8 --- /dev/null +++ b/db-sync-config.yaml @@ -0,0 +1,145 @@ +# From https://github.com/IntersectMBO/cardano-db-sync/blob/master/config/preprod-config.yaml +# Explorer DB Node configuration + +NetworkName: preprod + +EnableLogMetrics: False +EnableLogging: True + +# The default port is 8080 +# PrometheusPort: 8080 + +# The config file for the node we are connecting to. If this is not the correct +# config, it will likely lead to db-sync throwing up weird error messages from +# the consensus layer. +# The path to the node config file is relative to this config file. +# Mapped in from compose-partner-chains.yml +NodeConfigFile: /etc/config/cardano-node/config.json + +# https://github.com/input-output-hk/partner-chains/blob/master/toolkit/data-sources/db-sync/src/lib.rs#L63-L77 +# //! - `insert_options.tx_out.value`: must be either `"enable"` (default) or `"consumed"`. +# //! When `"consumed"` is used then `tx_out.force_tx_in` has to be `true`. +# //! Code in this crate depends on `tx_in` table being present. +# //! - `insert_options.tx_out.use_address_table`: must be `false` (default). +# //! - `insert_options.ledger`: must be `"enable"` (default). +# //! - `insert_options.multi_asset`: must be `true` (default). +# //! - `insert_options.governance`: must `"enable"` (default). +# //! - `insert_options.remove_jsonb_from_schema`: must be `"disable"` (default). +insert_options: + tx_cbor: "disable" + tx_out: + value: "consumed" + force_tx_in: true + use_address_table: false + ledger: "enable" + shelley: + enable: false + multi_asset: + enable: true + metadata: + enable: false + plutus: + enable: true + governance: "enable" + offchain_pool_data": "disable" + pool_stat: "disable" + +# ------------------------------------------------------------------------------ +# Logging configuration follows. + +# global filter; messages must have at least this severity to pass: +minSeverity: Info + +# global file rotation settings: +rotation: + rpLogLimitBytes: 5000000 + rpKeepFilesNum: 10 + rpMaxAgeHours: 24 + +# these backends are initialized: +setupBackends: + - AggregationBK + - KatipBK + # - EditorBK + # - EKGViewBK + +# if not indicated otherwise, then messages are passed to these backends: +defaultBackends: + - KatipBK + +# if wanted, the GUI is listening on this port: +# hasGUI: 12787 + +# if wanted, the EKG interface is listening on this port: +# hasEKG: 12788 + +# here we set up outputs of logging in 'katip': +setupScribes: + - scKind: StdoutSK + scName: stdout + scFormat: ScText + scRotation: null + +# if not indicated otherwise, then log output is directed to this: +defaultScribes: + - - StdoutSK + - stdout + +# more options which can be passed as key-value pairs: +options: + cfokey: + value: "Release-1.0.0" + mapSubtrace: + benchmark: + contents: + - GhcRtsStats + - MonotonicClock + subtrace: ObservableTrace + '#ekgview': + contents: + - - tag: Contains + contents: 'cardano.epoch-validation.benchmark' + - - tag: Contains + contents: .monoclock.basic. + - - tag: Contains + contents: 'cardano.epoch-validation.benchmark' + - - tag: Contains + contents: diff.RTS.cpuNs.timed. + - - tag: StartsWith + contents: '#ekgview.#aggregation.cardano.epoch-validation.benchmark' + - - tag: Contains + contents: diff.RTS.gcNum.timed. + subtrace: FilterTrace + 'cardano.epoch-validation.utxo-stats': + # Change the `subtrace` value to `Neutral` in order to log + # `UTxO`-related messages during epoch validation. + subtrace: NoTrace + '#messagecounters.aggregation': + subtrace: NoTrace + '#messagecounters.ekgview': + subtrace: NoTrace + '#messagecounters.switchboard': + subtrace: NoTrace + '#messagecounters.katip': + subtrace: NoTrace + '#messagecounters.monitoring': + subtrace: NoTrace + 'cardano.#messagecounters.aggregation': + subtrace: NoTrace + 'cardano.#messagecounters.ekgview': + subtrace: NoTrace + 'cardano.#messagecounters.switchboard': + subtrace: NoTrace + 'cardano.#messagecounters.katip': + subtrace: NoTrace + 'cardano.#messagecounters.monitoring': + subtrace: NoTrace + mapBackends: + cardano.epoch-validation.benchmark: + - AggregationBK + '#aggregation.cardano.epoch-validation.benchmark': + - EKGViewBK + mapSeverity: + db-sync-node.Subscription: Error + db-sync-node.Mux: Error + db-sync-node: Info diff --git a/postgresql.conf b/postgresql.conf new file mode 100644 index 0000000..22fbcb3 --- /dev/null +++ b/postgresql.conf @@ -0,0 +1,24 @@ +# Tuned from https://pgtune.leopard.in.ua/?dbVersion=15&osType=linux&dbType=oltp&cpuNum=1&totalMemory=1&totalMemoryUnit=GB&connectionNum=20&hdType=ssd +# (Please regenerate when altering postgres versions.) +# +# DB Version: 15 +# OS Type: linux +# DB Type: oltp +# Total Memory (RAM): 3 GB +# CPUs num: 1 +# Connections num: 20 +# Data Storage: ssd + +max_connections = 20 +shared_buffers = 768MB +effective_cache_size = 2304MB +maintenance_work_mem = 192MB +checkpoint_completion_target = 0.9 +wal_buffers = 16MB +default_statistics_target = 100 +random_page_cost = 1.1 +effective_io_concurrency = 200 +work_mem = 28086kB +huge_pages = off +min_wal_size = 2GB +max_wal_size = 8GB