@aztec/prover-client 0.87.1 → 0.87.2-nightly.20250524
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/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +5 -3
- package/dest/orchestrator/epoch-proving-state.d.ts +1 -1
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/epoch-proving-state.js +4 -3
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +14 -9
- package/dest/orchestrator/tx-proving-state.d.ts +2 -2
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +3 -3
- package/dest/proving_broker/broker_prover_facade.d.ts +3 -2
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.js +9 -2
- package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.js +2 -1
- package/dest/test/mock_prover.d.ts +2 -1
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +3 -3
- package/package.json +15 -15
- package/src/orchestrator/block-proving-state.ts +4 -8
- package/src/orchestrator/epoch-proving-state.ts +9 -13
- package/src/orchestrator/orchestrator.ts +14 -12
- package/src/orchestrator/tx-proving-state.ts +11 -6
- package/src/proving_broker/broker_prover_facade.ts +12 -3
- package/src/proving_broker/proving_job_controller.ts +2 -1
- package/src/test/mock_prover.ts +10 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,wCAAwC,EAC7C,KAAK,yCAAyC,
|
|
1
|
+
{"version":3,"file":"block-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-proving-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { SpongeBlob } from '@aztec/blob-lib';
|
|
2
|
-
import { BLOBS_PER_BLOCK, FIELDS_PER_BLOB, NUM_BASE_PARITY_PER_ROOT_PARITY
|
|
2
|
+
import { BLOBS_PER_BLOCK, FIELDS_PER_BLOB, NUM_BASE_PARITY_PER_ROOT_PARITY } from '@aztec/constants';
|
|
3
3
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
4
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
-
import {
|
|
5
|
+
import { UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
6
6
|
import { getVKIndex, getVKSiblingPath, getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
7
7
|
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
8
8
|
import { RootParityInput, RootParityInputs } from '@aztec/stdlib/parity';
|
|
9
9
|
import { BlockRootRollupBlobData, BlockRootRollupData, BlockRootRollupInputs, ConstantRollupData, EmptyBlockRootRollupInputs, MergeRollupInputs, PreviousRollupData, SingleTxBlockRootRollupInputs } from '@aztec/stdlib/rollup';
|
|
10
10
|
import { StateReference } from '@aztec/stdlib/tx';
|
|
11
|
+
import { VkData } from '@aztec/stdlib/vks';
|
|
11
12
|
import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-helpers.js';
|
|
12
13
|
/**
|
|
13
14
|
* The current state of the proving schedule for a given block. Managed by ProvingState.
|
|
@@ -265,7 +266,8 @@ import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-
|
|
|
265
266
|
}
|
|
266
267
|
#getPreviousRollupData({ inputs, proof, verificationKey }) {
|
|
267
268
|
const leafIndex = getVKIndex(verificationKey.keyAsFields);
|
|
268
|
-
|
|
269
|
+
const vkData = new VkData(verificationKey, leafIndex, getVKSiblingPath(leafIndex));
|
|
270
|
+
return new PreviousRollupData(inputs, proof, vkData);
|
|
269
271
|
}
|
|
270
272
|
#getRootParityData({ inputs, proof, verificationKey }) {
|
|
271
273
|
return new RootParityInput(proof, verificationKey.keyAsFields, getVKSiblingPath(getVKIndex(verificationKey)), inputs);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ARCHIVE_HEIGHT, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
|
|
2
2
|
import type { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import type { Tuple } from '@aztec/foundation/serialize';
|
|
4
4
|
import { type TreeNodeLocation } from '@aztec/foundation/trees';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { MembershipWitness, UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
1
|
+
import { UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
3
2
|
import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
4
3
|
import { BlockMergeRollupInputs, PreviousRollupBlockData, RootRollupInputs } from '@aztec/stdlib/rollup';
|
|
4
|
+
import { VkData } from '@aztec/stdlib/vks';
|
|
5
5
|
import { BlockProvingState } from './block-proving-state.js';
|
|
6
6
|
var PROVING_STATE_LIFECYCLE = /*#__PURE__*/ function(PROVING_STATE_LIFECYCLE) {
|
|
7
7
|
PROVING_STATE_LIFECYCLE[PROVING_STATE_LIFECYCLE["PROVING_STATE_CREATED"] = 0] = "PROVING_STATE_CREATED";
|
|
@@ -158,6 +158,7 @@ var PROVING_STATE_LIFECYCLE = /*#__PURE__*/ function(PROVING_STATE_LIFECYCLE) {
|
|
|
158
158
|
}
|
|
159
159
|
#getPreviousRollupData({ inputs, proof, verificationKey }) {
|
|
160
160
|
const leafIndex = getVKIndex(verificationKey.keyAsFields);
|
|
161
|
-
|
|
161
|
+
const vkData = new VkData(verificationKey, leafIndex, getVKSiblingPath(leafIndex));
|
|
162
|
+
return new PreviousRollupBlockData(inputs, proof, vkData);
|
|
162
163
|
}
|
|
163
164
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAS9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EACV,WAAW,EACX,wBAAwB,EAGxB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAUzC,OAAO,EAAE,KAAK,sBAAsB,EAAgB,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,KAAK,EAAE,EAAmB,MAAM,kBAAkB,CAAC;AACtH,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,MAAM,EAIZ,MAAM,yBAAyB,CAAC;AAqBjC;;;;;;;;;GASG;AAEH;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IASnD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV3B,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,kBAAkB,CAAyB;IAEnD,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,GAAG,CAAqD;gBAGtD,UAAU,EAAE,wBAAwB,EACpC,MAAM,EAAE,mBAAmB,EAClB,QAAQ,EAAE,EAAE,EAC7B,eAAe,GAAE,eAAsC;IAKzD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEM,WAAW,IAAI,EAAE;IAIjB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IAW1F;;;;;OAKG;IAIU,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,WAAW;IA2CnH;;;OAGG;IAIU,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDtD;;;OAGG;IAEU,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE;IAcxC;;;OAGG;IAIU,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBnG,oDAAoD;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;YAQzB,UAAU;cAqCR,kCAAkC,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,sBAAsB;IAWvG;;OAEG;IACI,MAAM;IAQb;;OAEG;IACU,aAAa;;;;IAoB1B;;;;OAIG;YACW,kBAAkB;IAShC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;YAwDT,uBAAuB;YA+BvB,uBAAuB;IAmCrC,OAAO,CAAC,iBAAiB;IA8CzB,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,kBAAkB;YA0BZ,sBAAsB;IAmEpC,OAAO,CAAC,wBAAwB;IAuBhC,OAAO,CAAC,gCAAgC;IAUxC,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,uBAAuB;YAyBjB,mBAAmB;IA6BjC,OAAO,CAAC,iBAAiB;YA4BX,8BAA8B;YAa9B,8BAA8B;IAyB5C,OAAO,CAAC,mCAAmC;IAa3C,OAAO,CAAC,yBAAyB;IASjC;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAmDjB,OAAO,CAAC,4BAA4B;CAWrC"}
|
|
@@ -4,7 +4,7 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
4
4
|
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
}
|
|
7
|
-
import {
|
|
7
|
+
import { L1_TO_L2_MSG_SUBTREE_HEIGHT, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUM_BASE_PARITY_PER_ROOT_PARITY } from '@aztec/constants';
|
|
8
8
|
import { padArrayEnd, times } from '@aztec/foundation/collection';
|
|
9
9
|
import { AbortError } from '@aztec/foundation/error';
|
|
10
10
|
import { Fr } from '@aztec/foundation/fields';
|
|
@@ -14,13 +14,12 @@ import { assertLength } from '@aztec/foundation/serialize';
|
|
|
14
14
|
import { pushTestData } from '@aztec/foundation/testing';
|
|
15
15
|
import { elapsed } from '@aztec/foundation/timer';
|
|
16
16
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
17
|
+
import { readAvmMinimalPublicTxInputsFromFile } from '@aztec/simulator/public/fixtures';
|
|
17
18
|
import { L2Block } from '@aztec/stdlib/block';
|
|
18
19
|
import { BaseParityInputs } from '@aztec/stdlib/parity';
|
|
19
|
-
import { makeEmptyRecursiveProof } from '@aztec/stdlib/proofs';
|
|
20
20
|
import { EmptyBlockRootRollupInputs, PrivateBaseRollupInputs, SingleTxBlockRootRollupInputs, TubeInputs } from '@aztec/stdlib/rollup';
|
|
21
21
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
22
22
|
import { toNumBlobFields } from '@aztec/stdlib/tx';
|
|
23
|
-
import { VerificationKeyData } from '@aztec/stdlib/vks';
|
|
24
23
|
import { Attributes, getTelemetryClient, trackSpan, wrapCallbackInSpan } from '@aztec/telemetry-client';
|
|
25
24
|
import { inspect } from 'util';
|
|
26
25
|
import { buildBaseRollupHints, buildHeaderAndBodyFromTxs, getLastSiblingPath, getRootTreeSiblingPath, getSubtreeSiblingPath, getTreeSnapshot, validatePartialState, validateTx } from './block-building-helpers.js';
|
|
@@ -633,17 +632,23 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
633
632
|
}, async (signal)=>{
|
|
634
633
|
const inputs = txProvingState.getAvmInputs();
|
|
635
634
|
try {
|
|
636
|
-
|
|
635
|
+
// TODO(#14234)[Unconditional PIs validation]: Remove the whole try-catch logic and
|
|
636
|
+
// just keep the next line but removing the second argument (false).
|
|
637
|
+
return await this.prover.getAvmProof(inputs, false, signal, provingState.epochNumber);
|
|
637
638
|
} catch (err) {
|
|
638
639
|
if (process.env.AVM_PROVING_STRICT) {
|
|
639
640
|
logger.error(`Error thrown when proving AVM circuit with AVM_PROVING_STRICT on`, err);
|
|
640
641
|
throw err;
|
|
641
642
|
} else {
|
|
642
|
-
logger.warn(`Error thrown when proving AVM circuit but AVM_PROVING_STRICT is off.
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
643
|
+
logger.warn(`Error thrown when proving AVM circuit but AVM_PROVING_STRICT is off. Use snapshotted
|
|
644
|
+
AVM inputs and carrying on. ${inspect(err)}.`);
|
|
645
|
+
try {
|
|
646
|
+
const snapshotAvmPrivateInputs = readAvmMinimalPublicTxInputsFromFile();
|
|
647
|
+
return await this.prover.getAvmProof(snapshotAvmPrivateInputs, true, signal, provingState.epochNumber);
|
|
648
|
+
} catch (err) {
|
|
649
|
+
logger.error(`Error thrown when proving snapshotted AVM inputs.`, err);
|
|
650
|
+
throw err;
|
|
651
|
+
}
|
|
647
652
|
}
|
|
648
653
|
}
|
|
649
654
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, type TUBE_PROOF_LENGTH } from '@aztec/constants';
|
|
2
2
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
3
3
|
import type { ProofAndVerificationKey } from '@aztec/stdlib/interfaces/server';
|
|
4
4
|
import { type BaseRollupHints, PrivateBaseRollupInputs, PublicBaseRollupInputs, TubeInputs } from '@aztec/stdlib/rollup';
|
|
@@ -29,6 +29,6 @@ export declare class TxProvingState {
|
|
|
29
29
|
inputs: PrivateBaseRollupInputs;
|
|
30
30
|
};
|
|
31
31
|
setTubeProof(tubeProofAndVk: ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>): void;
|
|
32
|
-
setAvmProof(avmProofAndVk: ProofAndVerificationKey<typeof
|
|
32
|
+
setAvmProof(avmProofAndVk: ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>): void;
|
|
33
33
|
}
|
|
34
34
|
//# sourceMappingURL=tx-proving-state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/tx-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"tx-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/tx-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EAEpC,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAEL,KAAK,eAAe,EAEpB,uBAAuB,EAGvB,sBAAsB,EAEtB,UAAU,EACX,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD;;;;GAIG;AACH,qBAAa,cAAc;;aAKP,WAAW,EAAE,WAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe;aAChB,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAN1E,OAAO,CAAC,IAAI,CAAC,CAAoD;IACjE,OAAO,CAAC,GAAG,CAAC,CAAuE;gBAGjE,WAAW,EAAE,WAAW,EACvB,eAAe,EAAE,eAAe,EACjC,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAG1E,IAAI,eAAe,YAElB;IAEM,KAAK;IAIL,aAAa;IAIb,YAAY,IAAI,gBAAgB;IAIhC,0BAA0B;;;;;;;IAc1B,YAAY,CAAC,cAAc,EAAE,uBAAuB,CAAC,OAAO,iBAAiB,CAAC;IAI9E,WAAW,CAAC,aAAa,EAAE,uBAAuB,CAAC,OAAO,oCAAoC,CAAC;CAqEvG"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AVM_VK_INDEX, TUBE_VK_INDEX } from '@aztec/constants';
|
|
2
2
|
import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
3
3
|
import { AvmProofData, PrivateBaseRollupHints, PrivateBaseRollupInputs, PrivateTubeData, PublicBaseRollupHints, PublicBaseRollupInputs, PublicTubeData, TubeInputs } from '@aztec/stdlib/rollup';
|
|
4
|
-
import {
|
|
4
|
+
import { VkData } from '@aztec/stdlib/vks';
|
|
5
5
|
/**
|
|
6
6
|
* Helper class to manage the proving cycle of a transaction
|
|
7
7
|
* This includes the public VMs and the public kernels
|
|
@@ -84,11 +84,11 @@ import { VkWitnessData } from '@aztec/stdlib/vks';
|
|
|
84
84
|
// TODO(#7410) The VK for the tube won't be in the tree for now, so we manually set it to the tube vk index
|
|
85
85
|
}
|
|
86
86
|
const vkPath = getVKSiblingPath(vkIndex);
|
|
87
|
-
return new
|
|
87
|
+
return new VkData(this.tube.verificationKey, vkIndex, vkPath);
|
|
88
88
|
}
|
|
89
89
|
#getAvmVkData() {
|
|
90
90
|
const vkIndex = AVM_VK_INDEX;
|
|
91
91
|
const vkPath = getVKSiblingPath(vkIndex);
|
|
92
|
-
return new
|
|
92
|
+
return new VkData(this.avm.verificationKey, vkIndex, vkPath);
|
|
93
93
|
}
|
|
94
94
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH, TUBE_PROOF_LENGTH } from '@aztec/constants';
|
|
2
2
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
3
3
|
import { type ProofAndVerificationKey, type ProvingJobProducer, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
|
|
4
4
|
import type { BaseParityInputs, ParityPublicInputs, RootParityInputs } from '@aztec/stdlib/parity';
|
|
@@ -29,7 +29,8 @@ export declare class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
29
29
|
private retrieveJobsThatShouldBeReady;
|
|
30
30
|
private backupFailedProofInputs;
|
|
31
31
|
private monitorForCompletedJobs;
|
|
32
|
-
getAvmProof(inputs: AvmCircuitInputs,
|
|
32
|
+
getAvmProof(inputs: AvmCircuitInputs, skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: remove this argument
|
|
33
|
+
signal?: AbortSignal, epochNumber?: number): Promise<ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>>;
|
|
33
34
|
getBaseParityProof(inputs: BaseParityInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
|
|
34
35
|
getBlockMergeRollupProof(input: BlockMergeRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
35
36
|
getBlockRootRollupProof(input: BlockRootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker_prover_facade.d.ts","sourceRoot":"","sources":["../../src/proving_broker/broker_prover_facade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"broker_prover_facade.d.ts","sourceRoot":"","sources":["../../src/proving_broker/broker_prover_facade.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { sha256 } from '@aztec/foundation/crypto';
|
|
2
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
2
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
4
|
import { RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
|
|
4
5
|
import { truncate } from '@aztec/foundation/string';
|
|
@@ -301,8 +302,14 @@ export class BrokerCircuitProverFacade {
|
|
|
301
302
|
// We have a list of jobs that we have been told are ready, so we go ahead and ask for their results
|
|
302
303
|
await this.retrieveJobsThatShouldBeReady();
|
|
303
304
|
}
|
|
304
|
-
getAvmProof(inputs, signal, epochNumber) {
|
|
305
|
-
|
|
305
|
+
getAvmProof(inputs, skipPublicInputsValidation, signal, epochNumber) {
|
|
306
|
+
this.log.info(`getAvmProof() called with skipPublicInputsValidation: ${skipPublicInputsValidation}`);
|
|
307
|
+
return this.enqueueJob(this.generateId(ProvingRequestType.PUBLIC_VM, inputs, epochNumber), ProvingRequestType.PUBLIC_VM, inputs, epochNumber, signal).then((result)=>{
|
|
308
|
+
// TODO(#14234)[Unconditional PIs validation]: Remove ".then()".
|
|
309
|
+
// Override the default value of skipPublicInputsValidation potentially set in BBNativeRollupProver.getAvmProof().
|
|
310
|
+
result.proof.proof[0] = skipPublicInputsValidation ? new Fr(1) : new Fr(0);
|
|
311
|
+
return result;
|
|
312
|
+
});
|
|
306
313
|
}
|
|
307
314
|
getBaseParityProof(inputs, signal, epochNumber) {
|
|
308
315
|
return this.enqueueJob(this.generateId(ProvingRequestType.BASE_PARITY, inputs, epochNumber), ProvingRequestType.BASE_PARITY, inputs, epochNumber, signal);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proving_job_controller.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_controller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAC,CAAmD;gBAGxD,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,IAAI,EACtB,GAAG,yCAA+F;IAGrG,KAAK,IAAI,IAAI;IAmBb,SAAS,IAAI,0BAA0B;IAIvC,SAAS,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,KAAK,GAAG,SAAS;IAIzE,KAAK,IAAI,IAAI;IAeb,QAAQ,IAAI,YAAY;IAIxB,YAAY,IAAI,kBAAkB;IAIlC,YAAY,IAAI,MAAM;IAItB,gBAAgB,IAAI,MAAM;IAIjC,OAAO,CAAC,GAAG,CA4BT;YAEY,aAAa;
|
|
1
|
+
{"version":3,"file":"proving_job_controller.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_controller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAC,CAAmD;gBAGxD,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,IAAI,EACtB,GAAG,yCAA+F;IAGrG,KAAK,IAAI,IAAI;IAmBb,SAAS,IAAI,0BAA0B;IAIvC,SAAS,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,KAAK,GAAG,SAAS;IAIzE,KAAK,IAAI,IAAI;IAeb,QAAQ,IAAI,YAAY;IAIxB,YAAY,IAAI,kBAAkB;IAIlC,YAAY,IAAI,MAAM;IAItB,gBAAgB,IAAI,MAAM;IAIjC,OAAO,CAAC,GAAG,CA4BT;YAEY,aAAa;CA2D5B"}
|
|
@@ -113,7 +113,8 @@ export class ProvingJobController {
|
|
|
113
113
|
switch(type){
|
|
114
114
|
case ProvingRequestType.PUBLIC_VM:
|
|
115
115
|
{
|
|
116
|
-
|
|
116
|
+
// TODO(#14234)[Unconditional PIs validation]: Remove argument "undefined".
|
|
117
|
+
return await this.circuitProver.getAvmProof(inputs, undefined, signal, this.epochNumber);
|
|
117
118
|
}
|
|
118
119
|
case ProvingRequestType.PRIVATE_BASE_ROLLUP:
|
|
119
120
|
{
|
|
@@ -19,7 +19,8 @@ export declare class TestBroker implements ProvingJobProducer {
|
|
|
19
19
|
}
|
|
20
20
|
export declare class MockProver implements ServerCircuitProver {
|
|
21
21
|
constructor();
|
|
22
|
-
getAvmProof(_inputs: AvmCircuitInputs,
|
|
22
|
+
getAvmProof(_inputs: AvmCircuitInputs, _skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: Remove.
|
|
23
|
+
_signal?: AbortSignal, _epochNumber?: number): Promise<ProofAndVerificationKey<20000>>;
|
|
23
24
|
getBaseParityProof(_inputs: BaseParityInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 456>>;
|
|
24
25
|
getRootParityProof(_inputs: RootParityInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 456>>;
|
|
25
26
|
getPrivateBaseRollupProof(_baseRollupInput: PrivateBaseRollupInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,yCAAyC,EAEzC,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAClC,KAAK,mBAAmB,EAGzB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,OAAO,KAAK,EACV,6BAA6B,EAC7B,sBAAsB,EACtB,iCAAiC,EACjC,qBAAqB,EACrB,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAK3F,qBAAa,UAAW,YAAW,kBAAkB;IAOjD,OAAO,CAAC,UAAU;IANpB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAiB;gBAG7B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,mBAAmB,EACnB,UAAU,GAAE,UAAmC,EACvD,iBAAiB,SAAM;IASZ,KAAK;IAKL,IAAI;IAKV,aAAa,IAAI,UAAU;IAIlC,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAG7D,mBAAmB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAGhE,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAG/D;AAED,qBAAa,UAAW,YAAW,mBAAmB;;IAGpD,WAAW,
|
|
1
|
+
{"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"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"}
|
package/dest/test/mock_prover.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH, TUBE_PROOF_LENGTH } from '@aztec/constants';
|
|
2
2
|
import { times } from '@aztec/foundation/collection';
|
|
3
3
|
import { makeProofAndVerificationKey, makePublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
4
4
|
import { makeEmptyRecursiveProof, makeRecursiveProof } from '@aztec/stdlib/proofs';
|
|
@@ -43,8 +43,8 @@ export class TestBroker {
|
|
|
43
43
|
}
|
|
44
44
|
export class MockProver {
|
|
45
45
|
constructor(){}
|
|
46
|
-
getAvmProof(_inputs, _signal, _epochNumber) {
|
|
47
|
-
return Promise.resolve(makeProofAndVerificationKey(makeEmptyRecursiveProof(
|
|
46
|
+
getAvmProof(_inputs, _skipPublicInputsValidation, _signal, _epochNumber) {
|
|
47
|
+
return Promise.resolve(makeProofAndVerificationKey(makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED), VerificationKeyData.makeFake(AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED)));
|
|
48
48
|
}
|
|
49
49
|
getBaseParityProof(_inputs, _signal, _epochNumber) {
|
|
50
50
|
return Promise.resolve(makePublicInputsAndRecursiveProof(makeParityPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-client",
|
|
3
|
-
"version": "0.87.
|
|
3
|
+
"version": "0.87.2-nightly.20250524",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -64,19 +64,19 @@
|
|
|
64
64
|
]
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@aztec/bb-prover": "0.87.
|
|
68
|
-
"@aztec/blob-lib": "0.87.
|
|
69
|
-
"@aztec/constants": "0.87.
|
|
70
|
-
"@aztec/ethereum": "0.87.
|
|
71
|
-
"@aztec/foundation": "0.87.
|
|
72
|
-
"@aztec/kv-store": "0.87.
|
|
73
|
-
"@aztec/noir-protocol-circuits-types": "0.87.
|
|
74
|
-
"@aztec/noir-types": "0.87.
|
|
75
|
-
"@aztec/protocol-contracts": "0.87.
|
|
76
|
-
"@aztec/simulator": "0.87.
|
|
77
|
-
"@aztec/stdlib": "0.87.
|
|
78
|
-
"@aztec/telemetry-client": "0.87.
|
|
79
|
-
"@aztec/world-state": "0.87.
|
|
67
|
+
"@aztec/bb-prover": "0.87.2-nightly.20250524",
|
|
68
|
+
"@aztec/blob-lib": "0.87.2-nightly.20250524",
|
|
69
|
+
"@aztec/constants": "0.87.2-nightly.20250524",
|
|
70
|
+
"@aztec/ethereum": "0.87.2-nightly.20250524",
|
|
71
|
+
"@aztec/foundation": "0.87.2-nightly.20250524",
|
|
72
|
+
"@aztec/kv-store": "0.87.2-nightly.20250524",
|
|
73
|
+
"@aztec/noir-protocol-circuits-types": "0.87.2-nightly.20250524",
|
|
74
|
+
"@aztec/noir-types": "0.87.2-nightly.20250524",
|
|
75
|
+
"@aztec/protocol-contracts": "0.87.2-nightly.20250524",
|
|
76
|
+
"@aztec/simulator": "0.87.2-nightly.20250524",
|
|
77
|
+
"@aztec/stdlib": "0.87.2-nightly.20250524",
|
|
78
|
+
"@aztec/telemetry-client": "0.87.2-nightly.20250524",
|
|
79
|
+
"@aztec/world-state": "0.87.2-nightly.20250524",
|
|
80
80
|
"@google-cloud/storage": "^7.15.0",
|
|
81
81
|
"@iarna/toml": "^2.2.5",
|
|
82
82
|
"commander": "^12.1.0",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"zod": "^3.23.8"
|
|
87
87
|
},
|
|
88
88
|
"devDependencies": {
|
|
89
|
-
"@aztec/noir-contracts.js": "0.87.
|
|
89
|
+
"@aztec/noir-contracts.js": "0.87.2-nightly.20250524",
|
|
90
90
|
"@jest/globals": "^29.5.0",
|
|
91
91
|
"@types/jest": "^29.5.0",
|
|
92
92
|
"@types/node": "^22.15.17",
|
|
@@ -7,12 +7,11 @@ import {
|
|
|
7
7
|
type NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
8
8
|
NUM_BASE_PARITY_PER_ROOT_PARITY,
|
|
9
9
|
type RECURSIVE_PROOF_LENGTH,
|
|
10
|
-
VK_TREE_HEIGHT,
|
|
11
10
|
} from '@aztec/constants';
|
|
12
11
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
13
12
|
import { Fr } from '@aztec/foundation/fields';
|
|
14
13
|
import type { Tuple } from '@aztec/foundation/serialize';
|
|
15
|
-
import {
|
|
14
|
+
import { type TreeNodeLocation, UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
16
15
|
import { getVKIndex, getVKSiblingPath, getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
17
16
|
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
18
17
|
import type { L2Block } from '@aztec/stdlib/block';
|
|
@@ -33,6 +32,7 @@ import {
|
|
|
33
32
|
import type { CircuitName } from '@aztec/stdlib/stats';
|
|
34
33
|
import type { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
35
34
|
import { type BlockHeader, type GlobalVariables, StateReference } from '@aztec/stdlib/tx';
|
|
35
|
+
import { VkData } from '@aztec/stdlib/vks';
|
|
36
36
|
|
|
37
37
|
import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-helpers.js';
|
|
38
38
|
import type { EpochProvingState } from './epoch-proving-state.js';
|
|
@@ -361,12 +361,8 @@ export class BlockProvingState {
|
|
|
361
361
|
verificationKey,
|
|
362
362
|
}: PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>) {
|
|
363
363
|
const leafIndex = getVKIndex(verificationKey.keyAsFields);
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
proof,
|
|
367
|
-
verificationKey.keyAsFields,
|
|
368
|
-
new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)),
|
|
369
|
-
);
|
|
364
|
+
const vkData = new VkData(verificationKey, leafIndex, getVKSiblingPath(leafIndex));
|
|
365
|
+
return new PreviousRollupData(inputs, proof, vkData);
|
|
370
366
|
}
|
|
371
367
|
|
|
372
368
|
#getRootParityData({ inputs, proof, verificationKey }: PublicInputsAndRecursiveProof<ParityPublicInputs>) {
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
VK_TREE_HEIGHT,
|
|
1
|
+
import type {
|
|
2
|
+
ARCHIVE_HEIGHT,
|
|
3
|
+
L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH,
|
|
4
|
+
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
5
|
+
TUBE_PROOF_LENGTH,
|
|
7
6
|
} from '@aztec/constants';
|
|
8
7
|
import type { Fr } from '@aztec/foundation/fields';
|
|
9
8
|
import type { Tuple } from '@aztec/foundation/serialize';
|
|
10
|
-
import {
|
|
9
|
+
import { type TreeNodeLocation, UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
11
10
|
import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
12
11
|
import type { ProofAndVerificationKey, PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
13
12
|
import type { Proof } from '@aztec/stdlib/proofs';
|
|
@@ -20,6 +19,7 @@ import {
|
|
|
20
19
|
} from '@aztec/stdlib/rollup';
|
|
21
20
|
import type { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
22
21
|
import type { BlockHeader, GlobalVariables } from '@aztec/stdlib/tx';
|
|
22
|
+
import { VkData } from '@aztec/stdlib/vks';
|
|
23
23
|
|
|
24
24
|
import { BlockProvingState } from './block-proving-state.js';
|
|
25
25
|
|
|
@@ -244,11 +244,7 @@ export class EpochProvingState {
|
|
|
244
244
|
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
245
245
|
>) {
|
|
246
246
|
const leafIndex = getVKIndex(verificationKey.keyAsFields);
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
proof,
|
|
250
|
-
verificationKey.keyAsFields,
|
|
251
|
-
new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)),
|
|
252
|
-
);
|
|
247
|
+
const vkData = new VkData(verificationKey, leafIndex, getVKSiblingPath(leafIndex));
|
|
248
|
+
return new PreviousRollupBlockData(inputs, proof, vkData);
|
|
253
249
|
}
|
|
254
250
|
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import {
|
|
2
|
-
AVM_PROOF_LENGTH_IN_FIELDS,
|
|
3
|
-
AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS,
|
|
4
2
|
L1_TO_L2_MSG_SUBTREE_HEIGHT,
|
|
5
3
|
L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH,
|
|
6
4
|
NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP,
|
|
@@ -17,6 +15,7 @@ import { pushTestData } from '@aztec/foundation/testing';
|
|
|
17
15
|
import { elapsed } from '@aztec/foundation/timer';
|
|
18
16
|
import type { TreeNodeLocation } from '@aztec/foundation/trees';
|
|
19
17
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
18
|
+
import { readAvmMinimalPublicTxInputsFromFile } from '@aztec/simulator/public/fixtures';
|
|
20
19
|
import { L2Block } from '@aztec/stdlib/block';
|
|
21
20
|
import type {
|
|
22
21
|
EpochProver,
|
|
@@ -26,7 +25,6 @@ import type {
|
|
|
26
25
|
ServerCircuitProver,
|
|
27
26
|
} from '@aztec/stdlib/interfaces/server';
|
|
28
27
|
import { BaseParityInputs } from '@aztec/stdlib/parity';
|
|
29
|
-
import { makeEmptyRecursiveProof } from '@aztec/stdlib/proofs';
|
|
30
28
|
import {
|
|
31
29
|
type BaseRollupHints,
|
|
32
30
|
EmptyBlockRootRollupInputs,
|
|
@@ -37,7 +35,6 @@ import {
|
|
|
37
35
|
import type { CircuitName } from '@aztec/stdlib/stats';
|
|
38
36
|
import { type AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
39
37
|
import { type BlockHeader, type GlobalVariables, type ProcessedTx, type Tx, toNumBlobFields } from '@aztec/stdlib/tx';
|
|
40
|
-
import { VerificationKeyData } from '@aztec/stdlib/vks';
|
|
41
38
|
import {
|
|
42
39
|
Attributes,
|
|
43
40
|
type TelemetryClient,
|
|
@@ -933,21 +930,26 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
933
930
|
async (signal: AbortSignal) => {
|
|
934
931
|
const inputs = txProvingState.getAvmInputs();
|
|
935
932
|
try {
|
|
936
|
-
|
|
933
|
+
// TODO(#14234)[Unconditional PIs validation]: Remove the whole try-catch logic and
|
|
934
|
+
// just keep the next line but removing the second argument (false).
|
|
935
|
+
return await this.prover.getAvmProof(inputs, false, signal, provingState.epochNumber);
|
|
937
936
|
} catch (err) {
|
|
938
937
|
if (process.env.AVM_PROVING_STRICT) {
|
|
939
938
|
logger.error(`Error thrown when proving AVM circuit with AVM_PROVING_STRICT on`, err);
|
|
940
939
|
throw err;
|
|
941
940
|
} else {
|
|
942
941
|
logger.warn(
|
|
943
|
-
`Error thrown when proving AVM circuit but AVM_PROVING_STRICT is off.
|
|
944
|
-
|
|
945
|
-
)}.`,
|
|
942
|
+
`Error thrown when proving AVM circuit but AVM_PROVING_STRICT is off. Use snapshotted
|
|
943
|
+
AVM inputs and carrying on. ${inspect(err)}.`,
|
|
946
944
|
);
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
945
|
+
|
|
946
|
+
try {
|
|
947
|
+
const snapshotAvmPrivateInputs = readAvmMinimalPublicTxInputsFromFile();
|
|
948
|
+
return await this.prover.getAvmProof(snapshotAvmPrivateInputs, true, signal, provingState.epochNumber);
|
|
949
|
+
} catch (err) {
|
|
950
|
+
logger.error(`Error thrown when proving snapshotted AVM inputs.`, err);
|
|
951
|
+
throw err;
|
|
952
|
+
}
|
|
951
953
|
}
|
|
952
954
|
}
|
|
953
955
|
},
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
|
|
3
|
+
AVM_VK_INDEX,
|
|
4
|
+
type TUBE_PROOF_LENGTH,
|
|
5
|
+
TUBE_VK_INDEX,
|
|
6
|
+
} from '@aztec/constants';
|
|
2
7
|
import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
3
8
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
4
9
|
import type { ProofAndVerificationKey } from '@aztec/stdlib/interfaces/server';
|
|
@@ -16,7 +21,7 @@ import {
|
|
|
16
21
|
import type { CircuitName } from '@aztec/stdlib/stats';
|
|
17
22
|
import type { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
18
23
|
import type { ProcessedTx } from '@aztec/stdlib/tx';
|
|
19
|
-
import {
|
|
24
|
+
import { VkData } from '@aztec/stdlib/vks';
|
|
20
25
|
|
|
21
26
|
/**
|
|
22
27
|
* Helper class to manage the proving cycle of a transaction
|
|
@@ -25,7 +30,7 @@ import { VkWitnessData } from '@aztec/stdlib/vks';
|
|
|
25
30
|
*/
|
|
26
31
|
export class TxProvingState {
|
|
27
32
|
private tube?: ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>;
|
|
28
|
-
private avm?: ProofAndVerificationKey<typeof
|
|
33
|
+
private avm?: ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>;
|
|
29
34
|
|
|
30
35
|
constructor(
|
|
31
36
|
public readonly processedTx: ProcessedTx,
|
|
@@ -67,7 +72,7 @@ export class TxProvingState {
|
|
|
67
72
|
this.tube = tubeProofAndVk;
|
|
68
73
|
}
|
|
69
74
|
|
|
70
|
-
public setAvmProof(avmProofAndVk: ProofAndVerificationKey<typeof
|
|
75
|
+
public setAvmProof(avmProofAndVk: ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>) {
|
|
71
76
|
this.avm = avmProofAndVk;
|
|
72
77
|
}
|
|
73
78
|
|
|
@@ -128,12 +133,12 @@ export class TxProvingState {
|
|
|
128
133
|
}
|
|
129
134
|
const vkPath = getVKSiblingPath(vkIndex);
|
|
130
135
|
|
|
131
|
-
return new
|
|
136
|
+
return new VkData(this.tube!.verificationKey, vkIndex, vkPath);
|
|
132
137
|
}
|
|
133
138
|
|
|
134
139
|
#getAvmVkData() {
|
|
135
140
|
const vkIndex = AVM_VK_INDEX;
|
|
136
141
|
const vkPath = getVKSiblingPath(vkIndex);
|
|
137
|
-
return new
|
|
142
|
+
return new VkData(this.avm!.verificationKey, vkIndex, vkPath);
|
|
138
143
|
}
|
|
139
144
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type {
|
|
2
|
-
|
|
2
|
+
AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
|
|
3
3
|
NESTED_RECURSIVE_PROOF_LENGTH,
|
|
4
4
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
5
5
|
RECURSIVE_PROOF_LENGTH,
|
|
6
6
|
TUBE_PROOF_LENGTH,
|
|
7
7
|
} from '@aztec/constants';
|
|
8
8
|
import { sha256 } from '@aztec/foundation/crypto';
|
|
9
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
9
10
|
import { createLogger } from '@aztec/foundation/log';
|
|
10
11
|
import { type PromiseWithResolvers, RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
|
|
11
12
|
import { truncate } from '@aztec/foundation/string';
|
|
@@ -389,16 +390,24 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
389
390
|
|
|
390
391
|
getAvmProof(
|
|
391
392
|
inputs: AvmCircuitInputs,
|
|
393
|
+
skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: remove this argument
|
|
392
394
|
signal?: AbortSignal,
|
|
393
395
|
epochNumber?: number,
|
|
394
|
-
): Promise<ProofAndVerificationKey<typeof
|
|
396
|
+
): Promise<ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>> {
|
|
397
|
+
this.log.info(`getAvmProof() called with skipPublicInputsValidation: ${skipPublicInputsValidation}`);
|
|
398
|
+
|
|
395
399
|
return this.enqueueJob(
|
|
396
400
|
this.generateId(ProvingRequestType.PUBLIC_VM, inputs, epochNumber),
|
|
397
401
|
ProvingRequestType.PUBLIC_VM,
|
|
398
402
|
inputs,
|
|
399
403
|
epochNumber,
|
|
400
404
|
signal,
|
|
401
|
-
)
|
|
405
|
+
).then(result => {
|
|
406
|
+
// TODO(#14234)[Unconditional PIs validation]: Remove ".then()".
|
|
407
|
+
// Override the default value of skipPublicInputsValidation potentially set in BBNativeRollupProver.getAvmProof().
|
|
408
|
+
result.proof.proof[0] = skipPublicInputsValidation ? new Fr(1) : new Fr(0);
|
|
409
|
+
return result;
|
|
410
|
+
});
|
|
402
411
|
}
|
|
403
412
|
|
|
404
413
|
getBaseParityProof(
|
|
@@ -124,7 +124,8 @@ export class ProvingJobController {
|
|
|
124
124
|
const signal = this.abortController.signal;
|
|
125
125
|
switch (type) {
|
|
126
126
|
case ProvingRequestType.PUBLIC_VM: {
|
|
127
|
-
|
|
127
|
+
// TODO(#14234)[Unconditional PIs validation]: Remove argument "undefined".
|
|
128
|
+
return await this.circuitProver.getAvmProof(inputs, undefined, signal, this.epochNumber);
|
|
128
129
|
}
|
|
129
130
|
|
|
130
131
|
case ProvingRequestType.PRIVATE_BASE_ROLLUP: {
|
package/src/test/mock_prover.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
|
|
3
|
+
AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED,
|
|
4
4
|
NESTED_RECURSIVE_PROOF_LENGTH,
|
|
5
5
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
6
6
|
RECURSIVE_PROOF_LENGTH,
|
|
@@ -96,11 +96,16 @@ export class TestBroker implements ProvingJobProducer {
|
|
|
96
96
|
export class MockProver implements ServerCircuitProver {
|
|
97
97
|
constructor() {}
|
|
98
98
|
|
|
99
|
-
getAvmProof(
|
|
99
|
+
getAvmProof(
|
|
100
|
+
_inputs: AvmCircuitInputs,
|
|
101
|
+
_skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: Remove.
|
|
102
|
+
_signal?: AbortSignal,
|
|
103
|
+
_epochNumber?: number,
|
|
104
|
+
) {
|
|
100
105
|
return Promise.resolve(
|
|
101
106
|
makeProofAndVerificationKey(
|
|
102
|
-
makeEmptyRecursiveProof(
|
|
103
|
-
VerificationKeyData.makeFake(
|
|
107
|
+
makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED),
|
|
108
|
+
VerificationKeyData.makeFake(AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED),
|
|
104
109
|
),
|
|
105
110
|
);
|
|
106
111
|
}
|