@pinionengineering/prover-client 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +72 -7
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +110 -12
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +67 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/verify.d.ts +20 -5
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +29 -10
- package/dist/verify.js.map +1 -1
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Pass the full base URL including the path prefix, e.g.:
|
|
9
9
|
* new PinionProverClient("https://hydrogen.pinion.build/prover", { getToken })
|
|
10
10
|
*/
|
|
11
|
-
import type { AuditResult, ChallengeKeyInfo, CreateKeyResult, ParsedSetup, RawSetupResponse, TagJobListEntry, TagJobProgress, TagJobStatusResponse, TagResponse } from './types.js';
|
|
11
|
+
import type { AuditResult, ChallengeKeyInfo, CreateKeyResult, ParsedSetup, ProveJobStatusResponse, RawSetupResponse, TagJobListEntry, TagJobProgress, TagJobStatusResponse, TagResponse } from './types.js';
|
|
12
12
|
export interface PinionProverClientOptions {
|
|
13
13
|
/**
|
|
14
14
|
* Returns a JWT Bearer token for authenticated endpoints, or null/undefined
|
|
@@ -43,8 +43,28 @@ export interface TagOptions {
|
|
|
43
43
|
pollIntervalMs?: number;
|
|
44
44
|
/** Give up and throw TagTimeoutError after this long. Default 10 minutes. */
|
|
45
45
|
timeoutMs?: number;
|
|
46
|
-
/**
|
|
47
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Called after every status poll with the latest progress and the raw
|
|
48
|
+
* status string ("tag-queued" | "tag-planning" | "tag-running" |
|
|
49
|
+
* "tag-merging" | "tag-done" | "tag-failed"). The server populates
|
|
50
|
+
* progress on every poll regardless of status, including "tag-queued"
|
|
51
|
+
* before any work has started (as {total_blocks: 0, completed_blocks: 0})
|
|
52
|
+
* — check `status` if you need to distinguish "not started yet" from
|
|
53
|
+
* "actively running".
|
|
54
|
+
*/
|
|
55
|
+
onProgress?: (progress: TagJobProgress, status: string) => void;
|
|
56
|
+
}
|
|
57
|
+
/** Options for prove()'s internal job-status polling. */
|
|
58
|
+
export interface ProveOptions {
|
|
59
|
+
/** Milliseconds between GET /prove/:job_id polls. Default 500. */
|
|
60
|
+
pollIntervalMs?: number;
|
|
61
|
+
/**
|
|
62
|
+
* Give up and throw ProveTimeoutError after this long. Default 60
|
|
63
|
+
* seconds — much shorter than tag()'s default, since a proof round is one
|
|
64
|
+
* bounded crypto operation over the sampled blocks, not a per-block loop
|
|
65
|
+
* over an entire file.
|
|
66
|
+
*/
|
|
67
|
+
timeoutMs?: number;
|
|
48
68
|
}
|
|
49
69
|
export declare class PinionProverClient {
|
|
50
70
|
private readonly baseUrl;
|
|
@@ -107,15 +127,34 @@ export declare class PinionProverClient {
|
|
|
107
127
|
/**
|
|
108
128
|
* POST /prove — unauthenticated, the server resolves the account from key_id.
|
|
109
129
|
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
130
|
+
* Proving is asynchronous: this posts the challenge, then polls GET
|
|
131
|
+
* /prove/:job_id until the job reaches a terminal state, so the returned
|
|
132
|
+
* promise resolves only once a proof is actually ready (matching the
|
|
133
|
+
* pre-async blocking behavior). Returns the raw proof bytes. Most callers
|
|
134
|
+
* should use audit() instead, which also cryptographically verifies the
|
|
135
|
+
* response.
|
|
112
136
|
*
|
|
113
137
|
* @param keyId Challenge key ID.
|
|
114
138
|
* @param roots CID strings to prove, in the same order as the challenge.
|
|
115
139
|
* @param challenge base64(JSON(WireChallenge)) from buildChallenge().
|
|
116
|
-
* @param challengeId Optional idempotency key
|
|
140
|
+
* @param challengeId Optional idempotency key. If a caller's own retry
|
|
141
|
+
* logic re-calls prove() for what is logically the
|
|
142
|
+
* same request (e.g. after a timeout with an unclear
|
|
143
|
+
* outcome), passing the same challengeId across those
|
|
144
|
+
* attempts makes the server return the original job
|
|
145
|
+
* instead of starting a redundant one. Leave unset for
|
|
146
|
+
* normal audit rounds — each is a fresh, independently
|
|
147
|
+
* random challenge, which should never be deduped
|
|
148
|
+
* against a previous one.
|
|
149
|
+
*
|
|
150
|
+
* Throws PinNotActiveError (409, checked synchronously before any job is
|
|
151
|
+
* created), ProveFailedError if the job reaches "prove-failed", or
|
|
152
|
+
* ProveTimeoutError if it doesn't reach a terminal state within
|
|
153
|
+
* options.timeoutMs.
|
|
117
154
|
*/
|
|
118
|
-
prove(keyId: string, roots: string[], challenge: string, challengeId?: string): Promise<Uint8Array>;
|
|
155
|
+
prove(keyId: string, roots: string[], challenge: string, challengeId?: string, options?: ProveOptions): Promise<Uint8Array>;
|
|
156
|
+
/** Poll the status of a proof job started by prove(). Exposed for callers that want to observe progress without waiting on prove()'s full promise. */
|
|
157
|
+
proveStatus(jobId: string): Promise<ProveJobStatusResponse>;
|
|
119
158
|
/**
|
|
120
159
|
* Run one audit round against a pre-fetched setup.
|
|
121
160
|
*
|
|
@@ -149,6 +188,20 @@ export declare class ProverError extends Error {
|
|
|
149
188
|
readonly body: string;
|
|
150
189
|
constructor(status: number, body: string);
|
|
151
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Thrown when a response has a successful HTTP status but a body that
|
|
193
|
+
* isn't valid JSON — this is what an infra problem often looks like from
|
|
194
|
+
* the client's perspective (a proxy's HTML error page returned with a 200,
|
|
195
|
+
* a response cut off mid-stream), as opposed to a clean non-2xx status
|
|
196
|
+
* (which surfaces as ProverError instead). bodyPreview is truncated to 200
|
|
197
|
+
* characters so a large unexpected body doesn't bloat error logs/messages.
|
|
198
|
+
*/
|
|
199
|
+
export declare class MalformedResponseError extends Error {
|
|
200
|
+
readonly status: number;
|
|
201
|
+
readonly bodyPreview: string;
|
|
202
|
+
readonly cause?: unknown | undefined;
|
|
203
|
+
constructor(status: number, bodyPreview: string, cause?: unknown | undefined);
|
|
204
|
+
}
|
|
152
205
|
/**
|
|
153
206
|
* Thrown by prove() when the server returns 409 because a pin is no longer
|
|
154
207
|
* in the "pinned" lifecycle state. The caller should refresh the key's setup
|
|
@@ -170,6 +223,18 @@ export declare class TagTimeoutError extends Error {
|
|
|
170
223
|
readonly lastStatus: string;
|
|
171
224
|
constructor(jobId: string, lastStatus: string);
|
|
172
225
|
}
|
|
226
|
+
/** Thrown by prove() when the async proof job reaches the "prove-failed" state. */
|
|
227
|
+
export declare class ProveFailedError extends Error {
|
|
228
|
+
readonly jobId: string;
|
|
229
|
+
readonly reason: string;
|
|
230
|
+
constructor(jobId: string, reason: string);
|
|
231
|
+
}
|
|
232
|
+
/** Thrown by prove() when the job hasn't reached a terminal state within the configured timeout. */
|
|
233
|
+
export declare class ProveTimeoutError extends Error {
|
|
234
|
+
readonly jobId: string;
|
|
235
|
+
readonly lastStatus: string;
|
|
236
|
+
constructor(jobId: string, lastStatus: string);
|
|
237
|
+
}
|
|
173
238
|
/**
|
|
174
239
|
* Decode a raw /setup response into a ParsedSetup.
|
|
175
240
|
*
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAEhB,eAAe,EACf,WAAW,EAGX,gBAAgB,EAChB,eAAe,EAEf,cAAc,EAEd,oBAAoB,EACpB,WAAW,EAEZ,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CACrD;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* new PinionProverClient("https://hydrogen.pinion.build/prover", { getToken })
|
|
10
10
|
*/
|
|
11
11
|
import { buildChallenge, base64ToBytes, superBlockId } from './challenge.js';
|
|
12
|
-
import {
|
|
12
|
+
import { verifyProofResult, parseClientSetup } from './verify.js';
|
|
13
13
|
import { CID } from 'multiformats/cid';
|
|
14
14
|
export class PinionProverClient {
|
|
15
15
|
baseUrl;
|
|
@@ -87,7 +87,7 @@ export class PinionProverClient {
|
|
|
87
87
|
for (;;) {
|
|
88
88
|
const status = await this.tagStatus(jobId);
|
|
89
89
|
if (status.progress)
|
|
90
|
-
options.onProgress?.(status.progress);
|
|
90
|
+
options.onProgress?.(status.progress, status.status);
|
|
91
91
|
if (status.status === 'tag-done') {
|
|
92
92
|
return { block_ids: status.block_ids, block_count: status.block_count };
|
|
93
93
|
}
|
|
@@ -128,15 +128,34 @@ export class PinionProverClient {
|
|
|
128
128
|
/**
|
|
129
129
|
* POST /prove — unauthenticated, the server resolves the account from key_id.
|
|
130
130
|
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
131
|
+
* Proving is asynchronous: this posts the challenge, then polls GET
|
|
132
|
+
* /prove/:job_id until the job reaches a terminal state, so the returned
|
|
133
|
+
* promise resolves only once a proof is actually ready (matching the
|
|
134
|
+
* pre-async blocking behavior). Returns the raw proof bytes. Most callers
|
|
135
|
+
* should use audit() instead, which also cryptographically verifies the
|
|
136
|
+
* response.
|
|
133
137
|
*
|
|
134
138
|
* @param keyId Challenge key ID.
|
|
135
139
|
* @param roots CID strings to prove, in the same order as the challenge.
|
|
136
140
|
* @param challenge base64(JSON(WireChallenge)) from buildChallenge().
|
|
137
|
-
* @param challengeId Optional idempotency key
|
|
141
|
+
* @param challengeId Optional idempotency key. If a caller's own retry
|
|
142
|
+
* logic re-calls prove() for what is logically the
|
|
143
|
+
* same request (e.g. after a timeout with an unclear
|
|
144
|
+
* outcome), passing the same challengeId across those
|
|
145
|
+
* attempts makes the server return the original job
|
|
146
|
+
* instead of starting a redundant one. Leave unset for
|
|
147
|
+
* normal audit rounds — each is a fresh, independently
|
|
148
|
+
* random challenge, which should never be deduped
|
|
149
|
+
* against a previous one.
|
|
150
|
+
*
|
|
151
|
+
* Throws PinNotActiveError (409, checked synchronously before any job is
|
|
152
|
+
* created), ProveFailedError if the job reaches "prove-failed", or
|
|
153
|
+
* ProveTimeoutError if it doesn't reach a terminal state within
|
|
154
|
+
* options.timeoutMs.
|
|
138
155
|
*/
|
|
139
|
-
async prove(keyId, roots, challenge, challengeId) {
|
|
156
|
+
async prove(keyId, roots, challenge, challengeId, options = {}) {
|
|
157
|
+
const pollIntervalMs = options.pollIntervalMs ?? 500;
|
|
158
|
+
const timeoutMs = options.timeoutMs ?? 60 * 1000;
|
|
140
159
|
const resp = await fetch(`${this.baseUrl}/prove`, {
|
|
141
160
|
method: 'POST',
|
|
142
161
|
headers: { 'Content-Type': 'application/json' },
|
|
@@ -149,8 +168,25 @@ export class PinionProverClient {
|
|
|
149
168
|
if (!resp.ok) {
|
|
150
169
|
throw new ProverError(resp.status, await resp.text().catch(() => ''));
|
|
151
170
|
}
|
|
152
|
-
const
|
|
153
|
-
|
|
171
|
+
const { job_id: jobId } = await parseJsonBody(resp);
|
|
172
|
+
const deadline = Date.now() + timeoutMs;
|
|
173
|
+
for (;;) {
|
|
174
|
+
const status = await this.proveStatus(jobId);
|
|
175
|
+
if (status.status === 'prove-done') {
|
|
176
|
+
return base64ToBytes(status.proof ?? '');
|
|
177
|
+
}
|
|
178
|
+
if (status.status === 'prove-failed') {
|
|
179
|
+
throw new ProveFailedError(jobId, status.error ?? 'unknown error');
|
|
180
|
+
}
|
|
181
|
+
if (Date.now() >= deadline) {
|
|
182
|
+
throw new ProveTimeoutError(jobId, status.status);
|
|
183
|
+
}
|
|
184
|
+
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/** Poll the status of a proof job started by prove(). Exposed for callers that want to observe progress without waiting on prove()'s full promise. */
|
|
188
|
+
async proveStatus(jobId) {
|
|
189
|
+
return this.get(`/prove/${encodeURIComponent(jobId)}`);
|
|
154
190
|
}
|
|
155
191
|
/**
|
|
156
192
|
* Run one audit round against a pre-fetched setup.
|
|
@@ -190,13 +226,13 @@ export class PinionProverClient {
|
|
|
190
226
|
const challengeSize = Math.max(1, Math.round((challengePct / 100) * allBlockIds.length));
|
|
191
227
|
const challenge = buildChallenge(challengeSize, allBlockIds.length);
|
|
192
228
|
const proofBytes = await this.prove(keyId, targetRoots, challenge);
|
|
193
|
-
const
|
|
229
|
+
const verification = verifyProofResult({
|
|
194
230
|
clientSetup: setup.clientSetup,
|
|
195
231
|
blockIds: allBlockIds,
|
|
196
232
|
challenge,
|
|
197
233
|
proofBytes,
|
|
198
234
|
});
|
|
199
|
-
return { pass, blocksChecked: challengeSize, keyId, roots: targetRoots };
|
|
235
|
+
return { pass: verification.verified, verification, blocksChecked: challengeSize, keyId, roots: targetRoots };
|
|
200
236
|
}
|
|
201
237
|
// ---------------------------------------------------------------------------
|
|
202
238
|
// HTTP helpers
|
|
@@ -207,7 +243,7 @@ export class PinionProverClient {
|
|
|
207
243
|
});
|
|
208
244
|
if (!resp.ok)
|
|
209
245
|
throw await this.httpError(resp);
|
|
210
|
-
return resp
|
|
246
|
+
return parseJsonBody(resp);
|
|
211
247
|
}
|
|
212
248
|
async post(path, body) {
|
|
213
249
|
const resp = await fetch(`${this.baseUrl}${path}`, {
|
|
@@ -219,7 +255,7 @@ export class PinionProverClient {
|
|
|
219
255
|
throw await this.httpError(resp);
|
|
220
256
|
if (resp.status === 204)
|
|
221
257
|
return undefined;
|
|
222
|
-
return resp
|
|
258
|
+
return parseJsonBody(resp);
|
|
223
259
|
}
|
|
224
260
|
async authDelete(path) {
|
|
225
261
|
const resp = await fetch(`${this.baseUrl}${path}`, {
|
|
@@ -239,6 +275,26 @@ export class PinionProverClient {
|
|
|
239
275
|
}
|
|
240
276
|
}
|
|
241
277
|
// ---------------------------------------------------------------------------
|
|
278
|
+
// Shared response parsing
|
|
279
|
+
// ---------------------------------------------------------------------------
|
|
280
|
+
/**
|
|
281
|
+
* Parses resp's body as JSON, throwing MalformedResponseError (rather than
|
|
282
|
+
* a raw, untyped SyntaxError) if it isn't well-formed — e.g. a proxy or
|
|
283
|
+
* load balancer returning an HTML error page with a 200 status, or a
|
|
284
|
+
* response truncated mid-body. A non-2xx status is expected to have already
|
|
285
|
+
* been handled by the caller before this is reached; this only guards
|
|
286
|
+
* against a *successful* response whose body isn't what it claims to be.
|
|
287
|
+
*/
|
|
288
|
+
async function parseJsonBody(resp) {
|
|
289
|
+
const text = await resp.text();
|
|
290
|
+
try {
|
|
291
|
+
return JSON.parse(text);
|
|
292
|
+
}
|
|
293
|
+
catch (cause) {
|
|
294
|
+
throw new MalformedResponseError(resp.status, text.slice(0, 200), cause);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
// ---------------------------------------------------------------------------
|
|
242
298
|
// Errors
|
|
243
299
|
// ---------------------------------------------------------------------------
|
|
244
300
|
export class ProverError extends Error {
|
|
@@ -251,6 +307,26 @@ export class ProverError extends Error {
|
|
|
251
307
|
this.name = 'ProverError';
|
|
252
308
|
}
|
|
253
309
|
}
|
|
310
|
+
/**
|
|
311
|
+
* Thrown when a response has a successful HTTP status but a body that
|
|
312
|
+
* isn't valid JSON — this is what an infra problem often looks like from
|
|
313
|
+
* the client's perspective (a proxy's HTML error page returned with a 200,
|
|
314
|
+
* a response cut off mid-stream), as opposed to a clean non-2xx status
|
|
315
|
+
* (which surfaces as ProverError instead). bodyPreview is truncated to 200
|
|
316
|
+
* characters so a large unexpected body doesn't bloat error logs/messages.
|
|
317
|
+
*/
|
|
318
|
+
export class MalformedResponseError extends Error {
|
|
319
|
+
status;
|
|
320
|
+
bodyPreview;
|
|
321
|
+
cause;
|
|
322
|
+
constructor(status, bodyPreview, cause) {
|
|
323
|
+
super(`pinion-prover: malformed response body (HTTP ${status}): ${bodyPreview}`);
|
|
324
|
+
this.status = status;
|
|
325
|
+
this.bodyPreview = bodyPreview;
|
|
326
|
+
this.cause = cause;
|
|
327
|
+
this.name = 'MalformedResponseError';
|
|
328
|
+
}
|
|
329
|
+
}
|
|
254
330
|
/**
|
|
255
331
|
* Thrown by prove() when the server returns 409 because a pin is no longer
|
|
256
332
|
* in the "pinned" lifecycle state. The caller should refresh the key's setup
|
|
@@ -286,6 +362,28 @@ export class TagTimeoutError extends Error {
|
|
|
286
362
|
this.name = 'TagTimeoutError';
|
|
287
363
|
}
|
|
288
364
|
}
|
|
365
|
+
/** Thrown by prove() when the async proof job reaches the "prove-failed" state. */
|
|
366
|
+
export class ProveFailedError extends Error {
|
|
367
|
+
jobId;
|
|
368
|
+
reason;
|
|
369
|
+
constructor(jobId, reason) {
|
|
370
|
+
super(`prove job ${jobId} failed: ${reason}`);
|
|
371
|
+
this.jobId = jobId;
|
|
372
|
+
this.reason = reason;
|
|
373
|
+
this.name = 'ProveFailedError';
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
/** Thrown by prove() when the job hasn't reached a terminal state within the configured timeout. */
|
|
377
|
+
export class ProveTimeoutError extends Error {
|
|
378
|
+
jobId;
|
|
379
|
+
lastStatus;
|
|
380
|
+
constructor(jobId, lastStatus) {
|
|
381
|
+
super(`prove job ${jobId} timed out (last status: ${lastStatus})`);
|
|
382
|
+
this.jobId = jobId;
|
|
383
|
+
this.lastStatus = lastStatus;
|
|
384
|
+
this.name = 'ProveTimeoutError';
|
|
385
|
+
}
|
|
386
|
+
}
|
|
289
387
|
// ---------------------------------------------------------------------------
|
|
290
388
|
// Setup parsing (exported for use without the full client)
|
|
291
389
|
// ---------------------------------------------------------------------------
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { PinionProverClient, ProverError, PinNotActiveError, TagFailedError, TagTimeoutError, parseSetupResponse, } from './client.js';
|
|
2
|
-
export type { PinionProverClientOptions, AuditOptions, TagOptions } from './client.js';
|
|
3
|
-
export { verifyProof, parseClientSetup } from './verify.js';
|
|
1
|
+
export { PinionProverClient, ProverError, MalformedResponseError, PinNotActiveError, TagFailedError, TagTimeoutError, ProveFailedError, ProveTimeoutError, parseSetupResponse, } from './client.js';
|
|
2
|
+
export type { PinionProverClientOptions, AuditOptions, TagOptions, ProveOptions } from './client.js';
|
|
3
|
+
export { verifyProof, verifyProofResult, parseClientSetup } from './verify.js';
|
|
4
4
|
export type { VerifyParams } from './verify.js';
|
|
5
5
|
export { buildChallenge, deriveIndicesAndCoeffs, blockHashG1, superBlockId, base64ToBytes, uint8ToBase64, BN254_ORDER, } from './challenge.js';
|
|
6
6
|
export { g1FromBytes, g2FromBytes, g1ScalarMult, g1Add, atePairing, fp12Equal, bytesToBigInt, G1_BASE, G2_BASE, } from './bn254.js';
|
|
7
7
|
export type { G1Point, G2Point, Fp12Elem } from './bn254.js';
|
|
8
|
-
export type { WireClientSetup, WireChallenge, WireProof, ProveResponse, RawTaggedRoot, RawSetupResponse, ParsedRoot, ParsedSetup, ChallengeKeyInfo, CreateKeyResponse, CreateKeyResult, TagResponse, TagJobResponse, TagJobProgress, TagJobStatusResponse, TagJobListEntry, TagJobListResponse, AuditResult, } from './types.js';
|
|
8
|
+
export type { WireClientSetup, WireChallenge, WireProof, ProveResponse, ProveJobResponse, ProveJobStatusResponse, RawTaggedRoot, RawSetupResponse, ParsedRoot, ParsedSetup, ChallengeKeyInfo, CreateKeyResponse, CreateKeyResult, TagResponse, TagJobResponse, TagJobProgress, TagJobStatusResponse, TagJobListEntry, TagJobListResponse, ProofVerificationResult, AuditResult, } from './types.js';
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,yBAAyB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,yBAAyB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGrG,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/E,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,KAAK,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,OAAO,EACP,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG7D,YAAY,EACV,eAAe,EACf,aAAa,EACb,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// High-level client
|
|
2
|
-
export { PinionProverClient, ProverError, PinNotActiveError, TagFailedError, TagTimeoutError, parseSetupResponse, } from './client.js';
|
|
2
|
+
export { PinionProverClient, ProverError, MalformedResponseError, PinNotActiveError, TagFailedError, TagTimeoutError, ProveFailedError, ProveTimeoutError, parseSetupResponse, } from './client.js';
|
|
3
3
|
// Verification
|
|
4
|
-
export { verifyProof, parseClientSetup } from './verify.js';
|
|
4
|
+
export { verifyProof, verifyProofResult, parseClientSetup } from './verify.js';
|
|
5
5
|
// Challenge construction
|
|
6
6
|
export { buildChallenge, deriveIndicesAndCoeffs, blockHashG1, superBlockId, base64ToBytes, uint8ToBase64, BN254_ORDER, } from './challenge.js';
|
|
7
7
|
// BN254 primitives (for advanced use / other protocols)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAGrB,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAGrB,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/E,yBAAyB;AACzB,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAExB,wDAAwD;AACxD,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,KAAK,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,OAAO,EACP,OAAO,GACR,MAAM,YAAY,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -36,11 +36,40 @@ export interface WireProof {
|
|
|
36
36
|
sigma: string;
|
|
37
37
|
mu: string[];
|
|
38
38
|
}
|
|
39
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* JSON response from POST /prove.
|
|
41
|
+
*
|
|
42
|
+
* @deprecated Proving is now asynchronous. POST /prove returns a
|
|
43
|
+
* ProveJobResponse immediately; poll GET /prove/:job_id for a
|
|
44
|
+
* ProveJobStatusResponse, which carries these same fields once done.
|
|
45
|
+
*/
|
|
40
46
|
export interface ProveResponse {
|
|
41
47
|
challenge_id: string;
|
|
42
48
|
proof: string;
|
|
43
49
|
}
|
|
50
|
+
/** Returned by POST /prove: the proof job has been created and queued. */
|
|
51
|
+
export interface ProveJobResponse {
|
|
52
|
+
job_id: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Raw status response from GET /prove/:job_id. This endpoint is
|
|
56
|
+
* unauthenticated, same as POST /prove — job_id is a fresh, unguessable
|
|
57
|
+
* identifier (or, when the request carried a challenge_id, deterministic
|
|
58
|
+
* from (key_id, challenge_id)), so possession of it is the only
|
|
59
|
+
* authorization this route needs.
|
|
60
|
+
*
|
|
61
|
+
* `status` is one of "prove-queued" | "prove-running" | "prove-done" |
|
|
62
|
+
* "prove-failed". `challenge_id` echoes the value from the original
|
|
63
|
+
* request. `proof` is populated only once `status` is "prove-done" — the
|
|
64
|
+
* same field ProveResponse used to return synchronously. `error` is
|
|
65
|
+
* populated only once `status` is "prove-failed".
|
|
66
|
+
*/
|
|
67
|
+
export interface ProveJobStatusResponse {
|
|
68
|
+
status: string;
|
|
69
|
+
challenge_id?: string;
|
|
70
|
+
proof?: string;
|
|
71
|
+
error?: string;
|
|
72
|
+
}
|
|
44
73
|
/**
|
|
45
74
|
* One root entry in the setup response. Exactly one of block_ids/block_count
|
|
46
75
|
* is populated: block_ids for protocols addressed by real IPFS block CID
|
|
@@ -173,10 +202,47 @@ export interface TagJobListEntry {
|
|
|
173
202
|
export interface TagJobListResponse {
|
|
174
203
|
jobs: TagJobListEntry[];
|
|
175
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* Result of verifyProofResult() (see verify.ts). Distinguishes a genuine
|
|
207
|
+
* cryptographic failure from one that couldn't even be evaluated:
|
|
208
|
+
*
|
|
209
|
+
* - { verified: false, reason: 'pairing-mismatch' } means the pairing
|
|
210
|
+
* equation was evaluated and did not hold — the server either does not
|
|
211
|
+
* hold the data or returned a deliberately bad proof. This is the only
|
|
212
|
+
* case that should ever be reported to a user as evidence of possible
|
|
213
|
+
* data loss.
|
|
214
|
+
* - { verified: false, reason: 'malformed-input', cause } means the
|
|
215
|
+
* equation was never evaluated at all — proofBytes wasn't valid
|
|
216
|
+
* WireProof JSON, a curve point failed to decode, etc. This is what an
|
|
217
|
+
* infra error looks like from here: a 5xx with an HTML body, a proxy
|
|
218
|
+
* timeout page, a truncated response — none of which say anything about
|
|
219
|
+
* whether the server actually holds the data.
|
|
220
|
+
*
|
|
221
|
+
* verifyProof() collapses both false cases into a plain `false`, which is
|
|
222
|
+
* why it's the deprecated, lower-fidelity option.
|
|
223
|
+
*/
|
|
224
|
+
export type ProofVerificationResult = {
|
|
225
|
+
verified: true;
|
|
226
|
+
} | {
|
|
227
|
+
verified: false;
|
|
228
|
+
reason: 'pairing-mismatch';
|
|
229
|
+
} | {
|
|
230
|
+
verified: false;
|
|
231
|
+
reason: 'malformed-input';
|
|
232
|
+
cause: unknown;
|
|
233
|
+
};
|
|
176
234
|
/** Result of a complete audit round (challenge → prove → cryptographic verify). */
|
|
177
235
|
export interface AuditResult {
|
|
178
236
|
/** true only if the pairing check e(σ,G₂) == e(A,v) passed. */
|
|
179
237
|
pass: boolean;
|
|
238
|
+
/**
|
|
239
|
+
* The richer verification outcome pass was derived from — check this to
|
|
240
|
+
* distinguish a real cryptographic failure (reason: 'pairing-mismatch')
|
|
241
|
+
* from one that couldn't be evaluated at all (reason: 'malformed-input').
|
|
242
|
+
* Only the former should ever be reported to a user as evidence of
|
|
243
|
+
* possible data loss.
|
|
244
|
+
*/
|
|
245
|
+
verification: ProofVerificationResult;
|
|
180
246
|
/** Number of blocks sampled in this challenge round. */
|
|
181
247
|
blocksChecked: number;
|
|
182
248
|
keyId: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,EAAE,CAAC;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,EAAE,CAAC;CACd;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/verify.d.ts
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
*
|
|
25
25
|
* Ports verifyPubCore() in storage-proofs/por/sw/pub.go.
|
|
26
26
|
*/
|
|
27
|
-
import type { WireClientSetup } from './types.js';
|
|
27
|
+
import type { WireClientSetup, ProofVerificationResult } from './types.js';
|
|
28
28
|
export interface VerifyParams {
|
|
29
29
|
/**
|
|
30
30
|
* The parsed WireClientSetup from the client_setup blob.
|
|
@@ -48,15 +48,30 @@ export interface VerifyParams {
|
|
|
48
48
|
*/
|
|
49
49
|
proofBytes: Uint8Array;
|
|
50
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Cryptographically verify a storage proof returned by pinion-prover,
|
|
53
|
+
* distinguishing a real pairing-equation failure from one that couldn't be
|
|
54
|
+
* evaluated at all (malformed/truncated response, wrong shape, etc.) —
|
|
55
|
+
* see ProofVerificationResult's doc comment for why that distinction
|
|
56
|
+
* matters. This is what the website's StorageHealthContext should call
|
|
57
|
+
* instead of checking resp.ok alone — HTTP 200 only proves the server
|
|
58
|
+
* responded, not that it holds the data, and even a successful response
|
|
59
|
+
* doesn't guarantee proofBytes is well-formed enough to evaluate.
|
|
60
|
+
*/
|
|
61
|
+
export declare function verifyProofResult(params: VerifyParams): ProofVerificationResult;
|
|
51
62
|
/**
|
|
52
63
|
* Cryptographically verify a storage proof returned by pinion-prover.
|
|
53
64
|
*
|
|
54
65
|
* Returns true if and only if the pairing equation holds. A false result means
|
|
55
|
-
* the server either does not hold the data
|
|
66
|
+
* the server either does not hold the data, returned a deliberately bad proof,
|
|
67
|
+
* OR the response couldn't even be parsed as a proof at all — those last two
|
|
68
|
+
* cases are indistinguishable through this function.
|
|
56
69
|
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
70
|
+
* @deprecated Use verifyProofResult() instead — it distinguishes a genuine
|
|
71
|
+
* cryptographic failure ({ reason: 'pairing-mismatch' }) from a
|
|
72
|
+
* malformed/unevaluable response ({ reason: 'malformed-input' }, e.g. an
|
|
73
|
+
* infra error masquerading as a proof). Reporting the latter to a user as
|
|
74
|
+
* "proof failed" implies data loss that may not have happened at all.
|
|
60
75
|
*/
|
|
61
76
|
export declare function verifyProof(params: VerifyParams): boolean;
|
|
62
77
|
/**
|
package/dist/verify.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAcH,OAAO,KAAK,EAAE,eAAe,EAA4B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAcH,OAAO,KAAK,EAAE,eAAe,EAA4B,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErG,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,WAAW,EAAE,eAAe,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,EAAE,UAAU,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,uBAAuB,CAQ/E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAEzD;AAoDD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,GAAG,eAAe,CAE3E"}
|
package/dist/verify.js
CHANGED
|
@@ -26,23 +26,42 @@
|
|
|
26
26
|
*/
|
|
27
27
|
import { atePairing, fp12Equal, g1Add, g1FromBytes, g1ScalarMult, g2FromBytes, bytesToBigInt, G2_BASE, } from './bn254.js';
|
|
28
28
|
import { base64ToBytes, blockHashG1, deriveIndicesAndCoeffs } from './challenge.js';
|
|
29
|
+
/**
|
|
30
|
+
* Cryptographically verify a storage proof returned by pinion-prover,
|
|
31
|
+
* distinguishing a real pairing-equation failure from one that couldn't be
|
|
32
|
+
* evaluated at all (malformed/truncated response, wrong shape, etc.) —
|
|
33
|
+
* see ProofVerificationResult's doc comment for why that distinction
|
|
34
|
+
* matters. This is what the website's StorageHealthContext should call
|
|
35
|
+
* instead of checking resp.ok alone — HTTP 200 only proves the server
|
|
36
|
+
* responded, not that it holds the data, and even a successful response
|
|
37
|
+
* doesn't guarantee proofBytes is well-formed enough to evaluate.
|
|
38
|
+
*/
|
|
39
|
+
export function verifyProofResult(params) {
|
|
40
|
+
let result;
|
|
41
|
+
try {
|
|
42
|
+
result = _verifyProof(params);
|
|
43
|
+
}
|
|
44
|
+
catch (cause) {
|
|
45
|
+
return { verified: false, reason: 'malformed-input', cause };
|
|
46
|
+
}
|
|
47
|
+
return result ? { verified: true } : { verified: false, reason: 'pairing-mismatch' };
|
|
48
|
+
}
|
|
29
49
|
/**
|
|
30
50
|
* Cryptographically verify a storage proof returned by pinion-prover.
|
|
31
51
|
*
|
|
32
52
|
* Returns true if and only if the pairing equation holds. A false result means
|
|
33
|
-
* the server either does not hold the data
|
|
53
|
+
* the server either does not hold the data, returned a deliberately bad proof,
|
|
54
|
+
* OR the response couldn't even be parsed as a proof at all — those last two
|
|
55
|
+
* cases are indistinguishable through this function.
|
|
34
56
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
57
|
+
* @deprecated Use verifyProofResult() instead — it distinguishes a genuine
|
|
58
|
+
* cryptographic failure ({ reason: 'pairing-mismatch' }) from a
|
|
59
|
+
* malformed/unevaluable response ({ reason: 'malformed-input' }, e.g. an
|
|
60
|
+
* infra error masquerading as a proof). Reporting the latter to a user as
|
|
61
|
+
* "proof failed" implies data loss that may not have happened at all.
|
|
38
62
|
*/
|
|
39
63
|
export function verifyProof(params) {
|
|
40
|
-
|
|
41
|
-
return _verifyProof(params);
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
64
|
+
return verifyProofResult(params).verified;
|
|
46
65
|
}
|
|
47
66
|
function _verifyProof(params) {
|
|
48
67
|
const { clientSetup, blockIds, challenge, proofBytes } = params;
|
package/dist/verify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EACL,UAAU,EACV,SAAS,EACT,KAAK,EACL,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,OAAO,GAER,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AA2BpF;;;;;;;;;GASG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pinionengineering/prover-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "JavaScript/TypeScript client for the pinion-prover storage-proof service. Builds SW-Pub challenges and cryptographically verifies proofs using BN254 pairings.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|