From 1a5d9ad29ebfdf738fc784a981a0b10b7ed942c7 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Giraudeau Date: Fri, 16 Jul 2021 16:19:44 +0200 Subject: [PATCH] cardano-graphql 5 with ogmios. --- globals-defaults.nix | 4 ++-- nix/sources.json | 28 ++++++++++++++++++++-------- roles/explorer.nix | 27 ++++++++++++++++++++++----- 3 files changed, 44 insertions(+), 15 deletions(-) diff --git a/globals-defaults.nix b/globals-defaults.nix index 72fa4d246..99745c25d 100644 --- a/globals-defaults.nix +++ b/globals-defaults.nix @@ -36,13 +36,13 @@ in { explorerActiveBackends = [ "a" ]; explorer9 = { cardano-db-sync = sourcePaths.cardano-db-sync-9; - cardano-explorer-app = sourcePaths."cardano-explorer-app-1.5"; cardano-graphql = sourcePaths.cardano-graphql-4; + cardano-explorer-app = sourcePaths."cardano-explorer-app-1.5"; }; explorer10 = { cardano-db-sync = sourcePaths.cardano-db-sync-10; + cardano-graphql = sourcePaths.cardano-graphql-5; cardano-explorer-app = sourcePaths.cardano-explorer-app-next; - cardano-graphql = sourcePaths.cardano-graphql-next; }; explorerBackendsInContainers = false; diff --git a/nix/sources.json b/nix/sources.json index 15aa43bc4..612486d96 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -77,10 +77,10 @@ "homepage": "", "owner": "input-output-hk", "repo": "cardano-explorer-app", - "rev": "351acc63df0b67be3762a189f7e344dcb729ca36", - "sha256": "04z68rrishc8xr6nwrml00lhq6b8w227c0x18chgikc5gl6idb0y", + "rev": "e724b49dd6eb19f3a9cb891ec416245a24bfcc18", + "sha256": "1vjzva3y4ml74zx3rsdqqlkkhszvx69fx3zy4n82v17mh7al4475", "type": "tarball", - "url": "https://github.com/input-output-hk/cardano-explorer-app/archive/351acc63df0b67be3762a189f7e344dcb729ca36.tar.gz", + "url": "https://github.com/input-output-hk/cardano-explorer-app/archive/e724b49dd6eb19f3a9cb891ec416245a24bfcc18.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, "cardano-faucet": { @@ -108,16 +108,16 @@ "url_template": "https://github.com///archive/.tar.gz", "version": "cc7f4ddf78182fb14c8d34516e6c72408ad3eb35o" }, - "cardano-graphql-next": { - "branch": "chore/cardano-db-sync-10-compat", + "cardano-graphql-5": { + "branch": "5-0-stable", "description": "GraphQL API for Cardano", "homepage": "", "owner": "input-output-hk", "repo": "cardano-graphql", - "rev": "efa008c3ea0a2c98bee2aa40afeaeba2b5b3e3f3", - "sha256": "10dd4zsbz2nhv4s2x5yf1zkfw1kskvr8nswikdlb5lc9r73igs5f", + "rev": "5bf38f09a5758709616f76986c10d5d6ffbf33d8", + "sha256": "1kdnbibf5ah2y9l70sxz0ddm1878f9r8jjsnfl0hizj5hhnlksf7", "type": "tarball", - "url": "https://github.com/input-output-hk/cardano-graphql/archive/efa008c3ea0a2c98bee2aa40afeaeba2b5b3e3f3.tar.gz", + "url": "https://github.com/input-output-hk/cardano-graphql/archive/5bf38f09a5758709616f76986c10d5d6ffbf33d8.tar.gz", "url_template": "https://github.com///archive/.tar.gz", "version": "cc7f4ddf78182fb14c8d34516e6c72408ad3eb35o" }, @@ -193,6 +193,18 @@ "url": "https://github.com/input-output-hk/offchain-metadata-tools/archive/dd052829f0f070f91edd67cffe073db1622ea55d.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, + "ogmios": { + "branch": "refs/tags/v4.0.0-beta.4", + "description": " ❇️ A JSON-WSP WebSocket bridge for cardano-node", + "homepage": "https://ogmios.dev", + "owner": "CardanoSolutions", + "repo": "ogmios", + "rev": "a2a92ee54b08e9b8b3c8cc95ea4f4c4d83904579", + "sha256": "1qgrqw31wd0jpxcn0jaih8dmsr6446rqcy8zqgh2wrylfncpznap", + "type": "tarball", + "url": "https://github.com/CardanoSolutions/ogmios/archive/a2a92ee54b08e9b8b3c8cc95ea4f4c4d83904579.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + }, "ops-lib": { "branch": "master", "description": "NixOps deployment configuration library for IOHK devops ", diff --git a/roles/explorer.nix b/roles/explorer.nix index 4c452961a..ff35a125c 100644 --- a/roles/explorer.nix +++ b/roles/explorer.nix @@ -5,9 +5,12 @@ let maintenanceMode = false; cfg = config.services.cardano-db-sync; nodeCfg = config.services.cardano-node; + ogmiosCfg = config.services.cardano-ogmios; nodeId = config.node.nodeId; getSrc = name: variant.${name} or sourcePaths.${name}; + cardanoNodeConfigPath = builtins.toFile "cardano-node-config.json" (builtins.toJSON nodeCfg.nodeConfig); + dbSyncPkgs = let s = getSrc "cardano-db-sync"; in import (s + "/nix") { gitrev = s.rev; }; inherit (dbSyncPkgs) cardanoDbSyncHaskellPackages; inherit (cardanoDbSyncHaskellPackages.cardano-db-sync.components.exes) cardano-db-sync; @@ -18,11 +21,12 @@ let cardano-explorer-app-pkgs = import (getSrc "cardano-explorer-app"); in { imports = [ - ((getSrc "cardano-graphql") + "/nix/nixos") + cardano-ops.modules.cardano-postgres + cardano-ops.modules.base-service ((sourcePaths.cardano-db-sync-service or (getSrc "cardano-db-sync")) + "/nix/nixos") + ((getSrc "ogmios") + "/nix/nixos") + ((getSrc "cardano-graphql") + "/nix/nixos") ((getSrc "cardano-rosetta") + "/nix/nixos") - cardano-ops.modules.base-service - cardano-ops.modules.cardano-postgres ]; environment.systemPackages = with pkgs; [ @@ -51,15 +55,23 @@ in { ''; }; + services.cardano-ogmios = { + enable = true; + nodeConfig = cardanoNodeConfigPath; + nodeSocketPath = nodeCfg.socketPath; + hostAddr = "127.0.0.1"; + }; + services.graphql-engine.enable = true; services.cardano-graphql = { enable = true; + inherit cardanoNodeConfigPath; genesisByron = nodeCfg.nodeConfig.ByronGenesisFile; genesisShelley = nodeCfg.nodeConfig.ShelleyGenesisFile; allowListPath = cardano-explorer-app-pkgs.allowList; - cardanoNodeSocketPath = nodeCfg.socketPath; - cardanoNodeConfigPath = builtins.toFile "cardano-node-config.json" (builtins.toJSON nodeCfg.nodeConfig); metadataServerUri = globals.environmentConfig.metadataUrl or null; + ogmiosHost = ogmiosCfg.hostAddr; + ogmiosPort = ogmiosCfg.port; }; services.cardano-rosetta-server = { @@ -109,6 +121,11 @@ in { RestartSec = "30s"; }; + systemd.services.cardano-ogmios.serviceConfig = { + User = "cexplorer"; + SupplementaryGroups = "cardano-node"; + }; + systemd.services.cardano-rosetta-server.serviceConfig = { User = "cexplorer"; SupplementaryGroups = "cardano-node";