From 6512745dc20949837a37aa923766f8b7effd6816 Mon Sep 17 00:00:00 2001 From: Luis Herasme Date: Mon, 25 Nov 2024 10:09:52 -0400 Subject: [PATCH] Remove blob propagator enabled (#628) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor: remove BLOB_PROPAGATOR_ENABLED configuration and related documentation * chore: adds changeset * Update .changeset/eighty-lobsters-rest.md Co-authored-by: Francisco Jiménez * chore: fix type error --------- Co-authored-by: Francisco Jiménez --- .changeset/eighty-lobsters-rest.md | 5 +++++ .env.example | 2 -- .env.test | 1 - .../docs/src/app/docs/background-jobs/page.md | 6 +----- apps/docs/src/app/docs/environment/page.md | 2 -- apps/web/package.json | 2 +- packages/api/src/context.ts | 21 +++++++++++++------ .../blob-propagator/src/blob-propagator.ts | 4 ---- packages/env/index.ts | 5 +---- turbo.json | 3 +-- 10 files changed, 24 insertions(+), 27 deletions(-) create mode 100644 .changeset/eighty-lobsters-rest.md diff --git a/.changeset/eighty-lobsters-rest.md b/.changeset/eighty-lobsters-rest.md new file mode 100644 index 000000000..391038ca6 --- /dev/null +++ b/.changeset/eighty-lobsters-rest.md @@ -0,0 +1,5 @@ +--- +"@blobscan/blob-propagator": patch +--- + +Removed `BLOB_PROPAGATOR_ENABLED` variable. diff --git a/.env.example b/.env.example index 8e94905fd..2553fd6a7 100644 --- a/.env.example +++ b/.env.example @@ -26,8 +26,6 @@ NETWORK_NAME=mainnet # GOOGLE_SERVICE_KEY= # GOOGLE_STORAGE_API_ENDPOINT=http://localhost:4443 -BLOB_PROPAGATOR_ENABLED=false - GOOGLE_STORAGE_ENABLED=false POSTGRES_STORAGE_ENABLED=true SWARM_STORAGE_ENABLED=false diff --git a/.env.test b/.env.test index fc4fcaa51..bc01f5476 100644 --- a/.env.test +++ b/.env.test @@ -29,6 +29,5 @@ FILE_SYSTEM_STORAGE_PATH=test-blobscan-blobs # Blob Propagator -BLOB_PROPAGATOR_ENABLED=false BLOB_PROPAGATOR_TMP_BLOB_STORAGE=FILE_SYSTEM REDIS_URI=redis://localhost:6379/1 diff --git a/apps/docs/src/app/docs/background-jobs/page.md b/apps/docs/src/app/docs/background-jobs/page.md index 18a9eeb74..6b81fcafc 100644 --- a/apps/docs/src/app/docs/background-jobs/page.md +++ b/apps/docs/src/app/docs/background-jobs/page.md @@ -14,8 +14,4 @@ Blobscan requires [BullMQ](https://bullmq.io/) to run the following tasks in the For more information, check out the [@blobscan/syncers](https://github.com/Blobscan/blobscan/tree/next/packages/syncers/src/syncers) package. -The BullMQ queue is also used to upload blobs in parallel to different Storages. Although this is not recommended, you can disable parallel uploads by setting: - -```shell -BLOB_PROPAGATOR_ENABLED=false -``` +The BullMQ queue is also used to upload blobs in parallel to different Storages. diff --git a/apps/docs/src/app/docs/environment/page.md b/apps/docs/src/app/docs/environment/page.md index 91cf6adc8..2636ca099 100644 --- a/apps/docs/src/app/docs/environment/page.md +++ b/apps/docs/src/app/docs/environment/page.md @@ -24,7 +24,6 @@ nextjs: | `SENTRY_ORG` | Sentry organization | No | (empty) | | `METRICS_ENABLED` | Expose the /metrics endpoint | No | `false` | | `TRACES_ENABLED` | Enable instrumentation of functions and sending traces to a collector | No | `false` | -| `BLOB_PROPAGATOR_ENABLED` | Enable uploading blobs to multiple storages in parallel | No | `false` | | `NEXT_PUBLIC_POSTHOG_ID` | PostHog project API key used for tracking events and analytics | No | (empty) | | `NEXT_PUBLIC_POSTHOG_HOST` | Host URL for the PostHog instance used for analytics tracking | No | `https://us.i.posthog.com` | @@ -59,7 +58,6 @@ nextjs: | `STATS_SYNCER_DAILY_CRON_PATTERN` | Cron pattern for the daily stats job | No | `30 0 * * * *` | | `STATS_SYNCER_OVERALL_CRON_PATTERN` | Cron pattern for the overall stats job | No | `*/15 * * * *` | | `SWARM_STAMP_CRON_PATTERN` | Cron pattern for swarm job | No | `*/15 * * * *` | -| `BLOB_PROPAGATOR_ENABLED` | Enable parallel uploading of blobs to multiple storage locations | No | `false` | | `BLOB_PROPAGATOR_COMPLETED_JOBS_AGE` | Remove completed jobs after the specified number of seconds (default: 1 day) | No | `86400` | | `BLOB_PROPAGATOR_FAILED_JOBS_AGE` | Remove completed jobs after the specified number of seconds (default: 7 days) | No | `604800` | | `POSTHOG_ID` | PostHog project API key used for tracking events and analytics | No | (empty) | diff --git a/apps/web/package.json b/apps/web/package.json index d0f0f36fa..725c636ac 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -12,7 +12,7 @@ "start": "pnpm with-env next start", "svg:format": "svgo -r ./src/icons ./public", "type-check": "tsc --noEmit", - "with-env": "dotenv -e ../../.env -v BLOB_PROPAGATOR_ENABLED=false --" + "with-env": "dotenv -e ../../.env --" }, "dependencies": { "@blobscan/api": "workspace:^0.15.0", diff --git a/packages/api/src/context.ts b/packages/api/src/context.ts index 42c7c983e..2046acd76 100644 --- a/packages/api/src/context.ts +++ b/packages/api/src/context.ts @@ -9,8 +9,11 @@ import type { import cookie from "cookie"; import jwt from "jsonwebtoken"; -import { getBlobPropagator } from "@blobscan/blob-propagator"; -import { getBlobStorageManager } from "@blobscan/blob-storage-manager"; +import { BlobPropagator, getBlobPropagator } from "@blobscan/blob-propagator"; +import { + BlobStorageManager, + getBlobStorageManager, +} from "@blobscan/blob-storage-manager"; import { prisma } from "@blobscan/db"; import { env } from "@blobscan/env"; @@ -50,7 +53,16 @@ export function getJWTFromRequest(req: NodeHTTPRequest | NextHTTPRequest) { } } -export async function createTRPCInnerContext(opts?: CreateInnerContextOptions) { +export type TRPCInnerContext = { + prisma: typeof prisma; + blobStorageManager: BlobStorageManager; + blobPropagator: BlobPropagator | undefined; + apiClient: string | null | undefined; +}; + +export async function createTRPCInnerContext( + opts?: CreateInnerContextOptions +): Promise { const blobStorageManager = await getBlobStorageManager(); const blobPropagator = await getBlobPropagator(); @@ -142,6 +154,3 @@ export function createTRPCContext( export type TRPCContext = inferAsyncReturnType< ReturnType >; -export type TRPCInnerContext = inferAsyncReturnType< - typeof createTRPCInnerContext ->; diff --git a/packages/blob-propagator/src/blob-propagator.ts b/packages/blob-propagator/src/blob-propagator.ts index df41fe140..b3ca45324 100644 --- a/packages/blob-propagator/src/blob-propagator.ts +++ b/packages/blob-propagator/src/blob-propagator.ts @@ -48,10 +48,6 @@ async function createBlobPropagator( let blobPropagator: BlobPropagator | undefined; async function getBlobPropagator() { - if (!env.BLOB_PROPAGATOR_ENABLED) { - return; - } - if (!blobPropagator) { const blobStorageManager = await getBlobStorageManager(); diff --git a/packages/env/index.ts b/packages/env/index.ts index 6f1101fc2..d751e3753 100644 --- a/packages/env/index.ts +++ b/packages/env/index.ts @@ -37,7 +37,6 @@ export const env = createEnv({ .url() .default(`http://localhost:${process.env.BLOBSCAN_API_PORT ?? 3001}`), BLOBSCAN_API_PORT: z.coerce.number().positive().default(3001), - BLOB_PROPAGATOR_ENABLED: booleanSchema.default("false"), BLOB_PROPAGATOR_TMP_BLOB_STORAGE: blobStorageSchema.default("FILE_SYSTEM"), BLOB_PROPAGATOR_COMPLETED_JOBS_AGE: z.coerce @@ -95,9 +94,7 @@ export const env = createEnv({ console.log( `API configuration: secretKey: ${maskSensitiveData( env.SECRET_KEY - )} Blob propagator configuration: enabled=${ - env.BLOB_PROPAGATOR_ENABLED - } redisUri=${maskPassword(env.REDIS_URI)} temporalBlobStorage=${ + )} redisUri=${maskPassword(env.REDIS_URI)} temporalBlobStorage=${ env.BLOB_PROPAGATOR_TMP_BLOB_STORAGE } completedJobsAge=${ env.BLOB_PROPAGATOR_COMPLETED_JOBS_AGE diff --git a/turbo.json b/turbo.json index b6d9ef5af..f66143c3b 100644 --- a/turbo.json +++ b/turbo.json @@ -57,7 +57,6 @@ "ANALYZE", "BEACON_NODE_ENDPOINT", "BEE_ENDPOINT", - "BLOB_PROPAGATOR_ENABLED", "BLOB_PROPAGATOR_TMP_BLOB_STORAGE", "BLOBSCAN_API_PORT", "CHAIN_ID", @@ -100,4 +99,4 @@ "VERCEL_URL", "TS_NODE" ] -} \ No newline at end of file +}