Skip to content

Commit dcd237d

Browse files
committed
Merge branch 'master' into conway-era
2 parents ded2b5f + 3ee403b commit dcd237d

File tree

72 files changed

+1616
-417
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+1616
-417
lines changed

compose/aarch64.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Overrides for AArch64 processors, until we get official images:
2+
3+
services:
4+
cardano-db-sync:
5+
image: ghcr.io/input-output-hk/ogmios-tracker/cardano-db-sync:${CARDANO_DB_SYNC_VERSION:-13.1.0.0}
6+
cardano-node:
7+
image: ghcr.io/input-output-hk/ogmios-tracker/cardano-node:${CARDANO_NODE_VERSION:-1.35.5}
8+
ogmios:
9+
image: ghcr.io/input-output-hk/ogmios-tracker/ogmios:v${OGMIOS_VERSION:-5.6.0}
10+
cardano-submit-api:
11+
image: ghcr.io/input-output-hk/ogmios-tracker/cardano-submit-api:${CARDANO_NODE_VERSION:-1.35.5}

compose/arm64.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
aarch64.yml

compose/x86_64.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Nothing to override – for x86_64 processors we use the official `amd64` images.
2+
3+
{}

nix/cardano-services/deployments/default.nix

Lines changed: 94 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,14 @@ in
113113
resources.limits = mkPodResources "300Mi" "500m";
114114
resources.requests = mkPodResources "150Mi" "100m";
115115
};
116-
117116
pg-boss-worker = {
118-
enabled = false;
119-
metadata-fetch-mode = "direct";
120-
resources.limits = mkPodResources "300Mi" "300m";
121-
resources.requests = mkPodResources "150Mi" "200m";
117+
enabled = false;
118+
metadata-fetch-mode = "smash";
119+
smash-url = if values.network == "mainnet"
120+
then "https://smash.cardano-mainnet.iohk.io/api/v1"
121+
else "https://${values.network}-smash.world.dev.cardano.org/api/v1";
122+
resources.limits = mkPodResources "300Mi" "300m";
123+
resources.requests = mkPodResources "150Mi" "200m";
122124
};
123125

124126
backend = {
@@ -210,7 +212,6 @@ in
210212

211213
blockfrost-worker.enabled = true;
212214
pg-boss-worker.enabled = true;
213-
pg-boss-worker.metadata-fetch-mode = "smash";
214215
};
215216
};
216217

@@ -329,7 +330,6 @@ in
329330

330331
blockfrost-worker.enabled = true;
331332
pg-boss-worker.enabled = true;
332-
pg-boss-worker.metadata-fetch-mode = "smash";
333333
};
334334
};
335335

@@ -348,6 +348,7 @@ in
348348
network = "preprod";
349349
region = "us-east-1";
350350

351+
351352
backend.hostnames = ["${final.namespace}.${baseUrl}"];
352353
backend.passHandleDBArgs = false;
353354
backend.routes = [
@@ -401,8 +402,9 @@ in
401402
backend.allowedOrigins = lib.concatStringsSep "," allowedOriginsDev;
402403
backend.hostnames = ["${final.namespace}.${baseUrl}"];
403404

404-
blockfrost-worker.enabled = true;
405405
pg-boss-worker.enabled = true;
406+
407+
blockfrost-worker.enabled = true;
406408
cardano-services = {
407409
ingresOrder = 98;
408410
};
@@ -492,6 +494,7 @@ in
492494
providers = {
493495
backend = {
494496
enabled = true;
497+
env.NODE_ENV = "production";
495498
};
496499
};
497500

@@ -515,14 +518,54 @@ in
515518
"/v2.0.0/tx-submit"
516519
"/v2.0.0/utxo"
517520
];
518-
blockfrost-worker.enabled = true;
521+
# blockfrost-worker.enabled = true;
519522
cardano-services = {
520523
ingresOrder = 99;
521524
image = "926093910549.dkr.ecr.us-east-1.amazonaws.com/cardano-services:s8j5nx9x2naar194pr58kpmlr5s4xn7b";
522525
};
523526
};
524527
};
525528

