From cff8b6da4e8ceeb0d9121c3eb702b6b9bcd287f7 Mon Sep 17 00:00:00 2001 From: Raphael Panic Date: Mon, 20 Oct 2025 21:57:03 +0200 Subject: [PATCH 1/2] Some refactoring / qol improvements --- packages/api/src/metrics/OpenTelemetryServer.ts | 8 +++----- packages/api/src/metrics/OpenTelemetryTracer.ts | 6 +++++- packages/library/src/runtime/Withdrawals.ts | 2 ++ .../sequencer/src/sequencer/SequencerStartupModule.ts | 11 +++++++++++ .../sequencer/src/worker/worker/FlowTaskWorker.ts | 2 ++ 5 files changed, 23 insertions(+), 6 deletions(-) diff --git a/packages/api/src/metrics/OpenTelemetryServer.ts b/packages/api/src/metrics/OpenTelemetryServer.ts index 23719d367..cc8188d90 100644 --- a/packages/api/src/metrics/OpenTelemetryServer.ts +++ b/packages/api/src/metrics/OpenTelemetryServer.ts @@ -32,17 +32,15 @@ export type OpenTelemetryServerConfig = { }; @sequencerModule() -export class OpenTelemetryServer - extends SequencerModule - implements DependencyFactory -{ +// implements DependencyFactory +export class OpenTelemetryServer extends SequencerModule { public constructor( @inject("Sequencer") private readonly sequencer: Sequencer ) { super(); } - public dependencies() { + public static dependencies() { return { Tracer: { useClass: OpenTelemetryTracer, diff --git a/packages/api/src/metrics/OpenTelemetryTracer.ts b/packages/api/src/metrics/OpenTelemetryTracer.ts index 215ecab56..26db76766 100644 --- a/packages/api/src/metrics/OpenTelemetryTracer.ts +++ b/packages/api/src/metrics/OpenTelemetryTracer.ts @@ -11,7 +11,8 @@ export class OpenTelemetryTracer implements Tracer { // We need to import this here, so that the OpenTelemetryServer will be resolved // before this module, and therefore will be already started when this module is // eventually consumed and used - @inject("OpenTelemetryServer") openTelemetryServer: OpenTelemetryServer + @inject("OpenTelemetryServer") + private readonly openTelemetryServer: OpenTelemetryServer ) { noop(); } @@ -24,6 +25,9 @@ export class OpenTelemetryTracer implements Tracer { f: () => Promise, metadata?: Record ) { + if (this.openTelemetryServer.config.tracing?.enabled !== true) { + return await f(); + } if (this.tracer === undefined) { this.tracer = opentelemetry.trace.getTracer("protokit", "canary"); } diff --git a/packages/library/src/runtime/Withdrawals.ts b/packages/library/src/runtime/Withdrawals.ts index 417d3d0de..fd7dfb962 100644 --- a/packages/library/src/runtime/Withdrawals.ts +++ b/packages/library/src/runtime/Withdrawals.ts @@ -1,4 +1,5 @@ import { + outgoingMessage, OutgoingMessages, runtimeModule, RuntimeModule, @@ -28,6 +29,7 @@ export class Withdrawal extends Struct({ @runtimeModule() export class Withdrawals extends RuntimeModule { + @outgoingMessage() messages = new OutgoingMessages({ withdrawal: Withdrawal, }); diff --git a/packages/sequencer/src/sequencer/SequencerStartupModule.ts b/packages/sequencer/src/sequencer/SequencerStartupModule.ts index 29ffeb940..998b3e520 100644 --- a/packages/sequencer/src/sequencer/SequencerStartupModule.ts +++ b/packages/sequencer/src/sequencer/SequencerStartupModule.ts @@ -151,6 +151,15 @@ export class SequencerStartupModule log.info("Compiling Protocol circuits, this can take a few minutes"); + const timeout = setTimeout( + () => { + log.error( + "No response yet received from workers - have you configured a TaskQueue and a corresponding worker running (either in-process or somewhere else)" + ); + }, + this.areProofsEnabled.areProofsEnabled ? 20 * 60 * 1000 : 30 * 1000 + ); + const root = await this.compileRuntime(flow); const protocolBridgeArtifacts = await this.compileProtocolAndBridge( @@ -176,6 +185,8 @@ export class SequencerStartupModule }); log.info("Protocol circuits compiled successfully, commencing startup"); + + clearTimeout(timeout); } public async close() { diff --git a/packages/sequencer/src/worker/worker/FlowTaskWorker.ts b/packages/sequencer/src/worker/worker/FlowTaskWorker.ts index 48dbd9a21..137b3ddee 100644 --- a/packages/sequencer/src/worker/worker/FlowTaskWorker.ts +++ b/packages/sequencer/src/worker/worker/FlowTaskWorker.ts @@ -106,6 +106,8 @@ export class FlowTaskWorker[]> ...newWorkers, }; + log.info("All tasks prepared and ready"); + this.prepareResolve!(); } From d2d81fd0e89f5f4b53e689f6031a16cb7e6ce43d Mon Sep 17 00:00:00 2001 From: Raphael Panic Date: Thu, 30 Oct 2025 15:27:22 +0100 Subject: [PATCH 2/2] Added satisfies clauses to static dependencyfactories --- packages/api/src/metrics/OpenTelemetryServer.ts | 3 ++- packages/module/src/factories/MethodIdFactory.ts | 4 +++- packages/sdk/src/appChain/AreProofsEnabledFactory.ts | 8 +++++++- packages/sdk/src/appChain/SharedDependencyFactory.ts | 8 +++++++- packages/sequencer/src/logging/ConsoleTracingFactory.ts | 4 +++- .../sequencer/src/protocol/baselayer/MinaBaseLayer.ts | 2 ++ 6 files changed, 24 insertions(+), 5 deletions(-) diff --git a/packages/api/src/metrics/OpenTelemetryServer.ts b/packages/api/src/metrics/OpenTelemetryServer.ts index cc8188d90..62c8beb04 100644 --- a/packages/api/src/metrics/OpenTelemetryServer.ts +++ b/packages/api/src/metrics/OpenTelemetryServer.ts @@ -32,7 +32,6 @@ export type OpenTelemetryServerConfig = { }; @sequencerModule() -// implements DependencyFactory export class OpenTelemetryServer extends SequencerModule { public constructor( @inject("Sequencer") private readonly sequencer: Sequencer @@ -97,3 +96,5 @@ export class OpenTelemetryServer extends SequencerModule