From 43507502692898a8b636e370a2e2d9d1e3c4e7ce Mon Sep 17 00:00:00 2001 From: Yuriy Taraday Date: Wed, 21 Sep 2022 17:04:11 +0400 Subject: [PATCH 1/3] db-sync: Bump snapshot URL Current snapshot is already gone from the bucket. --- nix/cardano/constants.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/cardano/constants.nix b/nix/cardano/constants.nix index 39e625888e..c4a4302d87 100644 --- a/nix/cardano/constants.nix +++ b/nix/cardano/constants.nix @@ -23,7 +23,7 @@ # https://update-cardano-mainnet.iohk.io/cardano-db-sync/index.html#13/ mainnet = { base_url = "https://update-cardano-mainnet.iohk.io/cardano-db-sync/13"; - file_name = "db-sync-snapshot-schema-13-block-7519843-x86_64.tgz"; + file_name = "db-sync-snapshot-schema-13-block-7770734-x86_64.tgz"; }; }; } From 7051e4d36e46e4b3b031de73a0692173acf1b5fc Mon Sep 17 00:00:00 2001 From: Yuriy Taraday Date: Wed, 21 Sep 2022 17:12:51 +0400 Subject: [PATCH 2/3] entrypoints: Add --fail flag to all curl invocations Makes it fail on HTTP errors instead of finishing successfully and outputting garbage to out file. --- nix/cardano/entrypoints.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/nix/cardano/entrypoints.nix b/nix/cardano/entrypoints.nix index 7a99c3d060..f5740f1eb1 100644 --- a/nix/cardano/entrypoints.nix +++ b/nix/cardano/entrypoints.nix @@ -68,9 +68,9 @@ # shellcheck source=/dev/null source ${nixpkgs.cacert}/nix-support/setup-hook echo "Downloading $SNAPSHOT_BASE_URL/$SNAPSHOT_FILE_NAME into $SNAPSHOT_DIR ..." >&2 - if curl -L "$SNAPSHOT_BASE_URL/$SNAPSHOT_FILE_NAME" --output "$SNAPSHOT_DIR/$SNAPSHOT_FILE_NAME"; then + if curl -fL "$SNAPSHOT_BASE_URL/$SNAPSHOT_FILE_NAME" --output "$SNAPSHOT_DIR/$SNAPSHOT_FILE_NAME"; then echo "Downloading $SNAPSHOT_BASE_URL/$SNAPSHOT_FILE_NAME.sha256sum into $SNAPSHOT_DIR ..." >&2 - if curl -L "$SNAPSHOT_BASE_URL/$SNAPSHOT_FILE_NAME.sha256sum" --output "$SNAPSHOT_DIR/$SNAPSHOT_FILE_NAME.sha256sum"; then + if curl -fL "$SNAPSHOT_BASE_URL/$SNAPSHOT_FILE_NAME.sha256sum" --output "$SNAPSHOT_DIR/$SNAPSHOT_FILE_NAME.sha256sum"; then echo -n "pushd: " >&2 pushd "$SNAPSHOT_DIR" >&2 echo "Validating sha256sum for ./$SNAPSHOT_FILE_NAME." >&2 @@ -132,6 +132,7 @@ local cmd=( "curl" + "--fail" "$CONSUL_HTTP_ADDR/v1/kv/$CONSUL_KV_PATH?raw" "--header" "X-Consul-Token: $CONSUL_HTTP_TOKEN" "--header" "Content-Type: application/json" @@ -177,6 +178,7 @@ local cmd=( "curl" + "--fail" "$VAULT_ADDR/v1/$VAULT_KV_PATH" "--header" "X-Vault-Token: $VAULT_TOKEN" "--header" "Content-Type: application/json" From 81af3e6bafa275b163920cfcb21399770ea3fb6f Mon Sep 17 00:00:00 2001 From: Yuriy Taraday Date: Wed, 14 Sep 2022 15:33:09 +0400 Subject: [PATCH 3/3] cardano: Disable p2p for preview and preprod networks Following the example from https://github.com/input-output-hk/cardano-configurations/commit/319805a02ad4899d1fbdf43cb5db8a494d7e1e50 create _p2p directories for networks that might have p2p enabled, but keep it off by default. --- nix/cardano/environments/default.nix | 6 ++- nix/cardano/library.nix | 55 +++++++++++++++------------- 2 files changed, 33 insertions(+), 28 deletions(-) diff --git a/nix/cardano/environments/default.nix b/nix/cardano/environments/default.nix index 4389aa66ff..aa1d87beaf 100644 --- a/nix/cardano/environments/default.nix +++ b/nix/cardano/environments/default.nix @@ -175,9 +175,10 @@ edgeNodes = [ { addr = relaysNew; - port = 30000; + port = edgePort; } ]; + edgePort = 30000; submitApiConfig = mkSubmitApiConfig "preprod" nodeConfig; dbSyncConfig = mkDbSyncConfig "preprod" nodeConfig; usePeersFromLedgerAfterSlot = 4642000; @@ -195,9 +196,10 @@ edgeNodes = [ { addr = relaysNew; - port = 30002; + port = edgePort; } ]; + edgePort = 30002; submitApiConfig = mkSubmitApiConfig "preview" nodeConfig; dbSyncConfig = mkDbSyncConfig "preview" nodeConfig; usePeersFromLedgerAfterSlot = 322000; diff --git a/nix/cardano/library.nix b/nix/cardano/library.nix index 7c4840c6c4..7628b47ec3 100644 --- a/nix/cardano/library.nix +++ b/nix/cardano/library.nix @@ -85,7 +85,7 @@ in rec { mkTopology = env: let legacyTopology = mkEdgeTopology { edgeNodes = [env.relaysNew]; - valency = 2; + valency = 1; edgePort = env.edgePort or 3001; }; p2pTopology = mkEdgeTopologyP2P { @@ -96,33 +96,36 @@ in rec { if (env.nodeConfig.EnableP2P or false) then p2pTopology else legacyTopology; + copyEnv = env: value: let + p = value.consensusProtocol; + in '' + mkdir -p "$DATA_DIR/config/${env}" + ${jq}/bin/jq . < ${__toFile "${env}-config.json" (__toJSON (value.nodeConfig + // { + ByronGenesisFile = "byron-genesis.json"; + ShelleyGenesisFile = "shelley-genesis.json"; + AlonzoGenesisFile = "alonzo-genesis.json"; + }))} > "$DATA_DIR/config/${env}/config.json" + ${jq}/bin/jq . < ${__toFile "${env}-db-sync-config.json" (__toJSON (value.dbSyncConfig + // { + NodeConfigFile = "config.json"; + }))} > "$DATA_DIR/config/${env}/db-sync-config.json" + ${jq}/bin/jq . < ${__toFile "${env}-submit-api-config.json" (__toJSON value.submitApiConfig)} > "$DATA_DIR/config/${env}/submit-api-config.json" + cp ${value.nodeConfig.ByronGenesisFile} "$DATA_DIR/config/${env}/byron-genesis.json" + cp ${value.nodeConfig.ShelleyGenesisFile} "$DATA_DIR/config/${env}/shelley-genesis.json" + cp ${value.nodeConfig.AlonzoGenesisFile} "$DATA_DIR/config/${env}/alonzo-genesis.json" + ${jq}/bin/jq . < ${mkTopology value} > "$DATA_DIR/config/${env}/topology.json" + ''; + copyEnvWithP2P = env: value: + if (value.nodeConfig.EnableP2P or false) + then [ + (copyEnv "${env}_p2p" value) + (copyEnv env (inputs.data-merge.merge value {nodeConfig.EnableP2P = false;})) + ] + else (copyEnv env value); in '' mkdir -p "$DATA_DIR/config" - ${ - toString (lib.mapAttrsToList ( - env: value: let - p = value.consensusProtocol; - in '' - mkdir -p "$DATA_DIR/config/${env}" - ${jq}/bin/jq . < ${__toFile "${env}-config.json" (__toJSON (value.nodeConfig - // { - ByronGenesisFile = "byron-genesis.json"; - ShelleyGenesisFile = "shelley-genesis.json"; - AlonzoGenesisFile = "alonzo-genesis.json"; - }))} > "$DATA_DIR/config/${env}/config.json" - ${jq}/bin/jq . < ${__toFile "${env}-db-sync-config.json" (__toJSON (value.dbSyncConfig - // { - NodeConfigFile = "config.json"; - }))} > "$DATA_DIR/config/${env}/db-sync-config.json" - ${jq}/bin/jq . < ${__toFile "${env}-submit-api-config.json" (__toJSON value.submitApiConfig)} > "$DATA_DIR/config/${env}/submit-api-config.json" - cp ${value.nodeConfig.ByronGenesisFile} "$DATA_DIR/config/${env}/byron-genesis.json" - cp ${value.nodeConfig.ShelleyGenesisFile} "$DATA_DIR/config/${env}/shelley-genesis.json" - cp ${value.nodeConfig.AlonzoGenesisFile} "$DATA_DIR/config/${env}/alonzo-genesis.json" - ${jq}/bin/jq . < ${mkTopology value} > "$DATA_DIR/config/${env}/topology.json" - '' - ) - environments) - } + ${toString (lib.mapAttrsToList copyEnvWithP2P environments)} ''; generateStaticHTMLConfigs = environments: let createEnvironmentConfigs = copyEnvsTemplate environments;