From 54c077a2774a816e1787f5cd68afdc7e7ff80846 Mon Sep 17 00:00:00 2001 From: saratomaz Date: Thu, 14 Nov 2024 15:21:25 +0000 Subject: [PATCH] Fix buildkite pipeline for db-sync sync tests --- .buildkite/db_sync_full_sync.yml | 6 +- .github/workflows/db_sync_full_sync.yaml | 43 +- db_sync_tests/scripts/db-sync-start.sh | 2 +- db_sync_tests/tests/__init__.py | 0 .../tests/full_sync_from_clean_state.py | 12 +- db_sync_tests/tests/snapshot_creation.py | 2 +- db_sync_tests/utils/__init__.py | 0 db_sync_tests/utils/utils.py | 96 +- flake.lock | 2386 +++++++++++++++++ flake.nix | 96 + 10 files changed, 2571 insertions(+), 72 deletions(-) create mode 100644 db_sync_tests/tests/__init__.py create mode 100644 db_sync_tests/utils/__init__.py create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/.buildkite/db_sync_full_sync.yml b/.buildkite/db_sync_full_sync.yml index 03ddc639..efa09723 100644 --- a/.buildkite/db_sync_full_sync.yml +++ b/.buildkite/db_sync_full_sync.yml @@ -1,9 +1,9 @@ steps: - label: ':drum_with_drumsticks: Full sync test :drum_with_drumsticks:' commands: - - nix develop --accept-flake-config ..#python --command python ./db_sync_tests/tests/full_sync_from_clean_state.py -npr "${node_pr}" -nbr "${node_branch}" -nv "${node_version}" -dbr "${db_sync_branch}" -dv "${db_sync_version}" -dsa "${db_sync_start_arguments}" -e "${environment}" - - nix develop --accept-flake-config ..#python --command python ./db_sync_tests/tests/snapshot_creation.py -dpr "${db_sync_pr}" -dbr "${db_sync_branch}" -dv "${db_sync_version}" -e "${environment}" -rosc "${run_only_sync_test}" - - nix develop --accept-flake-config ..#python --command python ./db_sync_tests/tests/local_snapshot_restoration.py -npr "${node_pr}" -nbr "${node_branch}" -nv "${node_version}" -dbr "${db_sync_branch}" -dv "${db_sync_version}" -dsa "${db_sync_start_arguments}" -e "${environment}" -rosc "${run_only_sync_test}" + - nix develop --accept-flake-config .#python --command python ./db_sync_tests/tests/full_sync_from_clean_state.py -nv "${node_version}" -dv "${db_sync_version}" -dsa "${db_sync_start_arguments}" -e "${environment}" + - nix develop --accept-flake-config .#python --command python ./db_sync_tests/tests/snapshot_creation.py -dv "${db_sync_version}" -e "${environment}" -rosc "${run_only_sync_test}" + - nix develop --accept-flake-config .#python --command python ./db_sync_tests/tests/local_snapshot_restoration.py -nv "${node_version}" -dv "${db_sync_version}" -dsa "${db_sync_start_arguments}" -e "${environment}" -rosc "${run_only_sync_test}" timeout_in_minutes: 43200 agents: system: x86_64-linux diff --git a/.github/workflows/db_sync_full_sync.yaml b/.github/workflows/db_sync_full_sync.yaml index 1f1d6d16..76d50b82 100644 --- a/.github/workflows/db_sync_full_sync.yaml +++ b/.github/workflows/db_sync_full_sync.yaml @@ -3,38 +3,27 @@ name: db-sync - full cycle tests on: workflow_dispatch: inputs: - node_pr: - description: node pull request number - required: true - default: "4269" - node_branch: - description: node branch or tag - required: true - default: "1.35.3" node_version: - description: node version - 1.33.0-rc2 (tag number) or 1.33.0 (release number - for released versions) or 1.33.0_PR2124 (for not released and not tagged runs with a specific node PR/version) - required: true - default: "1.35.3" - db_sync_branch: - description: db-sync branch or tag + description: "cardano-node version" required: true - default: "tags/13.0.5" - db_sync_pr: - description: db-sync pr - required: true - default: "1208" + default: "tags/10.1.2" db_sync_version: - description: db-sync version - 12.0.0-rc2 (tag number) or 12.0.2 (release number - for released versions) or 12.0.2_PR2124 (for not released and not tagged runs with a specific db_sync PR/version) + description: "db-sync version" required: true - default: "13.0.5" + default: "tags/13.6.0.1" db_sync_start_arguments: - description: argument to be passed when starting the db-sync - none, disable-ledger, disable-epoch, disable-cache + description: "db-sync start arguments" required: false default: "none" environment: - description: environment on which to run the tests - shelley-qa, preview, preprod or mainnet - required: true - default: "preprod" + description: "Environment on which Buildkite agent will run tests" + type: choice + options: + - mainnet + - preprod + - preview + - shelley-qa + default: preprod run_only_sync_test: type: boolean default: true @@ -48,7 +37,7 @@ jobs: uses: 'buildkite/trigger-pipeline-action@v1.5.0' env: BUILDKITE_API_ACCESS_TOKEN: ${{ secrets.BUILDKITE_API_ACCESS_TOKEN }} - PIPELINE: 'input-output-hk/db-sync_sync_tests' + PIPELINE: 'input-output-hk/db-sync-sync-tests' BRANCH: ${{ github.ref_name || 'main' }} MESSAGE: ':github: Triggered by GitHub Action' AWS_DB_USERNAME: ${{ secrets.AWS_DB_USERNAME }} @@ -56,11 +45,7 @@ jobs: AWS_DB_NAME: ${{ secrets.AWS_DB_NAME }} AWS_DB_HOSTNAME: ${{ secrets.AWS_DB_HOSTNAME }} BUILD_ENV_VARS: '{ - "node_pr":"${{ github.event.inputs.node_pr }}", - "node_branch":"${{ github.event.inputs.node_branch }}", "node_version":"${{ github.event.inputs.node_version }}", - "db_sync_pr":"${{ github.event.inputs.db_sync_pr }}", - "db_sync_branch":"${{ github.event.inputs.db_sync_branch }}", "db_sync_version":"${{ github.event.inputs.db_sync_version }}", "db_sync_start_arguments":"${{ github.event.inputs.db_sync_start_arguments }}", "environment":"${{ github.event.inputs.environment }}", diff --git a/db_sync_tests/scripts/db-sync-start.sh b/db_sync_tests/scripts/db-sync-start.sh index 43be6648..e40601e1 100755 --- a/db_sync_tests/scripts/db-sync-start.sh +++ b/db_sync_tests/scripts/db-sync-start.sh @@ -7,7 +7,7 @@ export PGPASSFILE=config/pgpass-$ENVIRONMENT if [[ $FIRST_START == "True" ]]; then cd config - wget -O $ENVIRONMENT-db-config.json https://book.world.dev.cardano.org/environments/$ENVIRONMENT/db-sync-config.json + wget -O $ENVIRONMENT-db-config.json https://book.play.dev.cardano.org/environments/$ENVIRONMENT/db-sync-config.json sed -i "s/NodeConfigFile.*/NodeConfigFile\": \"..\/..\/cardano-node\/$ENVIRONMENT-config.json\",/g" "$ENVIRONMENT-db-config.json" cd .. fi diff --git a/db_sync_tests/tests/__init__.py b/db_sync_tests/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/db_sync_tests/tests/full_sync_from_clean_state.py b/db_sync_tests/tests/full_sync_from_clean_state.py index a88fd1df..e6e35a68 100644 --- a/db_sync_tests/tests/full_sync_from_clean_state.py +++ b/db_sync_tests/tests/full_sync_from_clean_state.py @@ -1,6 +1,7 @@ import argparse import json import os +import subprocess from collections import OrderedDict from pathlib import Path import sys @@ -8,7 +9,7 @@ sys.path.append(os.getcwd()) -from utils.utils import seconds_to_time, get_no_of_cpu_cores, get_current_date_time, \ +from db_sync_tests.utils.utils import seconds_to_time, get_no_of_cpu_cores, get_current_date_time, \ get_os_type, get_total_ram_in_GB, upload_artifact, clone_repo, zip_file, execute_command, \ print_file, stop_process, write_data_as_json_to_file, get_node_config_files, \ get_node_version, get_db_sync_version, start_node_in_cwd, wait_for_db_to_sync, \ @@ -24,7 +25,7 @@ NODE_ARCHIVE, DB_SYNC_ARCHIVE, SYNC_DATA_ARCHIVE, EXPECTED_DB_SCHEMA, EXPECTED_DB_INDEXES, \ ENVIRONMENT \ -from utils.aws_db_utils import get_identifier_last_run_from_table, \ +from db_sync_tests.utils.aws_db_utils import get_identifier_last_run_from_table, \ add_bulk_rows_into_db, add_single_row_into_db @@ -168,10 +169,11 @@ def main(): print(f"DB sync version: {db_sync_version_from_gh_action}") # cardano-node setup - NODE_DIR=clone_repo('cardano-node', node_branch) + NODE_DIR=clone_repo('cardano-node', node_version_from_gh_action) os.chdir(NODE_DIR) execute_command("nix build -v .#cardano-node -o cardano-node-bin") - execute_command("nix build -v .#cardano-cli -o cardano-cli-bin") + execute_command("nix build -v --debug .#cardano-cli -o cardano-cli-bin") + print("--- Node setup") copy_node_executables(build_method="nix") get_node_config_files(env) @@ -184,7 +186,7 @@ def main(): # cardano-db sync setup os.chdir(ROOT_TEST_PATH) - DB_SYNC_DIR = clone_repo('cardano-db-sync', db_branch) + DB_SYNC_DIR = clone_repo('cardano-db-sync', db_sync_version_from_gh_action.rstrip()) os.chdir(DB_SYNC_DIR) print("--- Db sync setup") setup_postgres() # To login use: psql -h /path/to/postgres -p 5432 -e postgres diff --git a/db_sync_tests/tests/snapshot_creation.py b/db_sync_tests/tests/snapshot_creation.py index e7b4ee0a..68e2dbdb 100644 --- a/db_sync_tests/tests/snapshot_creation.py +++ b/db_sync_tests/tests/snapshot_creation.py @@ -80,7 +80,7 @@ def main(): print(f"Stage 2 result: {stage_2_result}") end_snapshot_creation = time.perf_counter() - snapshot_file = stage_2_result.split(" ")[1] + snapshot_file = stage_2_result set_buildkite_meta_data("snapshot_file", snapshot_file) print(f"Snapshot file name: {snapshot_file}") diff --git a/db_sync_tests/utils/__init__.py b/db_sync_tests/utils/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/db_sync_tests/utils/utils.py b/db_sync_tests/utils/utils.py index 7d7af234..f2454412 100755 --- a/db_sync_tests/utils/utils.py +++ b/db_sync_tests/utils/utils.py @@ -27,14 +27,14 @@ ONE_MINUTE = 60 ROOT_TEST_PATH = Path.cwd() -ENVIRONMENT = os.environ['environment'] +ENVIRONMENT = os.environ.get('environment', None) -NODE_PR = os.environ['node_pr'] -NODE_BRANCH = os.environ['node_branch'] -NODE_VERSION = os.environ['node_version'] +NODE_PR = os.environ.get('node_pr', None) +NODE_BRANCH = os.environ.get('node_branch', None) +NODE_VERSION = os.environ.get('node_version', None) -DB_SYNC_BRANCH = os.environ['db_sync_branch'] -DB_SYNC_VERSION = os.environ['db_sync_version'] +DB_SYNC_BRANCH = os.environ.get('db_sync_branch', None) +DB_SYNC_VERSION = os.environ.get('db_sync_version', None) POSTGRES_DIR = ROOT_TEST_PATH.parents[0] POSTGRES_USER = subprocess.run(['whoami'], stdout=subprocess.PIPE).stdout.decode('utf-8').strip() @@ -234,7 +234,9 @@ def print_file(file, number_of_lines = 0): if index < number_of_lines + 1: print(line, flush=True) else: break - else: print(contents, flush=True) + else: + print(contents, flush=True) + return contents def get_process_info(proc_name): @@ -480,20 +482,36 @@ def get_node_archive_url(node_pr): def get_node_config_files(env): - base_url = "https://book.world.dev.cardano.org/environments/" - urllib.request.urlretrieve(base_url + env + "/config.json", env + "-config.json",) - urllib.request.urlretrieve(base_url + env + "/byron-genesis.json", "byron-genesis.json",) - urllib.request.urlretrieve(base_url + env + "/shelley-genesis.json", "shelley-genesis.json",) - urllib.request.urlretrieve(base_url + env + "/alonzo-genesis.json", "alonzo-genesis.json",) - urllib.request.urlretrieve(base_url + env + "/conway-genesis.json", "conway-genesis.json",) - urllib.request.urlretrieve(base_url + env + "/topology.json", env + "-topology.json",) + base_url = "https://book.play.dev.cardano.org/environments/" + filenames = [ + (base_url + env + "/config.json", f"{env}-config.json"), + (base_url + env + "/byron-genesis.json", "byron-genesis.json"), + (base_url + env + "/shelley-genesis.json", "shelley-genesis.json"), + (base_url + env + "/alonzo-genesis.json", "alonzo-genesis.json"), + (base_url + env + "/conway-genesis.json", "conway-genesis.json"), + (base_url + env + "/topology.json", f"{env}-topology.json") + ] + for url, filename in filenames: + try: + urllib.request.urlretrieve(url, filename) + # Check if the file exists after download + if not os.path.isfile(filename): + raise FileNotFoundError(f"Downloaded file '{filename}' does not exist.") + except Exception as e: + print(f"Error downloading {url}: {e}") + exit(1) def copy_node_executables(build_method="nix"): current_directory = os.getcwd() os.chdir(ROOT_TEST_PATH) node_dir = Path.cwd() / 'cardano-node' + node_bin_dir = node_dir / "cardano-node-bin/" os.chdir(node_dir) + print(f"current_directory: {os.getcwd()}") + + result = subprocess.run(['nix', '--version'], stdout=subprocess.PIPE, text=True, check=True) + print(f"Nix version: {result.stdout.strip()}") if build_method == "nix": node_binary_location = "cardano-node-bin/bin/cardano-node" @@ -595,7 +613,7 @@ def set_node_socket_path_env_var_in_cwd(): def get_node_tip(env, timeout_minutes=20): current_directory = os.getcwd() os.chdir(ROOT_TEST_PATH / "cardano-node") - cmd = "./_cardano-cli query tip " + get_testnet_value(env) + cmd = "./_cardano-cli latest query tip " + get_testnet_value(env) for i in range(timeout_minutes): try: @@ -690,7 +708,7 @@ def start_node_in_cwd(env): p = subprocess.Popen(cmd.split(" "), stdout=logfile, stderr=logfile) print("waiting for db folder to be created") counter = 0 - timeout_counter = 25 * ONE_MINUTE + timeout_counter = 1 * ONE_MINUTE node_db_dir = current_directory + "/db" while not os.path.isdir(node_db_dir): time.sleep(1) @@ -698,6 +716,8 @@ def start_node_in_cwd(env): if counter > timeout_counter: print( f"ERROR: waited {timeout_counter} seconds and the DB folder was not created yet") + node_startup_error = print_file(NODE_LOG) + print_color_log(sh_colors.FAIL, f"Error: {node_startup_error}") exit(1) print(f"DB folder was created after {counter} seconds") @@ -952,25 +972,35 @@ def create_db_sync_snapshot_stage_1(env): ) def create_db_sync_snapshot_stage_2(stage_2_cmd, env): - os.chdir(ROOT_TEST_PATH) - os.chdir(Path.cwd() / 'cardano-db-sync') + os.chdir(ROOT_TEST_PATH / 'cardano-db-sync') export_env_var("PGPASSFILE", f"config/pgpass-{env}") - cmd = f"{stage_2_cmd}" - p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding='utf-8') - try: - outs, errs = p.communicate(timeout=43200) # 12 hours - print(f"Snapshot Creation - Stage 2 result: {outs}") - if errs: - print(f"Warnings or Errors: {errs}") - return outs.split("\n")[3].lstrip() - except subprocess.CalledProcessError as e: - raise RuntimeError( - "command '{}' return with error (code {}): {}".format( - e.cmd, e.returncode, " ".join(str(e.output).split()) - ) + # Running the command and capturing output and error + result = subprocess.run( + stage_2_cmd, + shell=True, + capture_output=True, + text=True, + timeout=43200 # 12 hours + ) + + print(f"Snapshot Creation - Stage 2 Output:\n{result.stdout}") + if result.stderr: + print(f"Warnings or Errors:\n{result.stderr}") + # Extracting the snapshot path from the last line mentioning 'Created' + snapshot_line = next( + (line for line in result.stdout.splitlines() if line.startswith("Created")), + "Snapshot creation output not found." ) + snapshot_path = snapshot_line.split()[ + 1] if "Created" in snapshot_line else "Snapshot path unknown" + + return snapshot_path + except subprocess.TimeoutExpired: + raise RuntimeError("Snapshot creation timed out.") + except subprocess.CalledProcessError as e: + raise RuntimeError(f"Command '{e.cmd}' failed with error: {e.stderr}") def get_db_sync_tip(env): @@ -1114,7 +1144,7 @@ def start_db_sync(env, start_args="", first_start="True"): export_env_var("LOG_FILEPATH", DB_SYNC_LOG) try: - cmd = "./scripts/db-sync-start.sh" + cmd = "./db_sync_tests/scripts/db-sync-start.sh" p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) os.chdir(current_directory) except subprocess.CalledProcessError as e: @@ -1185,7 +1215,7 @@ def setup_postgres(pg_dir=POSTGRES_DIR, pg_user=POSTGRES_USER, pg_port='5432'): export_env_var("PGPORT", pg_port) try: - cmd = ["./scripts/postgres-start.sh", f"{pg_dir}", "-k"] + cmd = ["./db_sync_tests/scripts/postgres-start.sh", f"{pg_dir}", "-k"] output = ( subprocess.check_output(cmd, stderr=subprocess.STDOUT) .decode("utf-8") diff --git a/flake.lock b/flake.lock new file mode 100644 index 00000000..0e9ed281 --- /dev/null +++ b/flake.lock @@ -0,0 +1,2386 @@ +{ + "nodes": { + "CHaP": { + "flake": false, + "locked": { + "lastModified": 1666067814, + "narHash": "sha256-2TbQs7HSZRY5G3/jDggaY8ahxY8V5DhQ/+Xg1B9csTY=", + "owner": "input-output-hk", + "repo": "cardano-haskell-packages", + "rev": "e79a09bf6018fa0e5c3196f0ac01e58224caf73d", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "repo", + "repo": "cardano-haskell-packages", + "type": "github" + } + }, + "HTTP": { + "flake": false, + "locked": { + "lastModified": 1451647621, + "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=", + "owner": "phadej", + "repo": "HTTP", + "rev": "9bc0996d412fef1787449d841277ef663ad9a915", + "type": "github" + }, + "original": { + "owner": "phadej", + "repo": "HTTP", + "type": "github" + } + }, + "HTTP_2": { + "flake": false, + "locked": { + "lastModified": 1451647621, + "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=", + "owner": "phadej", + "repo": "HTTP", + "rev": "9bc0996d412fef1787449d841277ef663ad9a915", + "type": "github" + }, + "original": { + "owner": "phadej", + "repo": "HTTP", + "type": "github" + } + }, + "HTTP_3": { + "flake": false, + "locked": { + "lastModified": 1451647621, + "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=", + "owner": "phadej", + "repo": "HTTP", + "rev": "9bc0996d412fef1787449d841277ef663ad9a915", + "type": "github" + }, + "original": { + "owner": "phadej", + "repo": "HTTP", + "type": "github" + } + }, + "HTTP_4": { + "flake": false, + "locked": { + "lastModified": 1451647621, + "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=", + "owner": "phadej", + "repo": "HTTP", + "rev": "9bc0996d412fef1787449d841277ef663ad9a915", + "type": "github" + }, + "original": { + "owner": "phadej", + "repo": "HTTP", + "type": "github" + } + }, + "HTTP_5": { + "flake": false, + "locked": { + "lastModified": 1451647621, + "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=", + "owner": "phadej", + "repo": "HTTP", + "rev": "9bc0996d412fef1787449d841277ef663ad9a915", + "type": "github" + }, + "original": { + "owner": "phadej", + "repo": "HTTP", + "type": "github" + } + }, + "cabal-32": { + "flake": false, + "locked": { + "lastModified": 1603716527, + "narHash": "sha256-sDbrmur9Zfp4mPKohCD8IDZfXJ0Tjxpmr2R+kg5PpSY=", + "owner": "haskell", + "repo": "cabal", + "rev": "94aaa8e4720081f9c75497e2735b90f6a819b08e", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.2", + "repo": "cabal", + "type": "github" + } + }, + "cabal-32_2": { + "flake": false, + "locked": { + "lastModified": 1603716527, + "narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=", + "owner": "haskell", + "repo": "cabal", + "rev": "48bf10787e27364730dd37a42b603cee8d6af7ee", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.2", + "repo": "cabal", + "type": "github" + } + }, + "cabal-32_3": { + "flake": false, + "locked": { + "lastModified": 1603716527, + "narHash": "sha256-sDbrmur9Zfp4mPKohCD8IDZfXJ0Tjxpmr2R+kg5PpSY=", + "owner": "haskell", + "repo": "cabal", + "rev": "94aaa8e4720081f9c75497e2735b90f6a819b08e", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.2", + "repo": "cabal", + "type": "github" + } + }, + "cabal-32_4": { + "flake": false, + "locked": { + "lastModified": 1603716527, + "narHash": "sha256-sDbrmur9Zfp4mPKohCD8IDZfXJ0Tjxpmr2R+kg5PpSY=", + "owner": "haskell", + "repo": "cabal", + "rev": "94aaa8e4720081f9c75497e2735b90f6a819b08e", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.2", + "repo": "cabal", + "type": "github" + } + }, + "cabal-32_5": { + "flake": false, + "locked": { + "lastModified": 1603716527, + "narHash": "sha256-sDbrmur9Zfp4mPKohCD8IDZfXJ0Tjxpmr2R+kg5PpSY=", + "owner": "haskell", + "repo": "cabal", + "rev": "94aaa8e4720081f9c75497e2735b90f6a819b08e", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.2", + "repo": "cabal", + "type": "github" + } + }, + "cabal-34": { + "flake": false, + "locked": { + "lastModified": 1622475795, + "narHash": "sha256-chwTL304Cav+7p38d9mcb+egABWmxo2Aq+xgVBgEb/U=", + "owner": "haskell", + "repo": "cabal", + "rev": "b086c1995cdd616fc8d91f46a21e905cc50a1049", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.4", + "repo": "cabal", + "type": "github" + } + }, + "cabal-34_2": { + "flake": false, + "locked": { + "lastModified": 1640353650, + "narHash": "sha256-N1t6M3/wqj90AEdRkeC8i923gQYUpzSr8b40qVOZ1Rk=", + "owner": "haskell", + "repo": "cabal", + "rev": "942639c18c0cd8ec53e0a6f8d120091af35312cd", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.4", + "repo": "cabal", + "type": "github" + } + }, + "cabal-34_3": { + "flake": false, + "locked": { + "lastModified": 1622475795, + "narHash": "sha256-chwTL304Cav+7p38d9mcb+egABWmxo2Aq+xgVBgEb/U=", + "owner": "haskell", + "repo": "cabal", + "rev": "b086c1995cdd616fc8d91f46a21e905cc50a1049", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.4", + "repo": "cabal", + "type": "github" + } + }, + "cabal-34_4": { + "flake": false, + "locked": { + "lastModified": 1622475795, + "narHash": "sha256-chwTL304Cav+7p38d9mcb+egABWmxo2Aq+xgVBgEb/U=", + "owner": "haskell", + "repo": "cabal", + "rev": "b086c1995cdd616fc8d91f46a21e905cc50a1049", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.4", + "repo": "cabal", + "type": "github" + } + }, + "cabal-34_5": { + "flake": false, + "locked": { + "lastModified": 1622475795, + "narHash": "sha256-chwTL304Cav+7p38d9mcb+egABWmxo2Aq+xgVBgEb/U=", + "owner": "haskell", + "repo": "cabal", + "rev": "b086c1995cdd616fc8d91f46a21e905cc50a1049", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.4", + "repo": "cabal", + "type": "github" + } + }, + "cabal-36": { + "flake": false, + "locked": { + "lastModified": 1640163203, + "narHash": "sha256-TwDWP2CffT0j40W6zr0J1Qbu+oh3nsF1lUx9446qxZM=", + "owner": "haskell", + "repo": "cabal", + "rev": "ecf418050c1821f25e2e218f1be94c31e0465df1", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.6", + "repo": "cabal", + "type": "github" + } + }, + "cabal-36_2": { + "flake": false, + "locked": { + "lastModified": 1641652457, + "narHash": "sha256-BlFPKP4C4HRUJeAbdembX1Rms1LD380q9s0qVDeoAak=", + "owner": "haskell", + "repo": "cabal", + "rev": "f27667f8ec360c475027dcaee0138c937477b070", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.6", + "repo": "cabal", + "type": "github" + } + }, + "cabal-36_3": { + "flake": false, + "locked": { + "lastModified": 1640163203, + "narHash": "sha256-TwDWP2CffT0j40W6zr0J1Qbu+oh3nsF1lUx9446qxZM=", + "owner": "haskell", + "repo": "cabal", + "rev": "ecf418050c1821f25e2e218f1be94c31e0465df1", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.6", + "repo": "cabal", + "type": "github" + } + }, + "cabal-36_4": { + "flake": false, + "locked": { + "lastModified": 1640163203, + "narHash": "sha256-TwDWP2CffT0j40W6zr0J1Qbu+oh3nsF1lUx9446qxZM=", + "owner": "haskell", + "repo": "cabal", + "rev": "ecf418050c1821f25e2e218f1be94c31e0465df1", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.6", + "repo": "cabal", + "type": "github" + } + }, + "cardano-mainnet-mirror": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1642701714, + "narHash": "sha256-SR3luE+ePX6U193EKE/KSEuVzWAW0YsyPYDC4hOvALs=", + "owner": "input-output-hk", + "repo": "cardano-mainnet-mirror", + "rev": "819488be9eabbba6aaa7c931559bc584d8071e3d", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "nix", + "repo": "cardano-mainnet-mirror", + "type": "github" + } + }, + "cardano-mainnet-mirror_2": { + "inputs": { + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1642701714, + "narHash": "sha256-SR3luE+ePX6U193EKE/KSEuVzWAW0YsyPYDC4hOvALs=", + "owner": "input-output-hk", + "repo": "cardano-mainnet-mirror", + "rev": "819488be9eabbba6aaa7c931559bc584d8071e3d", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "nix", + "repo": "cardano-mainnet-mirror", + "type": "github" + } + }, + "cardano-mainnet-mirror_3": { + "inputs": { + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1642701714, + "narHash": "sha256-SR3luE+ePX6U193EKE/KSEuVzWAW0YsyPYDC4hOvALs=", + "owner": "input-output-hk", + "repo": "cardano-mainnet-mirror", + "rev": "819488be9eabbba6aaa7c931559bc584d8071e3d", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "nix", + "repo": "cardano-mainnet-mirror", + "type": "github" + } + }, + "cardano-node": { + "inputs": { + "CHaP": "CHaP", + "cardano-mainnet-mirror": "cardano-mainnet-mirror", + "cardano-node-workbench": "cardano-node-workbench", + "customConfig": "customConfig_2", + "flake-compat": "flake-compat_2", + "hackageNix": "hackageNix", + "haskellNix": "haskellNix_2", + "hostNixpkgs": [ + "cardano-node", + "nixpkgs" + ], + "iohkNix": "iohkNix_2", + "nixTools": "nixTools", + "nixpkgs": [ + "cardano-node", + "haskellNix", + "nixpkgs-unstable" + ], + "node-measured": [ + "cardano-node" + ], + "node-process": "node-process", + "node-snapshot": "node-snapshot", + "plutus-apps": "plutus-apps_2", + "utils": "utils_5" + }, + "locked": { + "lastModified": 1666596694, + "narHash": "sha256-i+WqQwXV+qg1svHrIJckvrBmLY0BGnWisbQppW+w5Zg=", + "owner": "input-output-hk", + "repo": "cardano-node", + "rev": "26344329ecb9762f82cf4430fd3a33684a6468e0", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-node", + "type": "github" + } + }, + "cardano-node-snapshot": { + "inputs": { + "customConfig": "customConfig_4", + "haskellNix": "haskellNix_4", + "iohkNix": "iohkNix_4", + "membench": "membench_3", + "nixpkgs": [ + "cardano-node", + "node-snapshot", + "membench", + "cardano-node-snapshot", + "haskellNix", + "nixpkgs-2105" + ], + "utils": "utils_2" + }, + "locked": { + "lastModified": 1644954571, + "narHash": "sha256-c6MM1mQoS/AnTIrwaRmITK4L4i9lLNtkjOUHiseBtUs=", + "owner": "input-output-hk", + "repo": "cardano-node", + "rev": "30d62b86e7b98da28ef8ad9412e4e00a1ba1231d", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-node", + "rev": "30d62b86e7b98da28ef8ad9412e4e00a1ba1231d", + "type": "github" + } + }, + "cardano-node-workbench": { + "inputs": { + "cardano-node-workbench": "cardano-node-workbench_2", + "customConfig": "customConfig", + "flake-compat": "flake-compat", + "haskellNix": "haskellNix", + "hostNixpkgs": [ + "cardano-node", + "cardano-node-workbench", + "nixpkgs" + ], + "iohkNix": "iohkNix", + "membench": "membench", + "nixpkgs": [ + "cardano-node", + "cardano-node-workbench", + "haskellNix", + "nixpkgs-2105" + ], + "plutus-apps": "plutus-apps", + "utils": "utils" + }, + "locked": { + "lastModified": 1647983004, + "narHash": "sha256-29kzatjbzREnXoT6Yh89OC82C5qI8eCVZhm4OeSjrgw=", + "owner": "input-output-hk", + "repo": "cardano-node", + "rev": "ed9932c52aaa535b71f72a5b4cc0cecb3344a5a3", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-node", + "rev": "ed9932c52aaa535b71f72a5b4cc0cecb3344a5a3", + "type": "github" + } + }, + "cardano-node-workbench_2": { + "flake": false, + "locked": { + "lastModified": 1647605822, + "narHash": "sha256-bhgSsshidZ7dOPpXdG88pIqhy5VgXWi3LXtR78oDiEo=", + "owner": "input-output-hk", + "repo": "cardano-node", + "rev": "44ac30fb04d02d41ba005ca5228db9b5e9b887d2", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-node", + "rev": "44ac30fb04d02d41ba005ca5228db9b5e9b887d2", + "type": "github" + } + }, + "cardano-shell": { + "flake": false, + "locked": { + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-shell", + "type": "github" + } + }, + "cardano-shell_2": { + "flake": false, + "locked": { + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-shell", + "type": "github" + } + }, + "cardano-shell_3": { + "flake": false, + "locked": { + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-shell", + "type": "github" + } + }, + "cardano-shell_4": { + "flake": false, + "locked": { + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-shell", + "type": "github" + } + }, + "cardano-shell_5": { + "flake": false, + "locked": { + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-shell", + "type": "github" + } + }, + "customConfig": { + "locked": { + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "empty-flake", + "type": "github" + } + }, + "customConfig_2": { + "locked": { + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "empty-flake", + "type": "github" + } + }, + "customConfig_3": { + "locked": { + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "empty-flake", + "type": "github" + } + }, + "customConfig_4": { + "locked": { + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "empty-flake", + "type": "github" + } + }, + "customConfig_5": { + "locked": { + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "empty-flake", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1647532380, + "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", + "owner": "input-output-hk", + "repo": "flake-compat", + "rev": "7da118186435255a30b5ffeabba9629c344c0bec", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "fixes", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1647532380, + "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", + "owner": "input-output-hk", + "repo": "flake-compat", + "rev": "7da118186435255a30b5ffeabba9629c344c0bec", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "fixes", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "locked": { + "lastModified": 1623875721, + "narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "f7e004a55b120c02ecb6219596820fcd32ca8772", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "locked": { + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "locked": { + "lastModified": 1623875721, + "narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "f7e004a55b120c02ecb6219596820fcd32ca8772", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { + "locked": { + "lastModified": 1623875721, + "narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "f7e004a55b120c02ecb6219596820fcd32ca8772", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_5": { + "locked": { + "lastModified": 1623875721, + "narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "f7e004a55b120c02ecb6219596820fcd32ca8772", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_6": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "ghc-8.6.5-iohk": { + "flake": false, + "locked": { + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", + "type": "github" + } + }, + "ghc-8.6.5-iohk_2": { + "flake": false, + "locked": { + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", + "type": "github" + } + }, + "ghc-8.6.5-iohk_3": { + "flake": false, + "locked": { + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", + "type": "github" + } + }, + "ghc-8.6.5-iohk_4": { + "flake": false, + "locked": { + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", + "type": "github" + } + }, + "ghc-8.6.5-iohk_5": { + "flake": false, + "locked": { + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", + "type": "github" + } + }, + "hackage": { + "flake": false, + "locked": { + "lastModified": 1643073363, + "narHash": "sha256-66oSXQKEDIOSQ2uKAS9facCX/Zuh/jFgyFDtxEqN9sk=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "4ef9bd3a32316ce236164c7ebff00ebeb33236e2", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "hackageNix": { + "flake": false, + "locked": { + "lastModified": 1656898050, + "narHash": "sha256-jemAb/Wm/uT+QhV12GlyeA5euSWxYzr2HOYoK4MZps0=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "4f1dd530219ca1165f523ffb2c62213ebede4046", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "hackage_2": { + "flake": false, + "locked": { + "lastModified": 1643073363, + "narHash": "sha256-66oSXQKEDIOSQ2uKAS9facCX/Zuh/jFgyFDtxEqN9sk=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "4ef9bd3a32316ce236164c7ebff00ebeb33236e2", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "hackage_3": { + "flake": false, + "locked": { + "lastModified": 1643073363, + "narHash": "sha256-66oSXQKEDIOSQ2uKAS9facCX/Zuh/jFgyFDtxEqN9sk=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "4ef9bd3a32316ce236164c7ebff00ebeb33236e2", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "hackage_4": { + "flake": false, + "locked": { + "lastModified": 1639098768, + "narHash": "sha256-DZ4sG8FeDxWvBLixrj0jELXjtebZ0SCCPmQW43HNzIE=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "c7b123af6b0b9b364cab03363504d42dca16a4b5", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "haskellNix": { + "inputs": { + "HTTP": "HTTP", + "cabal-32": "cabal-32", + "cabal-34": "cabal-34", + "cabal-36": "cabal-36", + "cardano-shell": "cardano-shell", + "flake-utils": "flake-utils", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk", + "hackage": "hackage", + "hpc-coveralls": "hpc-coveralls", + "nix-tools": "nix-tools", + "nixpkgs": [ + "cardano-node", + "cardano-node-workbench", + "nixpkgs" + ], + "nixpkgs-2003": "nixpkgs-2003", + "nixpkgs-2105": "nixpkgs-2105", + "nixpkgs-2111": "nixpkgs-2111", + "nixpkgs-unstable": "nixpkgs-unstable", + "old-ghc-nix": "old-ghc-nix", + "stackage": "stackage" + }, + "locked": { + "lastModified": 1643073543, + "narHash": "sha256-g2l/KDWzMRTFRugNVcx3CPZeyA5BNcH9/zDiqFpprB4=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "14f740c7c8f535581c30b1697018e389680e24cb", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "haskellNix_2": { + "inputs": { + "HTTP": "HTTP_2", + "cabal-32": "cabal-32_2", + "cabal-34": "cabal-34_2", + "cabal-36": "cabal-36_2", + "cardano-shell": "cardano-shell_2", + "flake-utils": "flake-utils_2", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_2", + "hackage": [ + "cardano-node", + "hackageNix" + ], + "hpc-coveralls": "hpc-coveralls_2", + "hydra": "hydra", + "nix-tools": "nix-tools_2", + "nixpkgs": [ + "cardano-node", + "nixpkgs" + ], + "nixpkgs-2003": "nixpkgs-2003_2", + "nixpkgs-2105": "nixpkgs-2105_2", + "nixpkgs-2111": "nixpkgs-2111_2", + "nixpkgs-unstable": "nixpkgs-unstable_2", + "old-ghc-nix": "old-ghc-nix_2", + "stackage": "stackage_2" + }, + "locked": { + "lastModified": 1656898207, + "narHash": "sha256-hshNfCnrmhIvM4T+O0/JRZymsHmq9YiIJ4bpzNVTD98=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "21230476adfef5fa77fb19fbda396f22006a02bc", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "haskellNix_3": { + "inputs": { + "HTTP": "HTTP_3", + "cabal-32": "cabal-32_3", + "cabal-34": "cabal-34_3", + "cabal-36": "cabal-36_3", + "cardano-shell": "cardano-shell_3", + "flake-utils": "flake-utils_3", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_3", + "hackage": "hackage_2", + "hpc-coveralls": "hpc-coveralls_3", + "nix-tools": "nix-tools_3", + "nixpkgs": [ + "cardano-node", + "node-snapshot", + "nixpkgs" + ], + "nixpkgs-2003": "nixpkgs-2003_3", + "nixpkgs-2105": "nixpkgs-2105_3", + "nixpkgs-2111": "nixpkgs-2111_3", + "nixpkgs-unstable": "nixpkgs-unstable_3", + "old-ghc-nix": "old-ghc-nix_3", + "stackage": "stackage_3" + }, + "locked": { + "lastModified": 1643073543, + "narHash": "sha256-g2l/KDWzMRTFRugNVcx3CPZeyA5BNcH9/zDiqFpprB4=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "14f740c7c8f535581c30b1697018e389680e24cb", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "haskellNix_4": { + "inputs": { + "HTTP": "HTTP_4", + "cabal-32": "cabal-32_4", + "cabal-34": "cabal-34_4", + "cabal-36": "cabal-36_4", + "cardano-shell": "cardano-shell_4", + "flake-utils": "flake-utils_4", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_4", + "hackage": "hackage_3", + "hpc-coveralls": "hpc-coveralls_4", + "nix-tools": "nix-tools_4", + "nixpkgs": [ + "cardano-node", + "node-snapshot", + "membench", + "cardano-node-snapshot", + "nixpkgs" + ], + "nixpkgs-2003": "nixpkgs-2003_4", + "nixpkgs-2105": "nixpkgs-2105_4", + "nixpkgs-2111": "nixpkgs-2111_4", + "nixpkgs-unstable": "nixpkgs-unstable_4", + "old-ghc-nix": "old-ghc-nix_4", + "stackage": "stackage_4" + }, + "locked": { + "lastModified": 1643073543, + "narHash": "sha256-g2l/KDWzMRTFRugNVcx3CPZeyA5BNcH9/zDiqFpprB4=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "14f740c7c8f535581c30b1697018e389680e24cb", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "haskellNix_5": { + "inputs": { + "HTTP": "HTTP_5", + "cabal-32": "cabal-32_5", + "cabal-34": "cabal-34_5", + "cardano-shell": "cardano-shell_5", + "flake-utils": "flake-utils_5", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_5", + "hackage": "hackage_4", + "hpc-coveralls": "hpc-coveralls_5", + "nix-tools": "nix-tools_5", + "nixpkgs": [ + "cardano-node", + "node-snapshot", + "plutus-example", + "nixpkgs" + ], + "nixpkgs-2003": "nixpkgs-2003_5", + "nixpkgs-2105": "nixpkgs-2105_5", + "nixpkgs-2111": "nixpkgs-2111_5", + "nixpkgs-unstable": "nixpkgs-unstable_5", + "old-ghc-nix": "old-ghc-nix_5", + "stackage": "stackage_5" + }, + "locked": { + "lastModified": 1639098904, + "narHash": "sha256-7VrCNEaKGLm4pTOS11dt1dRL2033oqrNCfal0uONsqA=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "b18c6ce0867fee77f12ecf41dc6c67f7a59d9826", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "hpc-coveralls": { + "flake": false, + "locked": { + "lastModified": 1607498076, + "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", + "owner": "sevanspowell", + "repo": "hpc-coveralls", + "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "type": "github" + }, + "original": { + "owner": "sevanspowell", + "repo": "hpc-coveralls", + "type": "github" + } + }, + "hpc-coveralls_2": { + "flake": false, + "locked": { + "lastModified": 1607498076, + "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", + "owner": "sevanspowell", + "repo": "hpc-coveralls", + "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "type": "github" + }, + "original": { + "owner": "sevanspowell", + "repo": "hpc-coveralls", + "type": "github" + } + }, + "hpc-coveralls_3": { + "flake": false, + "locked": { + "lastModified": 1607498076, + "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", + "owner": "sevanspowell", + "repo": "hpc-coveralls", + "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "type": "github" + }, + "original": { + "owner": "sevanspowell", + "repo": "hpc-coveralls", + "type": "github" + } + }, + "hpc-coveralls_4": { + "flake": false, + "locked": { + "lastModified": 1607498076, + "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", + "owner": "sevanspowell", + "repo": "hpc-coveralls", + "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "type": "github" + }, + "original": { + "owner": "sevanspowell", + "repo": "hpc-coveralls", + "type": "github" + } + }, + "hpc-coveralls_5": { + "flake": false, + "locked": { + "lastModified": 1607498076, + "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", + "owner": "sevanspowell", + "repo": "hpc-coveralls", + "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "type": "github" + }, + "original": { + "owner": "sevanspowell", + "repo": "hpc-coveralls", + "type": "github" + } + }, + "hydra": { + "inputs": { + "nix": "nix", + "nixpkgs": [ + "cardano-node", + "haskellNix", + "hydra", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1646878427, + "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", + "owner": "NixOS", + "repo": "hydra", + "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, + "iohkNix": { + "inputs": { + "nixpkgs": [ + "cardano-node", + "cardano-node-workbench", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1645693195, + "narHash": "sha256-UDemE2MFEi/L8Xmwi1/FuKU9ka3QqDye6k7rVW6ryeE=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "29c9a3b6704b5c0df3bb4a3e65240749883c50a0", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohkNix_2": { + "inputs": { + "nixpkgs": [ + "cardano-node", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1653579289, + "narHash": "sha256-wveDdPsgB/3nAGAdFaxrcgLEpdi0aJ5kEVNtI+YqVfo=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "edb2d2df2ebe42bbdf03a0711115cf6213c9d366", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohkNix_3": { + "inputs": { + "nixpkgs": [ + "cardano-node", + "node-snapshot", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1631778944, + "narHash": "sha256-N5eCcUYtZ5kUOl/JJGjx6ZzhA3uIn1itDRTiRV+3jLw=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "db2c75a09c696271194bb3ef25ec8e9839b594b7", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohkNix_4": { + "inputs": { + "nixpkgs": [ + "cardano-node", + "node-snapshot", + "membench", + "cardano-node-snapshot", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1631778944, + "narHash": "sha256-N5eCcUYtZ5kUOl/JJGjx6ZzhA3uIn1itDRTiRV+3jLw=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "db2c75a09c696271194bb3ef25ec8e9839b594b7", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohkNix_5": { + "inputs": { + "nixpkgs": [ + "cardano-node", + "node-snapshot", + "plutus-example", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1633964277, + "narHash": "sha256-7G/BK514WiMRr90EswNBthe8SmH9tjPaTBba/RW/VA8=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "1e51437aac8a0e49663cb21e781f34163c81ebfb", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "lowdown-src": { + "flake": false, + "locked": { + "lastModified": 1633514407, + "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", + "owner": "kristapsdz", + "repo": "lowdown", + "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "type": "github" + }, + "original": { + "owner": "kristapsdz", + "repo": "lowdown", + "type": "github" + } + }, + "membench": { + "locked": { + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-memory-benchmark", + "type": "github" + } + }, + "membench_2": { + "inputs": { + "cardano-mainnet-mirror": "cardano-mainnet-mirror_2", + "cardano-node-measured": [ + "cardano-node", + "node-snapshot" + ], + "cardano-node-process": [ + "cardano-node", + "node-snapshot" + ], + "cardano-node-snapshot": "cardano-node-snapshot", + "nixpkgs": [ + "cardano-node", + "node-snapshot", + "nixpkgs" + ], + "ouroboros-network": "ouroboros-network_2" + }, + "locked": { + "lastModified": 1645070579, + "narHash": "sha256-AxL6tCOnzYnE6OquoFzj+X1bLDr1PQx3d8/vXm+rbfA=", + "owner": "input-output-hk", + "repo": "cardano-memory-benchmark", + "rev": "65643e000186de1335e24ec89159db8ba85e1c1a", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-memory-benchmark", + "type": "github" + } + }, + "membench_3": { + "inputs": { + "cardano-mainnet-mirror": "cardano-mainnet-mirror_3", + "cardano-node-measured": [ + "cardano-node", + "node-snapshot", + "membench", + "cardano-node-snapshot" + ], + "cardano-node-process": [ + "cardano-node", + "node-snapshot", + "membench", + "cardano-node-snapshot" + ], + "cardano-node-snapshot": [ + "cardano-node", + "node-snapshot", + "membench", + "cardano-node-snapshot" + ], + "nixpkgs": [ + "cardano-node", + "node-snapshot", + "membench", + "cardano-node-snapshot", + "nixpkgs" + ], + "ouroboros-network": "ouroboros-network" + }, + "locked": { + "lastModified": 1644547122, + "narHash": "sha256-8nWK+ScMACvRQLbA27gwXNoZver+Wx/cF7V37044koY=", + "owner": "input-output-hk", + "repo": "cardano-memory-benchmark", + "rev": "9d8ff4b9394de0421ee95caa511d01163de88b77", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-memory-benchmark", + "type": "github" + } + }, + "nix": { + "inputs": { + "lowdown-src": "lowdown-src", + "nixpkgs": "nixpkgs_2", + "nixpkgs-regression": "nixpkgs-regression" + }, + "locked": { + "lastModified": 1643066034, + "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", + "owner": "NixOS", + "repo": "nix", + "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "2.6.0", + "repo": "nix", + "type": "github" + } + }, + "nix-tools": { + "flake": false, + "locked": { + "lastModified": 1636018067, + "narHash": "sha256-ng306fkuwr6V/malWtt3979iAC4yMVDDH2ViwYB6sQE=", + "owner": "input-output-hk", + "repo": "nix-tools", + "rev": "ed5bd7215292deba55d6ab7a4e8c21f8b1564dda", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "nix-tools", + "type": "github" + } + }, + "nix-tools_2": { + "flake": false, + "locked": { + "lastModified": 1649424170, + "narHash": "sha256-XgKXWispvv5RCvZzPb+p7e6Hy3LMuRjafKMl7kXzxGw=", + "owner": "input-output-hk", + "repo": "nix-tools", + "rev": "e109c94016e3b6e0db7ed413c793e2d4bdb24aa7", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "nix-tools", + "type": "github" + } + }, + "nix-tools_3": { + "flake": false, + "locked": { + "lastModified": 1636018067, + "narHash": "sha256-ng306fkuwr6V/malWtt3979iAC4yMVDDH2ViwYB6sQE=", + "owner": "input-output-hk", + "repo": "nix-tools", + "rev": "ed5bd7215292deba55d6ab7a4e8c21f8b1564dda", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "nix-tools", + "type": "github" + } + }, + "nix-tools_4": { + "flake": false, + "locked": { + "lastModified": 1636018067, + "narHash": "sha256-ng306fkuwr6V/malWtt3979iAC4yMVDDH2ViwYB6sQE=", + "owner": "input-output-hk", + "repo": "nix-tools", + "rev": "ed5bd7215292deba55d6ab7a4e8c21f8b1564dda", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "nix-tools", + "type": "github" + } + }, + "nix-tools_5": { + "flake": false, + "locked": { + "lastModified": 1636018067, + "narHash": "sha256-ng306fkuwr6V/malWtt3979iAC4yMVDDH2ViwYB6sQE=", + "owner": "input-output-hk", + "repo": "nix-tools", + "rev": "ed5bd7215292deba55d6ab7a4e8c21f8b1564dda", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "nix-tools", + "type": "github" + } + }, + "nixTools": { + "flake": false, + "locked": { + "lastModified": 1649424170, + "narHash": "sha256-XgKXWispvv5RCvZzPb+p7e6Hy3LMuRjafKMl7kXzxGw=", + "owner": "input-output-hk", + "repo": "nix-tools", + "rev": "e109c94016e3b6e0db7ed413c793e2d4bdb24aa7", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "nix-tools", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1642336556, + "narHash": "sha256-QSPPbFEwy0T0DrIuSzAACkaANPQaR1lZR/nHZGz9z04=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f3d9d4bd898cca7d04af2ae4f6ef01f2219df3d6", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs-2003": { + "locked": { + "lastModified": 1620055814, + "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-20.03-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2003_2": { + "locked": { + "lastModified": 1620055814, + "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-20.03-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2003_3": { + "locked": { + "lastModified": 1620055814, + "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-20.03-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2003_4": { + "locked": { + "lastModified": 1620055814, + "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-20.03-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2003_5": { + "locked": { + "lastModified": 1620055814, + "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-20.03-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2105": { + "locked": { + "lastModified": 1640283157, + "narHash": "sha256-6Ddfop+rKE+Gl9Tjp9YIrkfoYPzb8F80ergdjcq3/MY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "dde1557825c5644c869c5efc7448dc03722a8f09", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2105_2": { + "locked": { + "lastModified": 1645296114, + "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "530a53dcbc9437363471167a5e4762c5fcfa34a1", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2105_3": { + "locked": { + "lastModified": 1640283157, + "narHash": "sha256-6Ddfop+rKE+Gl9Tjp9YIrkfoYPzb8F80ergdjcq3/MY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "dde1557825c5644c869c5efc7448dc03722a8f09", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2105_4": { + "locked": { + "lastModified": 1640283157, + "narHash": "sha256-6Ddfop+rKE+Gl9Tjp9YIrkfoYPzb8F80ergdjcq3/MY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "dde1557825c5644c869c5efc7448dc03722a8f09", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2105_5": { + "locked": { + "lastModified": 1630481079, + "narHash": "sha256-leWXLchbAbqOlLT6tju631G40SzQWPqaAXQG3zH1Imw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "110a2c9ebbf5d4a94486854f18a37a938cfacbbb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2111": { + "locked": { + "lastModified": 1640283207, + "narHash": "sha256-SCwl7ZnCfMDsuSYvwIroiAlk7n33bW8HFfY8NvKhcPA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "64c7e3388bbd9206e437713351e814366e0c3284", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2111_2": { + "locked": { + "lastModified": 1648744337, + "narHash": "sha256-bYe1dFJAXovjqiaPKrmAbSBEK5KUkgwVaZcTbSoJ7hg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0a58eebd8ec65ffdef2ce9562784123a73922052", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2111_3": { + "locked": { + "lastModified": 1640283207, + "narHash": "sha256-SCwl7ZnCfMDsuSYvwIroiAlk7n33bW8HFfY8NvKhcPA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "64c7e3388bbd9206e437713351e814366e0c3284", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2111_4": { + "locked": { + "lastModified": 1640283207, + "narHash": "sha256-SCwl7ZnCfMDsuSYvwIroiAlk7n33bW8HFfY8NvKhcPA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "64c7e3388bbd9206e437713351e814366e0c3284", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2111_5": { + "locked": { + "lastModified": 1638410074, + "narHash": "sha256-MQYI4k4XkoTzpeRjq5wl+1NShsl1CKq8MISFuZ81sWs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5b80f23502f8e902612a8c631dfce383e1c56596", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-regression": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" + } + }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1641285291, + "narHash": "sha256-KYaOBNGar3XWTxTsYPr9P6u74KAqNq0wobEC236U+0c=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0432195a4b8d68faaa7d3d4b355260a3120aeeae", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable_2": { + "locked": { + "lastModified": 1648219316, + "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable_3": { + "locked": { + "lastModified": 1641285291, + "narHash": "sha256-KYaOBNGar3XWTxTsYPr9P6u74KAqNq0wobEC236U+0c=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0432195a4b8d68faaa7d3d4b355260a3120aeeae", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable_4": { + "locked": { + "lastModified": 1641285291, + "narHash": "sha256-KYaOBNGar3XWTxTsYPr9P6u74KAqNq0wobEC236U+0c=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0432195a4b8d68faaa7d3d4b355260a3120aeeae", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable_5": { + "locked": { + "lastModified": 1635295995, + "narHash": "sha256-sGYiXjFlxTTMNb4NSkgvX+knOOTipE6gqwPUQpxNF+c=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "22a500a3f87bbce73bd8d777ef920b43a636f018", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1632864508, + "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "82891b5e2c2359d7e58d08849e4c89511ab94234", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-21.05-small", + "type": "indirect" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1642336556, + "narHash": "sha256-QSPPbFEwy0T0DrIuSzAACkaANPQaR1lZR/nHZGz9z04=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f3d9d4bd898cca7d04af2ae4f6ef01f2219df3d6", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1642336556, + "narHash": "sha256-QSPPbFEwy0T0DrIuSzAACkaANPQaR1lZR/nHZGz9z04=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f3d9d4bd898cca7d04af2ae4f6ef01f2219df3d6", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "node-process": { + "flake": false, + "locked": { + "lastModified": 1654323094, + "narHash": "sha256-zbmpZeBgUUly8QgR2mrVUN0A+0iLczufNvCCRxAo3GY=", + "owner": "input-output-hk", + "repo": "cardano-node", + "rev": "ec20745f17cb4fa8824fdf341d1412c774bc94b9", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-node", + "type": "github" + } + }, + "node-snapshot": { + "inputs": { + "customConfig": "customConfig_3", + "haskellNix": "haskellNix_3", + "iohkNix": "iohkNix_3", + "membench": "membench_2", + "nixpkgs": [ + "cardano-node", + "node-snapshot", + "haskellNix", + "nixpkgs-2105" + ], + "plutus-example": "plutus-example", + "utils": "utils_4" + }, + "locked": { + "lastModified": 1645120669, + "narHash": "sha256-2MKfGsYS5n69+pfqNHb4IH/E95ok1MD7mhEYfUpRcz4=", + "owner": "input-output-hk", + "repo": "cardano-node", + "rev": "7f00e3ea5a61609e19eeeee4af35241571efdf5c", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-node", + "rev": "7f00e3ea5a61609e19eeeee4af35241571efdf5c", + "type": "github" + } + }, + "old-ghc-nix": { + "flake": false, + "locked": { + "lastModified": 1631092763, + "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=", + "owner": "angerman", + "repo": "old-ghc-nix", + "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8", + "type": "github" + }, + "original": { + "owner": "angerman", + "ref": "master", + "repo": "old-ghc-nix", + "type": "github" + } + }, + "old-ghc-nix_2": { + "flake": false, + "locked": { + "lastModified": 1631092763, + "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=", + "owner": "angerman", + "repo": "old-ghc-nix", + "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8", + "type": "github" + }, + "original": { + "owner": "angerman", + "ref": "master", + "repo": "old-ghc-nix", + "type": "github" + } + }, + "old-ghc-nix_3": { + "flake": false, + "locked": { + "lastModified": 1631092763, + "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=", + "owner": "angerman", + "repo": "old-ghc-nix", + "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8", + "type": "github" + }, + "original": { + "owner": "angerman", + "ref": "master", + "repo": "old-ghc-nix", + "type": "github" + } + }, + "old-ghc-nix_4": { + "flake": false, + "locked": { + "lastModified": 1631092763, + "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=", + "owner": "angerman", + "repo": "old-ghc-nix", + "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8", + "type": "github" + }, + "original": { + "owner": "angerman", + "ref": "master", + "repo": "old-ghc-nix", + "type": "github" + } + }, + "old-ghc-nix_5": { + "flake": false, + "locked": { + "lastModified": 1631092763, + "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=", + "owner": "angerman", + "repo": "old-ghc-nix", + "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8", + "type": "github" + }, + "original": { + "owner": "angerman", + "ref": "master", + "repo": "old-ghc-nix", + "type": "github" + } + }, + "ouroboros-network": { + "flake": false, + "locked": { + "lastModified": 1643385024, + "narHash": "sha256-9R4Z1jBsTcEgBHxhzjCJnroEcdfMsTjf8kwg6uPue+Q=", + "owner": "input-output-hk", + "repo": "ouroboros-network", + "rev": "8e97076176d465f5f4f86d5b5596220272630649", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "ouroboros-network", + "type": "github" + } + }, + "ouroboros-network_2": { + "flake": false, + "locked": { + "lastModified": 1643385024, + "narHash": "sha256-9R4Z1jBsTcEgBHxhzjCJnroEcdfMsTjf8kwg6uPue+Q=", + "owner": "input-output-hk", + "repo": "ouroboros-network", + "rev": "8e97076176d465f5f4f86d5b5596220272630649", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "ouroboros-network", + "type": "github" + } + }, + "plutus-apps": { + "flake": false, + "locked": { + "lastModified": 1647347289, + "narHash": "sha256-dxKZ1Zvflyt6igYm39POV6X/0giKbfb4U7D1TvevQls=", + "owner": "input-output-hk", + "repo": "plutus-apps", + "rev": "2a40552f4654d695f21783c86e8ae59243ce9dfa", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "plutus-apps", + "type": "github" + } + }, + "plutus-apps_2": { + "flake": false, + "locked": { + "lastModified": 1654271253, + "narHash": "sha256-GQDPzyVtcbbESmckMvzoTEKa/UWWJH7djh1TWQjzFow=", + "owner": "input-output-hk", + "repo": "plutus-apps", + "rev": "61de89d33340279b8452a0dbb52a87111db87e82", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "plutus-apps", + "type": "github" + } + }, + "plutus-example": { + "inputs": { + "customConfig": "customConfig_5", + "haskellNix": "haskellNix_5", + "iohkNix": "iohkNix_5", + "nixpkgs": [ + "cardano-node", + "node-snapshot", + "plutus-example", + "haskellNix", + "nixpkgs-2105" + ], + "utils": "utils_3" + }, + "locked": { + "lastModified": 1640022647, + "narHash": "sha256-M+YnF7Zj/7QK2pu0T75xNVaX0eEeijtBH8yz+jEHIMM=", + "owner": "input-output-hk", + "repo": "cardano-node", + "rev": "814df2c146f5d56f8c35a681fe75e85b905aed5d", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-node", + "rev": "814df2c146f5d56f8c35a681fe75e85b905aed5d", + "type": "github" + } + }, + "root": { + "inputs": { + "cardano-node": "cardano-node", + "flake-utils": "flake-utils_6", + "nixpkgs": [ + "cardano-node", + "nixpkgs" + ] + } + }, + "stackage": { + "flake": false, + "locked": { + "lastModified": 1643073493, + "narHash": "sha256-5cPd1+i/skvJY9vJO1BhVRPcJObqkxDSywBEppDmb1U=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "48e1188855ca38f3b7e2a8dba5352767a2f0a8f7", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "stackage.nix", + "type": "github" + } + }, + "stackage_2": { + "flake": false, + "locked": { + "lastModified": 1656898145, + "narHash": "sha256-EMgMzdANg6r5gEUkMtv5ujDo2/Kx7JJXoXiDKjDVoLw=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "835a5f2d2a1acafb77add430fc8c2dd47282ef32", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "stackage.nix", + "type": "github" + } + }, + "stackage_3": { + "flake": false, + "locked": { + "lastModified": 1643073493, + "narHash": "sha256-5cPd1+i/skvJY9vJO1BhVRPcJObqkxDSywBEppDmb1U=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "48e1188855ca38f3b7e2a8dba5352767a2f0a8f7", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "stackage.nix", + "type": "github" + } + }, + "stackage_4": { + "flake": false, + "locked": { + "lastModified": 1643073493, + "narHash": "sha256-5cPd1+i/skvJY9vJO1BhVRPcJObqkxDSywBEppDmb1U=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "48e1188855ca38f3b7e2a8dba5352767a2f0a8f7", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "stackage.nix", + "type": "github" + } + }, + "stackage_5": { + "flake": false, + "locked": { + "lastModified": 1639012797, + "narHash": "sha256-hiLyBa5XFBvxD+BcYPKyYd/0dNMccxAuywFNqYtIIvs=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "9ea6ea359da91c75a71e334b25aa7dc5ddc4b2c6", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "stackage.nix", + "type": "github" + } + }, + "utils": { + "locked": { + "lastModified": 1623875721, + "narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "f7e004a55b120c02ecb6219596820fcd32ca8772", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_2": { + "locked": { + "lastModified": 1623875721, + "narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "f7e004a55b120c02ecb6219596820fcd32ca8772", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_3": { + "locked": { + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_4": { + "locked": { + "lastModified": 1623875721, + "narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "f7e004a55b120c02ecb6219596820fcd32ca8772", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_5": { + "locked": { + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} \ No newline at end of file diff --git a/flake.nix b/flake.nix new file mode 100644 index 00000000..e76cd813 --- /dev/null +++ b/flake.nix @@ -0,0 +1,96 @@ +{ + description = "Functional tests for cardano-node"; + + inputs = { + cardano-node = { + url = "github:input-output-hk/cardano-node"; + inputs = { + node-measured.follows = "cardano-node"; + membench.follows = "/"; + }; + + }; + nixpkgs.follows = "cardano-node/nixpkgs"; + flake-utils = { + url = "github:numtide/flake-utils"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { self, nixpkgs, flake-utils, cardano-node }: + flake-utils.lib.eachDefaultSystem + (system: + let + pkgs = nixpkgs.legacyPackages.${system}; + python3 = pkgs.python3.override { + packageOverrides = self: _: { + allure = self.callPackage ./nix/allure.nix { }; + pytest-allure = self.callPackage ./nix/pytest-allure.nix { }; + pytest-select = self.callPackage ./nix/pytest-select.nix {}; + cardano-clusterlib = self.callPackage ./nix/cardano-clusterlib.nix { }; + }; + }; + in + { + devShells = rec { + base = pkgs.mkShell { + nativeBuildInputs = with pkgs; [ bash nix gnugrep gnumake gnutar coreutils git xz ]; + }; + python = pkgs.mkShell { + nativeBuildInputs = with pkgs; with python39Packages; [ python39Full virtualenv pip matplotlib pandas requests xmltodict psutil GitPython pymysql postgresql_14 wget curl psycopg2 assertpy ]; + }; + postgres = pkgs.mkShell { + nativeBuildInputs = with pkgs; [ glibcLocales postgresql_14 lsof procps wget ]; + }; + default = ( + cardano-node.devShells.${system}.devops or ( + # Compat with 1.34.1: + (import (cardano-node + "/shell.nix") { + pkgs = cardano-node.legacyPackages.${system}.extend (self: prev: { + workbench-supervisord = + { useCabalRun, profileName, haskellPackages }: + self.callPackage (cardano-node + "/nix/supervisord-cluster") + { + inherit profileName useCabalRun haskellPackages; + workbench = self.callPackage (cardano-node + "/nix/workbench") { inherit useCabalRun; }; + }; + }); + }).devops + ) + ).overrideAttrs (oldAttrs: rec { + nativeBuildInputs = base.nativeBuildInputs ++ oldAttrs.nativeBuildInputs ++ [ + (python3.withPackages (ps: with ps; [ + pytest + allure + cardano-clusterlib + pytest-allure + pytest-html + pytest-order + pytest-select + pytest_xdist + pyyaml + setuptools + filelock + pydantic + pylint + mypy + hypothesis + cbor2 + requests + psycopg2 + ])) + ]; + }); + }; + }); + + # --- Flake Local Nix Configuration ---------------------------- + nixConfig = { + # This sets the flake to use the IOG nix cache. + # Nix should ask for permission before using it, + # but remove it here if you do not want it to. + extra-substituters = [ "https://cache.iog.io" ]; + extra-trusted-public-keys = [ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" ]; + allow-import-from-derivation = "true"; + }; +} \ No newline at end of file