529+
"live-preprod@us-east-2@v2" = final: {
530+
name = "${final.namespace}-cardanojs-v2";
531+
namespace = "live-preprod";
532+
context = "eks-admin";
533+
534+
providers = {
535+
backend = {
536+
enabled = true;
537+
env.NODE_ENV = "production";
538+
};
539+
stake-pool-provider = {
540+
enabled = true;
541+
env.OVERRIDE_FUZZY_OPTIONS = "true";
542+
env.NODE_ENV = "production";
543+
};
544+
handle-provider = {
545+
enabled = true;
546+
env.NODE_ENV = "production";
547+
};
548+
};
549+
550+
projectors = {
551+
handle.enabled = true;
552+
stake-pool.enabled = true;
553+
};
554+
555+
values = {
556+
network = "preprod";
557+
region = "us-east-2";
558+
559+
backend.hostnames = ["backend.${final.namespace}.eks.${baseUrl}" "${final.namespace}.${baseUrl}"];
560+
blockfrost-worker.enabled = true;
561+
pg-boss-worker.enabled = true;
562+
cardano-services = {
563+
ingresOrder = 98;
564+
};
565+
};
566+
};
567+
568+
526569
"live-preview@us-east-2@v1" = final: {
527570
name = "${final.namespace}-cardanojs-v1";
528571
namespace = "live-preview";
@@ -531,6 +574,7 @@ in
531574
providers = {
532575
backend = {
533576
enabled = true;
577+
env.NODE_ENV = "production";
534578
};
535579
};
536580

@@ -554,14 +598,53 @@ in
554598
"/v2.0.0/tx-submit"
555599
"/v2.0.0/utxo"
556600
];
557-
blockfrost-worker.enabled = true;
601+
# blockfrost-worker.enabled = true;
558602
cardano-services = {
559603
ingresOrder = 99;
560604
image = "926093910549.dkr.ecr.us-east-1.amazonaws.com/cardano-services:s8j5nx9x2naar194pr58kpmlr5s4xn7b";
561605
};
562606
};
563607
};
564608

609+
"live-preview@us-east-2@v2" = final: {
610+
name = "${final.namespace}-cardanojs-v2";
611+
namespace = "live-preview";
612+
context = "eks-admin";
613+
614+
providers = {
615+
backend = {
616+
enabled = true;
617+
env.NODE_ENV = "production";
618+
};
619+
stake-pool-provider = {
620+
enabled = true;
621+
env.OVERRIDE_FUZZY_OPTIONS = "true";
622+
env.NODE_ENV = "production";
623+
};
624+
handle-provider = {
625+
enabled = true;
626+
env.NODE_ENV = "production";
627+
};
628+
};
629+
630+
projectors = {
631+
handle.enabled = true;
632+
stake-pool.enabled = true;
633+
};
634+
635+
values = {
636+
network = "preview";
637+
region = "us-east-2";
638+
639+
backend.hostnames = ["backend.${final.namespace}.eks.${baseUrl}" "${final.namespace}.${baseUrl}"];
640+
blockfrost-worker.enabled = true;
641+
pg-boss-worker.enabled = true;
642+
cardano-services = {
643+
ingresOrder = 98;
644+
};
645+
};
646+
};
647+
565648
"ops-preview-1@us-east-1" = final: {
566649
namespace = "ops-preview-1";
567650

@@ -610,6 +693,7 @@ in
610693
env.USE_SUBMIT_API = "true";
611694
env.USE_BLOCKFROST = lib.mkForce "false";
612695
env.SUBMIT_API_URL = "http://${final.namespace}-cardano-stack.${final.namespace}.svc.cluster.local:8090";
696+
env.NODE_ENV = "production";
613697
};
614698
stake-pool-provider.enabled = true;
615699
};

