Skip to main content

Prover Retry

Restart failed prover operations that generate zero-knowledge proofs for database operations.

When to use:

  • Document operations stuck in "Failed" status
  • Before rollup operations
  • After service crashes or network issues

Definition

await zkdb
.db(databaseName: string)
.proverRetry(): Promise<Result<TProverRetryResponse>>;

Parameters

  • None

Returns

  • Promise<Result<TProverRetryResponse>>: Returns true if the retry operation was successfully initialized.

Note: Returns true if retry was initiated. Use proverStatus() to monitor progress.

Example

import { ZkDatabase } from 'zkdb';

const zkdb = new ZkDatabase({
apiKey: 'zkdb_536aac02a1b7.c001b6b8f...da3aa4185d8d2ad07f0ae94aT',
// This URL is for test environment
url: "https://serverless.zkdatabase.org/graphql",
});
const dbTest = zkdb.db('zkdb_test');
const retryResult = (await dbTest.proverRetry()).unwrap();
console.log('Retry result:', retryResult);

Result:

Retry result: true

Detect and Retry failed operations

Example

import { ZkDatabase } from 'zkdb';
import { EQueueTaskStatus } from '@zkdb/common';

const zkdb = new ZkDatabase({
apiKey: 'zkdb_536aac02a1b7.c001b6b8f...da3aa4185d8d2ad07f0ae94aT',
// This URL is for test environment
url: "https://serverless.zkdatabase.org/graphql",
});
const database = zkdb.db("zkdb_test");

let status;

while ((status = await database.proverStatus()) !== EQueueTaskStatus.Success) {
if (status === EQueueTaskStatus.Failed) {
console.log("Retrying failed operation:", (await database.proverRetry()).unwrap());
}
await new Promise(resolve => setTimeout(resolve, 1000));
}

console.log("All prover operations completed successfully!");

Use after: