@aztec/prover-client 0.0.1-fake-ceab37513c → 0.0.2-commit.217f559981
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/config.d.ts +2 -2
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +2 -2
- package/dest/index.d.ts +1 -1
- package/dest/light/index.d.ts +2 -0
- package/dest/light/index.d.ts.map +1 -0
- package/dest/light/index.js +1 -0
- package/dest/light/lightweight_checkpoint_builder.d.ts +48 -0
- package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -0
- package/dest/light/lightweight_checkpoint_builder.js +202 -0
- package/dest/mocks/fixtures.d.ts +5 -5
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +35 -16
- package/dest/mocks/test_context.d.ts +39 -33
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +141 -82
- package/dest/orchestrator/block-building-helpers.d.ts +34 -34
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +151 -187
- package/dest/orchestrator/block-proving-state.d.ts +71 -55
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +280 -185
- package/dest/orchestrator/checkpoint-proving-state.d.ts +76 -0
- package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -0
- package/dest/orchestrator/checkpoint-proving-state.js +243 -0
- package/dest/orchestrator/epoch-proving-state.d.ts +40 -32
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/epoch-proving-state.js +165 -85
- package/dest/orchestrator/index.d.ts +1 -1
- package/dest/orchestrator/orchestrator.d.ts +51 -35
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +847 -329
- package/dest/orchestrator/orchestrator_metrics.d.ts +1 -3
- package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator_metrics.js +2 -15
- package/dest/orchestrator/tx-proving-state.d.ts +15 -12
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +27 -33
- package/dest/prover-client/factory.d.ts +3 -3
- package/dest/prover-client/factory.d.ts.map +1 -1
- package/dest/prover-client/index.d.ts +1 -1
- package/dest/prover-client/prover-client.d.ts +5 -5
- package/dest/prover-client/prover-client.d.ts.map +1 -1
- package/dest/prover-client/prover-client.js +15 -10
- package/dest/prover-client/server-epoch-prover.d.ts +13 -11
- package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
- package/dest/prover-client/server-epoch-prover.js +9 -9
- package/dest/proving_broker/broker_prover_facade.d.ts +28 -21
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.js +45 -36
- package/dest/proving_broker/config.d.ts +24 -8
- package/dest/proving_broker/config.d.ts.map +1 -1
- package/dest/proving_broker/config.js +26 -3
- package/dest/proving_broker/factory.d.ts +1 -1
- package/dest/proving_broker/fixtures.d.ts +3 -2
- package/dest/proving_broker/fixtures.d.ts.map +1 -1
- package/dest/proving_broker/fixtures.js +3 -2
- package/dest/proving_broker/index.d.ts +1 -1
- package/dest/proving_broker/proof_store/factory.d.ts +2 -5
- package/dest/proving_broker/proof_store/factory.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/factory.js +7 -30
- package/dest/proving_broker/proof_store/file_store_proof_store.d.ts +18 -0
- package/dest/proving_broker/proof_store/file_store_proof_store.d.ts.map +1 -0
- package/dest/proving_broker/proof_store/file_store_proof_store.js +60 -0
- package/dest/proving_broker/proof_store/index.d.ts +2 -1
- package/dest/proving_broker/proof_store/index.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/index.js +1 -0
- package/dest/proving_broker/proof_store/inline_proof_store.d.ts +1 -1
- package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/proof_store.d.ts +1 -1
- package/dest/proving_broker/proving_agent.d.ts +5 -9
- package/dest/proving_broker/proving_agent.d.ts.map +1 -1
- package/dest/proving_broker/proving_agent.js +4 -19
- package/dest/proving_broker/proving_broker.d.ts +7 -4
- package/dest/proving_broker/proving_broker.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.js +64 -30
- package/dest/proving_broker/proving_broker_database/memory.d.ts +3 -2
- package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.d.ts +5 -3
- package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.js +392 -3
- package/dest/proving_broker/proving_broker_database.d.ts +3 -2
- package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_instrumentation.d.ts +1 -1
- package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_instrumentation.js +15 -35
- package/dest/proving_broker/proving_job_controller.d.ts +5 -3
- package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.js +46 -24
- package/dest/proving_broker/rpc.d.ts +7 -5
- package/dest/proving_broker/rpc.d.ts.map +1 -1
- package/dest/proving_broker/rpc.js +8 -0
- package/dest/test/mock_proof_store.d.ts +1 -1
- package/dest/test/mock_proof_store.d.ts.map +1 -1
- package/dest/test/mock_prover.d.ts +23 -19
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +38 -23
- package/package.json +21 -20
- package/src/config.ts +2 -2
- package/src/light/index.ts +1 -0
- package/src/light/lightweight_checkpoint_builder.ts +294 -0
- package/src/mocks/fixtures.ts +43 -37
- package/src/mocks/test_context.ts +201 -114
- package/src/orchestrator/block-building-helpers.ts +233 -313
- package/src/orchestrator/block-proving-state.ts +324 -247
- package/src/orchestrator/checkpoint-proving-state.ts +349 -0
- package/src/orchestrator/epoch-proving-state.ts +229 -132
- package/src/orchestrator/orchestrator.ts +630 -385
- package/src/orchestrator/orchestrator_metrics.ts +2 -25
- package/src/orchestrator/tx-proving-state.ts +49 -60
- package/src/prover-client/factory.ts +6 -2
- package/src/prover-client/prover-client.ts +31 -23
- package/src/prover-client/server-epoch-prover.ts +30 -21
- package/src/proving_broker/broker_prover_facade.ts +183 -118
- package/src/proving_broker/config.ts +30 -1
- package/src/proving_broker/fixtures.ts +8 -3
- package/src/proving_broker/proof_store/factory.ts +10 -32
- package/src/proving_broker/proof_store/file_store_proof_store.ts +78 -0
- package/src/proving_broker/proof_store/index.ts +1 -0
- package/src/proving_broker/proving_agent.ts +6 -19
- package/src/proving_broker/proving_broker.ts +72 -28
- package/src/proving_broker/proving_broker_database/memory.ts +2 -1
- package/src/proving_broker/proving_broker_database/persisted.ts +20 -5
- package/src/proving_broker/proving_broker_database.ts +2 -1
- package/src/proving_broker/proving_broker_instrumentation.ts +14 -35
- package/src/proving_broker/proving_job_controller.ts +51 -25
- package/src/proving_broker/rpc.ts +14 -0
- package/src/test/mock_prover.ts +144 -74
- package/dest/bin/get-proof-inputs.d.ts +0 -2
- package/dest/bin/get-proof-inputs.d.ts.map +0 -1
- package/dest/bin/get-proof-inputs.js +0 -51
- package/dest/block-factory/index.d.ts +0 -2
- package/dest/block-factory/index.d.ts.map +0 -1
- package/dest/block-factory/index.js +0 -1
- package/dest/block-factory/light.d.ts +0 -36
- package/dest/block-factory/light.d.ts.map +0 -1
- package/dest/block-factory/light.js +0 -87
- package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +0 -14
- package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +0 -1
- package/dest/proving_broker/proof_store/gcs_proof_store.js +0 -52
- package/dest/proving_broker/proving_agent_instrumentation.d.ts +0 -8
- package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +0 -1
- package/dest/proving_broker/proving_agent_instrumentation.js +0 -16
- package/src/bin/get-proof-inputs.ts +0 -59
- package/src/block-factory/index.ts +0 -1
- package/src/block-factory/light.ts +0 -114
- package/src/proving_broker/proof_store/gcs_proof_store.ts +0 -76
- package/src/proving_broker/proving_agent_instrumentation.ts +0 -21
package/src/test/mock_prover.ts
CHANGED
|
@@ -1,45 +1,51 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
|
|
3
|
-
AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED,
|
|
4
3
|
NESTED_RECURSIVE_PROOF_LENGTH,
|
|
5
4
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
6
5
|
RECURSIVE_PROOF_LENGTH,
|
|
7
|
-
TUBE_PROOF_LENGTH,
|
|
8
6
|
} from '@aztec/constants';
|
|
9
7
|
import { times } from '@aztec/foundation/collection';
|
|
10
8
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
11
9
|
import {
|
|
12
|
-
type ProofAndVerificationKey,
|
|
13
10
|
type ProvingJob,
|
|
14
11
|
type ProvingJobId,
|
|
15
12
|
type ProvingJobProducer,
|
|
16
13
|
type ProvingJobStatus,
|
|
17
14
|
type PublicInputsAndRecursiveProof,
|
|
18
15
|
type ServerCircuitProver,
|
|
19
|
-
makeProofAndVerificationKey,
|
|
20
16
|
makePublicInputsAndRecursiveProof,
|
|
21
17
|
} from '@aztec/stdlib/interfaces/server';
|
|
22
|
-
import type {
|
|
18
|
+
import type { ParityBasePrivateInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity';
|
|
23
19
|
import { makeEmptyRecursiveProof, makeRecursiveProof } from '@aztec/stdlib/proofs';
|
|
24
20
|
import type {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
21
|
+
BlockMergeRollupPrivateInputs,
|
|
22
|
+
BlockRollupPublicInputs,
|
|
23
|
+
BlockRootEmptyTxFirstRollupPrivateInputs,
|
|
24
|
+
BlockRootFirstRollupPrivateInputs,
|
|
25
|
+
BlockRootRollupPrivateInputs,
|
|
26
|
+
BlockRootSingleTxFirstRollupPrivateInputs,
|
|
27
|
+
BlockRootSingleTxRollupPrivateInputs,
|
|
28
|
+
CheckpointMergeRollupPrivateInputs,
|
|
29
|
+
CheckpointPaddingRollupPrivateInputs,
|
|
30
|
+
CheckpointRollupPublicInputs,
|
|
31
|
+
CheckpointRootRollupPrivateInputs,
|
|
32
|
+
CheckpointRootSingleBlockRollupPrivateInputs,
|
|
33
|
+
PrivateTxBaseRollupPrivateInputs,
|
|
34
|
+
PublicChonkVerifierPrivateInputs,
|
|
35
|
+
PublicChonkVerifierPublicInputs,
|
|
36
|
+
PublicTxBaseRollupPrivateInputs,
|
|
37
|
+
RootRollupPrivateInputs,
|
|
35
38
|
RootRollupPublicInputs,
|
|
36
|
-
|
|
39
|
+
TxMergeRollupPrivateInputs,
|
|
40
|
+
TxRollupPublicInputs,
|
|
37
41
|
} from '@aztec/stdlib/rollup';
|
|
38
42
|
import {
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
makeBlockRollupPublicInputs,
|
|
44
|
+
makeCheckpointRollupPublicInputs,
|
|
41
45
|
makeParityPublicInputs,
|
|
46
|
+
makePublicChonkVerifierPublicInputs,
|
|
42
47
|
makeRootRollupPublicInputs,
|
|
48
|
+
makeTxRollupPublicInputs,
|
|
43
49
|
} from '@aztec/stdlib/testing';
|
|
44
50
|
import { VerificationKeyData } from '@aztec/stdlib/vks';
|
|
45
51
|
|
|
@@ -97,21 +103,11 @@ export class TestBroker implements ProvingJobProducer {
|
|
|
97
103
|
export class MockProver implements ServerCircuitProver {
|
|
98
104
|
constructor() {}
|
|
99
105
|
|
|
100
|
-
getAvmProof(
|
|
101
|
-
|
|
102
|
-
_skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: Remove.
|
|
103
|
-
_signal?: AbortSignal,
|
|
104
|
-
_epochNumber?: number,
|
|
105
|
-
) {
|
|
106
|
-
return Promise.resolve(
|
|
107
|
-
makeProofAndVerificationKey(
|
|
108
|
-
makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED),
|
|
109
|
-
VerificationKeyData.makeFake(AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED),
|
|
110
|
-
),
|
|
111
|
-
);
|
|
106
|
+
getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number) {
|
|
107
|
+
return Promise.resolve(makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED));
|
|
112
108
|
}
|
|
113
109
|
|
|
114
|
-
getBaseParityProof(_inputs:
|
|
110
|
+
getBaseParityProof(_inputs: ParityBasePrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
|
|
115
111
|
return Promise.resolve(
|
|
116
112
|
makePublicInputsAndRecursiveProof(
|
|
117
113
|
makeParityPublicInputs(),
|
|
@@ -121,7 +117,7 @@ export class MockProver implements ServerCircuitProver {
|
|
|
121
117
|
);
|
|
122
118
|
}
|
|
123
119
|
|
|
124
|
-
getRootParityProof(_inputs:
|
|
120
|
+
getRootParityProof(_inputs: ParityRootPrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
|
|
125
121
|
return Promise.resolve(
|
|
126
122
|
makePublicInputsAndRecursiveProof(
|
|
127
123
|
makeParityPublicInputs(),
|
|
@@ -131,130 +127,210 @@ export class MockProver implements ServerCircuitProver {
|
|
|
131
127
|
);
|
|
132
128
|
}
|
|
133
129
|
|
|
134
|
-
|
|
135
|
-
|
|
130
|
+
getPublicChonkVerifierProof(
|
|
131
|
+
_inputs: PublicChonkVerifierPrivateInputs,
|
|
136
132
|
_signal?: AbortSignal,
|
|
137
133
|
_epochNumber?: number,
|
|
138
134
|
): Promise<
|
|
139
|
-
PublicInputsAndRecursiveProof<
|
|
135
|
+
PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
140
136
|
> {
|
|
141
137
|
return Promise.resolve(
|
|
142
138
|
makePublicInputsAndRecursiveProof(
|
|
143
|
-
|
|
139
|
+
makePublicChonkVerifierPublicInputs(),
|
|
144
140
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
145
141
|
VerificationKeyData.makeFakeRollupHonk(),
|
|
146
142
|
),
|
|
147
143
|
);
|
|
148
144
|
}
|
|
149
145
|
|
|
150
|
-
|
|
151
|
-
|
|
146
|
+
getPrivateTxBaseRollupProof(
|
|
147
|
+
_baseRollupInput: PrivateTxBaseRollupPrivateInputs,
|
|
152
148
|
_signal?: AbortSignal,
|
|
153
149
|
_epochNumber?: number,
|
|
154
|
-
): Promise<
|
|
155
|
-
PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
156
|
-
> {
|
|
150
|
+
): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
157
151
|
return Promise.resolve(
|
|
158
152
|
makePublicInputsAndRecursiveProof(
|
|
159
|
-
|
|
153
|
+
makeTxRollupPublicInputs(),
|
|
160
154
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
161
155
|
VerificationKeyData.makeFakeRollupHonk(),
|
|
162
156
|
),
|
|
163
157
|
);
|
|
164
158
|
}
|
|
165
159
|
|
|
166
|
-
|
|
167
|
-
|
|
160
|
+
getPublicTxBaseRollupProof(
|
|
161
|
+
_inputs: PublicTxBaseRollupPrivateInputs,
|
|
168
162
|
_signal?: AbortSignal,
|
|
169
163
|
_epochNumber?: number,
|
|
170
|
-
): Promise<
|
|
171
|
-
|
|
172
|
-
|
|
164
|
+
): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
165
|
+
return Promise.resolve(
|
|
166
|
+
makePublicInputsAndRecursiveProof(
|
|
167
|
+
makeTxRollupPublicInputs(),
|
|
168
|
+
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
169
|
+
VerificationKeyData.makeFakeRollupHonk(),
|
|
170
|
+
),
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
getTxMergeRollupProof(
|
|
175
|
+
_input: TxMergeRollupPrivateInputs,
|
|
176
|
+
_signal?: AbortSignal,
|
|
177
|
+
_epochNumber?: number,
|
|
178
|
+
): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
179
|
+
return Promise.resolve(
|
|
180
|
+
makePublicInputsAndRecursiveProof(
|
|
181
|
+
makeTxRollupPublicInputs(),
|
|
182
|
+
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
183
|
+
VerificationKeyData.makeFakeRollupHonk(),
|
|
184
|
+
),
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
getBlockRootFirstRollupProof(
|
|
189
|
+
_input: BlockRootFirstRollupPrivateInputs,
|
|
190
|
+
_signal?: AbortSignal,
|
|
191
|
+
_epochNumber?: number,
|
|
192
|
+
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
193
|
+
return Promise.resolve(
|
|
194
|
+
makePublicInputsAndRecursiveProof(
|
|
195
|
+
makeBlockRollupPublicInputs(),
|
|
196
|
+
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
197
|
+
VerificationKeyData.makeFakeRollupHonk(),
|
|
198
|
+
),
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
getBlockRootSingleTxFirstRollupProof(
|
|
203
|
+
_input: BlockRootSingleTxFirstRollupPrivateInputs,
|
|
204
|
+
_signal?: AbortSignal,
|
|
205
|
+
_epochNumber?: number,
|
|
206
|
+
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
207
|
+
return Promise.resolve(
|
|
208
|
+
makePublicInputsAndRecursiveProof(
|
|
209
|
+
makeBlockRollupPublicInputs(),
|
|
210
|
+
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
211
|
+
VerificationKeyData.makeFakeHonk(),
|
|
212
|
+
),
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
getBlockRootEmptyTxFirstRollupProof(
|
|
217
|
+
_input: BlockRootEmptyTxFirstRollupPrivateInputs,
|
|
218
|
+
_signal?: AbortSignal,
|
|
219
|
+
_epochNumber?: number,
|
|
220
|
+
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
173
221
|
return Promise.resolve(
|
|
174
222
|
makePublicInputsAndRecursiveProof(
|
|
175
|
-
|
|
223
|
+
makeBlockRollupPublicInputs(),
|
|
176
224
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
177
225
|
VerificationKeyData.makeFakeRollupHonk(),
|
|
178
226
|
),
|
|
179
227
|
);
|
|
180
228
|
}
|
|
181
229
|
|
|
182
|
-
|
|
230
|
+
getBlockRootRollupProof(
|
|
231
|
+
_input: BlockRootRollupPrivateInputs,
|
|
232
|
+
_signal?: AbortSignal,
|
|
233
|
+
_epochNumber?: number,
|
|
234
|
+
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
183
235
|
return Promise.resolve(
|
|
184
236
|
makePublicInputsAndRecursiveProof(
|
|
185
|
-
|
|
237
|
+
makeBlockRollupPublicInputs(),
|
|
186
238
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
187
239
|
VerificationKeyData.makeFakeRollupHonk(),
|
|
188
240
|
),
|
|
189
241
|
);
|
|
190
242
|
}
|
|
191
243
|
|
|
192
|
-
|
|
193
|
-
_input:
|
|
244
|
+
getBlockRootSingleTxRollupProof(
|
|
245
|
+
_input: BlockRootSingleTxRollupPrivateInputs,
|
|
246
|
+
_signal?: AbortSignal,
|
|
247
|
+
_epochNumber?: number,
|
|
248
|
+
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
249
|
+
return Promise.resolve(
|
|
250
|
+
makePublicInputsAndRecursiveProof(
|
|
251
|
+
makeBlockRollupPublicInputs(),
|
|
252
|
+
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
253
|
+
VerificationKeyData.makeFakeHonk(),
|
|
254
|
+
),
|
|
255
|
+
);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
getBlockMergeRollupProof(_input: BlockMergeRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
|
|
259
|
+
return Promise.resolve(
|
|
260
|
+
makePublicInputsAndRecursiveProof(
|
|
261
|
+
makeBlockRollupPublicInputs(),
|
|
262
|
+
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
263
|
+
VerificationKeyData.makeFakeRollupHonk(),
|
|
264
|
+
),
|
|
265
|
+
);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
getCheckpointRootRollupProof(
|
|
269
|
+
_input: CheckpointRootRollupPrivateInputs,
|
|
194
270
|
_signal?: AbortSignal,
|
|
195
271
|
_epochNumber?: number,
|
|
196
272
|
): Promise<
|
|
197
|
-
PublicInputsAndRecursiveProof<
|
|
273
|
+
PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
198
274
|
> {
|
|
199
275
|
return Promise.resolve(
|
|
200
276
|
makePublicInputsAndRecursiveProof(
|
|
201
|
-
|
|
277
|
+
makeCheckpointRollupPublicInputs(),
|
|
202
278
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
203
279
|
VerificationKeyData.makeFakeRollupHonk(),
|
|
204
280
|
),
|
|
205
281
|
);
|
|
206
282
|
}
|
|
207
283
|
|
|
208
|
-
|
|
209
|
-
_input:
|
|
284
|
+
getCheckpointRootSingleBlockRollupProof(
|
|
285
|
+
_input: CheckpointRootSingleBlockRollupPrivateInputs,
|
|
210
286
|
_signal?: AbortSignal,
|
|
211
287
|
_epochNumber?: number,
|
|
212
288
|
): Promise<
|
|
213
|
-
PublicInputsAndRecursiveProof<
|
|
289
|
+
PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
214
290
|
> {
|
|
215
291
|
return Promise.resolve(
|
|
216
292
|
makePublicInputsAndRecursiveProof(
|
|
217
|
-
|
|
293
|
+
makeCheckpointRollupPublicInputs(),
|
|
218
294
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
219
295
|
VerificationKeyData.makeFakeRollupHonk(),
|
|
220
296
|
),
|
|
221
297
|
);
|
|
222
298
|
}
|
|
223
299
|
|
|
224
|
-
|
|
225
|
-
_input:
|
|
300
|
+
getCheckpointMergeRollupProof(
|
|
301
|
+
_input: CheckpointMergeRollupPrivateInputs,
|
|
226
302
|
_signal?: AbortSignal,
|
|
227
303
|
_epochNumber?: number,
|
|
228
304
|
): Promise<
|
|
229
|
-
PublicInputsAndRecursiveProof<
|
|
305
|
+
PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
230
306
|
> {
|
|
231
307
|
return Promise.resolve(
|
|
232
308
|
makePublicInputsAndRecursiveProof(
|
|
233
|
-
|
|
309
|
+
makeCheckpointRollupPublicInputs(),
|
|
234
310
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
235
311
|
VerificationKeyData.makeFakeRollupHonk(),
|
|
236
312
|
),
|
|
237
313
|
);
|
|
238
314
|
}
|
|
239
315
|
|
|
240
|
-
|
|
241
|
-
_input:
|
|
316
|
+
getCheckpointPaddingRollupProof(
|
|
317
|
+
_input: CheckpointPaddingRollupPrivateInputs,
|
|
242
318
|
_signal?: AbortSignal,
|
|
243
319
|
_epochNumber?: number,
|
|
244
320
|
): Promise<
|
|
245
|
-
PublicInputsAndRecursiveProof<
|
|
321
|
+
PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
246
322
|
> {
|
|
247
323
|
return Promise.resolve(
|
|
248
324
|
makePublicInputsAndRecursiveProof(
|
|
249
|
-
|
|
325
|
+
makeCheckpointRollupPublicInputs(),
|
|
250
326
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
251
|
-
VerificationKeyData.
|
|
327
|
+
VerificationKeyData.makeFakeRollupHonk(),
|
|
252
328
|
),
|
|
253
329
|
);
|
|
254
330
|
}
|
|
255
331
|
|
|
256
332
|
getRootRollupProof(
|
|
257
|
-
_input:
|
|
333
|
+
_input: RootRollupPrivateInputs,
|
|
258
334
|
_signal?: AbortSignal,
|
|
259
335
|
_epochNumber?: number,
|
|
260
336
|
): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>> {
|
|
@@ -266,10 +342,4 @@ export class MockProver implements ServerCircuitProver {
|
|
|
266
342
|
),
|
|
267
343
|
);
|
|
268
344
|
}
|
|
269
|
-
|
|
270
|
-
getTubeProof(): Promise<ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>> {
|
|
271
|
-
return Promise.resolve(
|
|
272
|
-
makeProofAndVerificationKey(makeRecursiveProof(TUBE_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()),
|
|
273
|
-
);
|
|
274
|
-
}
|
|
275
345
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-proof-inputs.d.ts","sourceRoot":"","sources":["../../src/bin/get-proof-inputs.ts"],"names":[],"mappings":""}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-console */ import { AVM_INPUTS_FILENAME } from '@aztec/bb-prover';
|
|
2
|
-
import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
|
|
3
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
4
|
-
import { ProvingJobInputs } from '@aztec/stdlib/interfaces/server';
|
|
5
|
-
import { ProvingRequestType } from '@aztec/stdlib/proofs';
|
|
6
|
-
import { mkdirSync, writeFileSync } from 'fs';
|
|
7
|
-
import { createProofStoreForUri } from '../proving_broker/index.js';
|
|
8
|
-
const logger = createLogger('prover-client:get-proof-inputs');
|
|
9
|
-
function printUsage() {
|
|
10
|
-
console.error('Usage: get-proof-inputs <proof-uri> [out-dir=.]');
|
|
11
|
-
}
|
|
12
|
-
async function main() {
|
|
13
|
-
if (process.argv[2] === '--help') {
|
|
14
|
-
printUsage();
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
const uri = process.argv[2];
|
|
18
|
-
const outDir = process.argv[3] || '.';
|
|
19
|
-
if (!uri) {
|
|
20
|
-
printUsage();
|
|
21
|
-
throw new Error('Missing proof URI');
|
|
22
|
-
}
|
|
23
|
-
mkdirSync(outDir, {
|
|
24
|
-
recursive: true
|
|
25
|
-
});
|
|
26
|
-
const proofStore = createProofStoreForUri(uri);
|
|
27
|
-
logger.info(`Processing uri ${uri}`);
|
|
28
|
-
const input = await proofStore.getProofInput(uri);
|
|
29
|
-
logger.info(`Found inputs for ${ProvingRequestType[input.type]}`);
|
|
30
|
-
writeProofInputs(input, outDir);
|
|
31
|
-
console.log(jsonParseWithSchema(jsonStringify(input), ProvingJobInputs).inputs);
|
|
32
|
-
}
|
|
33
|
-
// This mimics the behavior of bb-prover/src/bb/execute.ts
|
|
34
|
-
function writeProofInputs(input, outDir) {
|
|
35
|
-
switch(input.type){
|
|
36
|
-
case ProvingRequestType.PUBLIC_VM:
|
|
37
|
-
{
|
|
38
|
-
writeFileSync(`${outDir}/${AVM_INPUTS_FILENAME}`, input.inputs.serializeWithMessagePack());
|
|
39
|
-
logger.info(`Wrote AVM inputs to ${AVM_INPUTS_FILENAME}`);
|
|
40
|
-
break;
|
|
41
|
-
}
|
|
42
|
-
default:
|
|
43
|
-
{
|
|
44
|
-
throw new Error(`Unimplemented proving request type: ${ProvingRequestType[input.type]}`);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
main().catch((err)=>{
|
|
49
|
-
console.error(err);
|
|
50
|
-
process.exit(1);
|
|
51
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/block-factory/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './light.js';
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
-
import { L2Block } from '@aztec/stdlib/block';
|
|
3
|
-
import type { IBlockFactory, MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
4
|
-
import { type GlobalVariables, type ProcessedTx } from '@aztec/stdlib/tx';
|
|
5
|
-
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
6
|
-
/**
|
|
7
|
-
* Builds a block and its header from a set of processed tx without running any circuits.
|
|
8
|
-
*
|
|
9
|
-
* NOTE: the onus is ON THE CALLER to update the db that is passed in with the notes hashes, nullifiers, etc
|
|
10
|
-
* PRIOR to calling `buildBlock`.
|
|
11
|
-
*
|
|
12
|
-
* Why? Because if you are, e.g. building a block in practice from TxObjects, you are using the
|
|
13
|
-
* PublicProcessor which will do this for you as it processes transactions.
|
|
14
|
-
*
|
|
15
|
-
* If you haven't already inserted the side effects, e.g. because you are in a testing context, you can use the helper
|
|
16
|
-
* function `buildBlockWithCleanDB`, which calls `insertSideEffectsAndBuildBaseRollupHints` for you.
|
|
17
|
-
*/
|
|
18
|
-
export declare class LightweightBlockFactory implements IBlockFactory {
|
|
19
|
-
private db;
|
|
20
|
-
private telemetry;
|
|
21
|
-
private globalVariables?;
|
|
22
|
-
private l1ToL2Messages?;
|
|
23
|
-
private txs;
|
|
24
|
-
private readonly logger;
|
|
25
|
-
constructor(db: MerkleTreeWriteOperations, telemetry?: TelemetryClient);
|
|
26
|
-
startNewBlock(globalVariables: GlobalVariables, l1ToL2Messages: Fr[]): Promise<void>;
|
|
27
|
-
addTxs(txs: ProcessedTx[]): Promise<void>;
|
|
28
|
-
setBlockCompleted(): Promise<L2Block>;
|
|
29
|
-
private buildBlock;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Inserts the processed transactions into the DB, then creates a block.
|
|
33
|
-
* @param db - A db fork to use for block building which WILL BE MODIFIED.
|
|
34
|
-
*/
|
|
35
|
-
export declare function buildBlockWithCleanDB(txs: ProcessedTx[], globalVariables: GlobalVariables, l1ToL2Messages: Fr[], db: MerkleTreeWriteOperations, telemetry?: TelemetryClient): Promise<L2Block>;
|
|
36
|
-
//# sourceMappingURL=light.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"light.d.ts","sourceRoot":"","sources":["../../src/block-factory/light.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEhG,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAmB,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAQnF;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAwB,YAAW,aAAa;IASzD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,SAAS;IATnB,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,cAAc,CAAC,CAAO;IAE9B,OAAO,CAAC,GAAG,CAA4B;IAEvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;gBAG1D,EAAE,EAAE,yBAAyB,EAC7B,SAAS,GAAE,eAAsC;IAGrD,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1F,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;YAIvB,UAAU;CAwBzB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,WAAW,EAAE,EAClB,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,EAAE,EAAE,EACpB,EAAE,EAAE,yBAAyB,EAC7B,SAAS,GAAE,eAAsC,oBAWlD"}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { SpongeBlob } from '@aztec/blob-lib';
|
|
2
|
-
import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
|
|
3
|
-
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
4
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
6
|
-
import { L2Block } from '@aztec/stdlib/block';
|
|
7
|
-
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
8
|
-
import { toNumBlobFields } from '@aztec/stdlib/tx';
|
|
9
|
-
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
10
|
-
import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffectsAndBuildBaseRollupHints } from '../orchestrator/block-building-helpers.js';
|
|
11
|
-
/**
|
|
12
|
-
* Builds a block and its header from a set of processed tx without running any circuits.
|
|
13
|
-
*
|
|
14
|
-
* NOTE: the onus is ON THE CALLER to update the db that is passed in with the notes hashes, nullifiers, etc
|
|
15
|
-
* PRIOR to calling `buildBlock`.
|
|
16
|
-
*
|
|
17
|
-
* Why? Because if you are, e.g. building a block in practice from TxObjects, you are using the
|
|
18
|
-
* PublicProcessor which will do this for you as it processes transactions.
|
|
19
|
-
*
|
|
20
|
-
* If you haven't already inserted the side effects, e.g. because you are in a testing context, you can use the helper
|
|
21
|
-
* function `buildBlockWithCleanDB`, which calls `insertSideEffectsAndBuildBaseRollupHints` for you.
|
|
22
|
-
*/ export class LightweightBlockFactory {
|
|
23
|
-
db;
|
|
24
|
-
telemetry;
|
|
25
|
-
globalVariables;
|
|
26
|
-
l1ToL2Messages;
|
|
27
|
-
txs;
|
|
28
|
-
logger;
|
|
29
|
-
constructor(db, telemetry = getTelemetryClient()){
|
|
30
|
-
this.db = db;
|
|
31
|
-
this.telemetry = telemetry;
|
|
32
|
-
this.logger = createLogger('lightweight-block-factory');
|
|
33
|
-
}
|
|
34
|
-
async startNewBlock(globalVariables, l1ToL2Messages) {
|
|
35
|
-
this.logger.debug('Starting new block', {
|
|
36
|
-
globalVariables: globalVariables.toInspect(),
|
|
37
|
-
l1ToL2Messages
|
|
38
|
-
});
|
|
39
|
-
this.globalVariables = globalVariables;
|
|
40
|
-
this.l1ToL2Messages = padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
41
|
-
this.txs = undefined;
|
|
42
|
-
// Update L1 to L2 tree
|
|
43
|
-
await this.db.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, this.l1ToL2Messages);
|
|
44
|
-
}
|
|
45
|
-
addTxs(txs) {
|
|
46
|
-
// Most times, `addTxs` is only called once per block.
|
|
47
|
-
// So avoid copies.
|
|
48
|
-
if (this.txs === undefined) {
|
|
49
|
-
this.txs = txs;
|
|
50
|
-
} else {
|
|
51
|
-
this.txs.push(...txs);
|
|
52
|
-
}
|
|
53
|
-
return Promise.resolve();
|
|
54
|
-
}
|
|
55
|
-
setBlockCompleted() {
|
|
56
|
-
return this.buildBlock();
|
|
57
|
-
}
|
|
58
|
-
async buildBlock() {
|
|
59
|
-
const { header, body } = await buildHeaderAndBodyFromTxs(this.txs ?? [], this.globalVariables, this.l1ToL2Messages, this.db);
|
|
60
|
-
header.state.validate();
|
|
61
|
-
await this.db.updateArchive(header);
|
|
62
|
-
const newArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, this.db);
|
|
63
|
-
const block = new L2Block(newArchive, header, body);
|
|
64
|
-
this.logger.debug(`Built block ${block.number}`, {
|
|
65
|
-
globalVariables: this.globalVariables?.toInspect(),
|
|
66
|
-
archiveRoot: newArchive.root.toString(),
|
|
67
|
-
stateReference: header.state.toInspect(),
|
|
68
|
-
blockHash: (await block.hash()).toString(),
|
|
69
|
-
txs: block.body.txEffects.map((tx)=>tx.txHash.toString())
|
|
70
|
-
});
|
|
71
|
-
return block;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Inserts the processed transactions into the DB, then creates a block.
|
|
76
|
-
* @param db - A db fork to use for block building which WILL BE MODIFIED.
|
|
77
|
-
*/ export async function buildBlockWithCleanDB(txs, globalVariables, l1ToL2Messages, db, telemetry = getTelemetryClient()) {
|
|
78
|
-
const spongeBlobState = SpongeBlob.init(toNumBlobFields(txs));
|
|
79
|
-
const builder = new LightweightBlockFactory(db, telemetry);
|
|
80
|
-
await builder.startNewBlock(globalVariables, l1ToL2Messages);
|
|
81
|
-
const l1ToL2MessageTree = await getTreeSnapshot(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, db);
|
|
82
|
-
for (const tx of txs){
|
|
83
|
-
await insertSideEffectsAndBuildBaseRollupHints(tx, globalVariables, l1ToL2MessageTree, db, spongeBlobState);
|
|
84
|
-
}
|
|
85
|
-
await builder.addTxs(txs);
|
|
86
|
-
return await builder.setBlockCompleted();
|
|
87
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { type ProofUri, type ProvingJobId, type ProvingJobInputs, type ProvingJobInputsMap, type ProvingJobResult, type ProvingJobResultsMap } from '@aztec/stdlib/interfaces/server';
|
|
2
|
-
import { ProvingRequestType } from '@aztec/stdlib/proofs';
|
|
3
|
-
import type { ProofStore } from './proof_store.js';
|
|
4
|
-
export declare class GoogleCloudStorageProofStore implements ProofStore {
|
|
5
|
-
private readonly bucketName;
|
|
6
|
-
private readonly path;
|
|
7
|
-
private readonly storage;
|
|
8
|
-
constructor(bucketName: string, path: string);
|
|
9
|
-
saveProofInput<T extends ProvingRequestType>(id: ProvingJobId, type: T, inputs: ProvingJobInputsMap[T]): Promise<ProofUri>;
|
|
10
|
-
saveProofOutput<T extends ProvingRequestType>(_id: ProvingJobId, _type: T, _result: ProvingJobResultsMap[T]): Promise<ProofUri>;
|
|
11
|
-
getProofInput(uri: ProofUri): Promise<ProvingJobInputs>;
|
|
12
|
-
getProofOutput(_uri: ProofUri): Promise<ProvingJobResult>;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=gcs_proof_store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gcs_proof_store.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proof_store/gcs_proof_store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAE1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAKnD,qBAAa,4BAA6B,YAAW,UAAU;IAI3D,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAGf,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM;IAKlB,cAAc,CAAC,CAAC,SAAS,kBAAkB,EACtD,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,QAAQ,CAAC;IAOpB,eAAe,CAAC,CAAC,SAAS,kBAAkB,EAC1C,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,QAAQ,CAAC;IAIP,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwBpE,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAG1D"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { getProvingJobInputClassFor } from '@aztec/stdlib/interfaces/server';
|
|
2
|
-
import { ProvingRequestType } from '@aztec/stdlib/proofs';
|
|
3
|
-
import { Storage } from '@google-cloud/storage';
|
|
4
|
-
import { join } from 'path';
|
|
5
|
-
const INPUTS_PATH = 'inputs';
|
|
6
|
-
// REFACTOR(#13067): Use the stdlib/file-store instead of referencing google-cloud-storage directly.
|
|
7
|
-
export class GoogleCloudStorageProofStore {
|
|
8
|
-
bucketName;
|
|
9
|
-
path;
|
|
10
|
-
storage;
|
|
11
|
-
constructor(bucketName, path){
|
|
12
|
-
this.bucketName = bucketName;
|
|
13
|
-
this.path = path;
|
|
14
|
-
this.storage = new Storage();
|
|
15
|
-
}
|
|
16
|
-
async saveProofInput(id, type, inputs) {
|
|
17
|
-
const path = join(this.path, INPUTS_PATH, ProvingRequestType[type], id);
|
|
18
|
-
const file = this.storage.bucket(this.bucketName).file(path);
|
|
19
|
-
await file.save(inputs.toBuffer());
|
|
20
|
-
return file.cloudStorageURI.toString();
|
|
21
|
-
}
|
|
22
|
-
saveProofOutput(_id, _type, _result) {
|
|
23
|
-
throw new Error('Not implemented');
|
|
24
|
-
}
|
|
25
|
-
async getProofInput(uri) {
|
|
26
|
-
try {
|
|
27
|
-
const url = new URL(uri);
|
|
28
|
-
const bucket = this.storage.bucket(url.host);
|
|
29
|
-
const path = url.pathname.replace(/^\/+/, '');
|
|
30
|
-
const file = bucket.file(path);
|
|
31
|
-
if (!await file.exists()) {
|
|
32
|
-
throw new Error(`File at ${uri} does not exist`);
|
|
33
|
-
}
|
|
34
|
-
const typeString = path.split('/').at(-2);
|
|
35
|
-
const type = typeString ? ProvingRequestType[typeString] : undefined;
|
|
36
|
-
if (type === undefined) {
|
|
37
|
-
throw new Error(`Unrecognized proof type ${type} in path ${path}`);
|
|
38
|
-
}
|
|
39
|
-
const contents = await file.download();
|
|
40
|
-
const inputs = getProvingJobInputClassFor(type).fromBuffer(contents[0]);
|
|
41
|
-
return {
|
|
42
|
-
inputs,
|
|
43
|
-
type
|
|
44
|
-
};
|
|
45
|
-
} catch (err) {
|
|
46
|
-
throw new Error(`Error getting proof input at ${uri}: ${err}`);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
getProofOutput(_uri) {
|
|
50
|
-
throw new Error('Not implemented');
|
|
51
|
-
}
|
|
52
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { Timer } from '@aztec/foundation/timer';
|
|
2
|
-
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
3
|
-
export declare class ProvingAgentInstrumentation {
|
|
4
|
-
private idleTime;
|
|
5
|
-
constructor(client: TelemetryClient, name?: string);
|
|
6
|
-
recordIdleTime(msOrTimer: Timer | number): void;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=proving_agent_instrumentation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"proving_agent_instrumentation.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_agent_instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAA2B,KAAK,eAAe,EAAa,MAAM,yBAAyB,CAAC;AAEnG,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAY;gBAEhB,MAAM,EAAE,eAAe,EAAE,IAAI,SAAiB;IAU1D,cAAc,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM;CAIzC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Metrics, ValueType } from '@aztec/telemetry-client';
|
|
2
|
-
export class ProvingAgentInstrumentation {
|
|
3
|
-
idleTime;
|
|
4
|
-
constructor(client, name = 'ProvingAgent'){
|
|
5
|
-
const meter = client.getMeter(name);
|
|
6
|
-
this.idleTime = meter.createHistogram(Metrics.PROVING_AGENT_IDLE, {
|
|
7
|
-
description: 'Records how long an agent was idle',
|
|
8
|
-
unit: 's',
|
|
9
|
-
valueType: ValueType.DOUBLE
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
recordIdleTime(msOrTimer) {
|
|
13
|
-
const duration = typeof msOrTimer === 'number' ? msOrTimer : msOrTimer.ms();
|
|
14
|
-
this.idleTime.record(duration / 1000);
|
|
15
|
-
}
|
|
16
|
-
}
|