nix/cardano-services/deployments/pg-boss-worker-deployment.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@
101101
}
102102
// lib.optionalAttrs (values.pg-boss-worker ? env) values.pg-boss-worker.env
103103
// lib.optionalAttrs (values.pg-boss-worker.metadata-fetch-mode == "smash") {
104-
SMASH_URL = "https://smash.cardano-mainnet.iohk.io/api/v1";
104+
SMASH_URL = values.pg-boss-worker.smash-url;
105105
});
106106
volumeMounts = [
107107
{

packages/cardano-services-client/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
"dependencies": {
5757
"@cardano-sdk/core": "workspace:~",
5858
"@cardano-sdk/util": "workspace:~",
59-
"axios": "^0.27.2",
59+
"axios": "^0.28.0",
6060
"class-validator": "^0.14.0",
6161
"json-bigint": "~1.0.0",
6262
"ts-log": "^2.2.4"

packages/cardano-services/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
## [0.27.1](https://github.com/input-output-hk/cardano-js-sdk/compare/@cardano-sdk/[email protected]...@cardano-sdk/[email protected]) (2024-04-03)
7+
8+
**Note:** Version bump only for package @cardano-sdk/cardano-services
9+
610
## [0.27.0](https://github.com/input-output-hk/cardano-js-sdk/compare/@cardano-sdk/[email protected]...@cardano-sdk/[email protected]) (2024-03-26)
711

812
### ⚠ BREAKING CHANGES

packages/cardano-services/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@cardano-sdk/cardano-services",
3-
"version": "0.27.0",
3+
"version": "0.27.1",
44
"description": "Cardano GraphQL Services",
55
"engines": {
66
"node": ">=16.20.2"
@@ -29,8 +29,8 @@
2929
"cleanup:nm": "rm -rf node_modules",
3030
"cleanup": "rm -rf dist node_modules",
3131
"cli": "ts-node --transpile-only src/cli.ts",
32-
"compose:up": "docker compose --env-file environments/.env.$NETWORK -p cardano-services-$NETWORK -f docker-compose.yml -f ../../compose/common.yml -f ../../compose/pg-agent.yml ${FILES:-} up",
33-
"compose:down": "docker compose -p cardano-services-$NETWORK -f docker-compose.yml -f ../../compose/common.yml -f ../../compose/pg-agent.yml down -t 120",
32+
"compose:up": "docker compose --env-file environments/.env.$NETWORK -p cardano-services-$NETWORK -f docker-compose.yml -f ../../compose/common.yml -f ../../compose/pg-agent.yml -f ../../compose/$(uname -m).yml ${FILES:-} up",
33+
"compose:down": "docker compose -p cardano-services-$NETWORK -f docker-compose.yml -f ../../compose/common.yml -f ../../compose/pg-agent.yml -f ../../compose/$(uname -m).yml down -t 120",
3434
"coverage": "yarn test --coverage || true",
3535
"circular-deps:check": "madge --circular dist/cjs",
3636
"lint": "eslint -c ../../complete.eslintrc.js \"src/**/*.ts\" \"test/**/*.ts\"",
@@ -98,7 +98,7 @@
9898
"@cardano-sdk/util": "workspace:~",
9999
"@cardano-sdk/util-rxjs": "workspace:~",
100100
"@hapi/topo": "^6.0.2",
101-
"axios": "^0.27.2",
101+
"axios": "^0.28.0",
102102
"backoff-rxjs": "^7.0.0",
103103
"bignumber.js": "^9.1.0",
104104
"body-parser": "^1.19.2",

packages/cardano-services/src/Http/HttpService.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@ import { versionPathFromSpec } from '../util/openApi';
1515
import express, { Router } from 'express';
1616
import path from 'path';
1717

18-
const openApiOption = { ignoreUndocumented: true, validateRequests: true, validateResponses: true };
18+
const openApiOption = {
19+
ignoreUndocumented: true,
20+
validateRequests: true,
21+
validateResponses: process.env.NODE_ENV !== 'production'
22+
};
1923

2024
export abstract class HttpService extends RunnableModule {
2125
public router: express.Router;

packages/cardano-services/src/Projection/createTypeormProjection.ts

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import { Bootstrap, ProjectionEvent, logProjectionProgress, requestNext } from '@cardano-sdk/projection';
44
import { Cardano, ObservableCardanoNode } from '@cardano-sdk/core';
55
import { Logger } from 'ts-log';
6-
import { Observable, concat, defer, take, takeWhile } from 'rxjs';
6+
import { Observable, concat, defer, groupBy, mergeMap, take, takeWhile } from 'rxjs';
77
import {
88
PgConnectionConfig,
99
TypeormDevOptions,
@@ -72,7 +72,7 @@ export const createTypeormProjection = ({
7272
logger.debug(`Creating projection with policyIds ${JSON.stringify(handlePolicyIds)}`);
7373
logger.debug(`Using a ${blocksBufferLength} blocks buffer`);
7474

75-
const { mappers, entities, stores, extensions } = prepareTypeormProjection(
75+
const { mappers, entities, stores, extensions, willStore } = prepareTypeormProjection(
7676
{
7777
options: projectionOptions,
7878
projections
@@ -118,15 +118,23 @@ export const createTypeormProjection = ({
118118
defer(() =>
119119
projectionSource$.pipe(
120120
applyMappers(mappers),
121-
shareRetryBackoff(
122-
(evt$) =>
123-
evt$.pipe(
124-
withTypeormTransaction({ connection$: connect() }),
125-
applyStores(stores),
126-
buffer.storeBlockData(),
127-
typeormTransactionCommit()
128-
),
129-
{ shouldRetry: isRecoverableTypeormError }
121+
// if there are any relevant data to write into db
122+
groupBy((evt) => willStore(evt)),
123+
mergeMap((group$) =>
124+
group$.key
125+
? group$.pipe(
126+
shareRetryBackoff(
127+
(evt$) =>
128+
evt$.pipe(
129+
withTypeormTransaction({ connection$: connect() }),
130+
applyStores(stores),
131+
buffer.storeBlockData(),
132+
typeormTransactionCommit()
133+
),
134+
{ shouldRetry: isRecoverableTypeormError }
135+
)
136+
)
137+
: group$
130138
),
131139
tipTracker.trackProjectedTip(),
132140
requestNext(),

0 commit comments

Comments
 (0)