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<boolean>;
Parameters
- None
Returns
Promise<boolean>
: Returnstrue
if the retry operation was successfully initiated,false
otherwise.
Note: Returns true
if retry was initiated. Use proverStatus()
to monitor progress.
Example
import { ZkDatabase } from 'zkdb';
const zkdb = await ZkDatabase.connect({
userName: "chiro-user",
privateKey: "EKFTciRxyxshZjimay9sktsn7v5PvmC5zPq7q4JnitHUytxUVnFP",
environment: "node",
// This URL is for test environment
url: "https://api.zkdatabase.org/graphql",
});
await zkdb.auth.signIn();
const dbTest = zkdb.db('zkdb_test');
const retryResult = await dbTest.proverRetry();
console.log('Retry result:', retryResult);
await zkdb.auth.signOut();
Result:
Retry result: true
Detect and Retry failed operations
Example
import { ZkDatabase } from 'zkdb';
import { EQueueTaskStatus } from '@zkdb/common';
const zkdb = await ZkDatabase.connect({
userName: "chiro-user",
privateKey: "EKFTciRxyxshZjimay9sktsn7v5PvmC5zPq7q4JnitHUytxUVnFP",
environment: "node",
// This URL is for test environment
url: "https://api.zkdatabase.org/graphql",
});
await zkdb.auth.signIn();
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());
}
await new Promise(resolve => setTimeout(resolve, 1000));
}
console.log("All prover operations completed successfully!");
await zkdb.auth.signOut();
Use after:
- Bulk document operations
- Before
rollUpOnChainStart()
- When
zkProofStatus()
showsFailed