From 786f4c041ea7b154003ea3b0c0137d289bfc50af Mon Sep 17 00:00:00 2001 From: Andre Staltz Date: Mon, 7 Aug 2023 21:19:48 +0300 Subject: [PATCH] Still allow some parallelism up-to quorum --- src.ts/providers/provider-fallback.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src.ts/providers/provider-fallback.ts b/src.ts/providers/provider-fallback.ts index a7a323627..0f9f419ea 100644 --- a/src.ts/providers/provider-fallback.ts +++ b/src.ts/providers/provider-fallback.ts @@ -483,11 +483,11 @@ export class FallbackProvider extends AbstractProvider { } // Adds a new runner (if available) to running. - #addRunner(running: Set, req: PerformActionRequest): null | RunnerState { + #addRunner(running: Set, req: PerformActionRequest): number { const config = this.#getNextConfig(running); // No runners available - if (config == null) { return null; } + if (config == null) { return 0; } // Create a new runner const runner: RunnerState = { @@ -524,7 +524,7 @@ export class FallbackProvider extends AbstractProvider { })(); running.add(runner); - return runner; + return runner.config.weight; } // Initializes the blockNumber and network for each runner and @@ -716,7 +716,11 @@ export class FallbackProvider extends AbstractProvider { // Bootstrap enough runners to meet quorum const running: Set = new Set(); - this.#addRunner(running, req); + let weightSoFar = 0; + for (let i = 0; i < this.quorum; i++) { + weightSoFar += this.#addRunner(running, req); + if (weightSoFar >= this.quorum) { break; } + } const result = await this.#waitForQuorum(running, req);