Skip to content

Commit 4d04e62

Browse files
authored
feat!: Use combined p2p and http prover coordination (#13760)
Refactors prover coordination to allow tx retrieval by the prover node over p2p and/or http using known nodes.
1 parent 640dd08 commit 4d04e62

File tree

22 files changed

+706
-213
lines changed

22 files changed

+706
-213
lines changed

spartan/aztec-network/templates/prover-node.yaml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -144,11 +144,7 @@ spec:
144144
value: "{{ .Values.proverNode.proverBroker.jobTimeoutMs }}"
145145
- name: PROVER_BROKER_JOB_MAX_RETRIES
146146
value: "{{ .Values.proverNode.proverBroker.jobMaxRetries }}"
147-
- name: PROVER_NODE_TX_GATHERING_TIMEOUT_MS
148-
value: "{{ .Values.proverNode.txGathering.timeoutMs }}"
149-
- name: PROVER_NODE_TX_GATHERING_INTERVAL_MS
150-
value: "{{ .Values.proverNode.txGathering.intervalMs }}"
151-
- name: PROVER_NODE_TX_GATHERING_MAX_PARALLEL_REQUESTS
147+
- name: PROVER_NODE_TX_GATHERING_MAX_PARALLEL_REQUESTS_PER_NODE
152148
value: "{{ .Values.proverNode.txGathering.maxParallelRequests }}"
153149
- name: PROVER_FAILED_PROOF_STORE
154150
value: "{{ .Values.proverNode.failedProofStore }}"

yarn-project/aztec/src/cli/cmds/start_prover_node.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,8 @@ export async function startProverNode(
108108
const proverNode = await createProverNode(proverConfig, { telemetry, broker }, { prefilledPublicData });
109109
services.proverNode = [proverNode, ProverNodeApiSchema];
110110

111-
const p2p = proverNode.getP2P();
112-
if (p2p) {
113-
services.p2p = [proverNode.getP2P(), P2PApiSchema];
111+
if (proverNode.getP2P()) {
112+
services.p2p = [proverNode.getP2P()!, P2PApiSchema];
114113
}
115114

116115
if (!proverConfig.proverBrokerUrl) {

yarn-project/end-to-end/src/e2e_prover/e2e_prover_test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ export class FullProverTest {
282282
this.logger.verbose('Starting prover node');
283283
const proverConfig: ProverNodeConfig = {
284284
...this.context.aztecNodeConfig,
285-
proverCoordinationNodeUrl: undefined,
285+
proverCoordinationNodeUrls: [],
286286
dataDirectory: undefined,
287287
proverId: this.proverAddress.toField(),
288288
realProofs: this.realProofs,
@@ -291,9 +291,9 @@ export class FullProverTest {
291291
proverNodeMaxPendingJobs: 100,
292292
proverNodeMaxParallelBlocksPerEpoch: 32,
293293
proverNodePollingIntervalMs: 100,
294-
txGatheringTimeoutMs: 60000,
295294
txGatheringIntervalMs: 1000,
296-
txGatheringMaxParallelRequests: 100,
295+
txGatheringBatchSize: 10,
296+
txGatheringMaxParallelRequestsPerNode: 100,
297297
};
298298
const sponsoredFPCAddress = await getSponsoredFPCAddress();
299299
const { prefilledPublicData } = await getGenesisValues(

yarn-project/end-to-end/src/e2e_snapshot_sync.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,13 @@ describe('e2e_snapshot_sync', () => {
6868
...context.config,
6969
dataDirectory: join(context.config.dataDirectory!, randomBytes(8).toString('hex')),
7070
p2pEnabled: true, // So we don't need prover coordination
71-
proverCoordinationNodeUrl: undefined,
71+
proverCoordinationNodeUrls: [],
7272
proverNodeMaxPendingJobs: 10,
7373
proverNodeMaxParallelBlocksPerEpoch: 32,
7474
proverNodePollingIntervalMs: 200,
75-
txGatheringTimeoutMs: 60000,
7675
txGatheringIntervalMs: 1000,
77-
txGatheringMaxParallelRequests: 100,
76+
txGatheringBatchSize: 10,
77+
txGatheringMaxParallelRequestsPerNode: 10,
7878
proverAgentCount: 1,
7979
realProofs: false,
8080
...config,

yarn-project/end-to-end/src/fixtures/utils.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -801,17 +801,17 @@ export async function createAndSyncProverNode(
801801
// Prover node config is for simulated proofs
802802
const proverConfig: ProverNodeConfig = {
803803
...aztecNodeConfig,
804-
proverCoordinationNodeUrl: undefined,
804+
proverCoordinationNodeUrls: [],
805805
dataDirectory: undefined,
806806
realProofs: false,
807807
proverAgentCount: 2,
808808
publisherPrivateKey: proverNodePrivateKey,
809809
proverNodeMaxPendingJobs: 10,
810810
proverNodeMaxParallelBlocksPerEpoch: 32,
811811
proverNodePollingIntervalMs: 200,
812-
txGatheringTimeoutMs: 60000,
813812
txGatheringIntervalMs: 1000,
814-
txGatheringMaxParallelRequests: 100,
813+
txGatheringBatchSize: 10,
814+
txGatheringMaxParallelRequestsPerNode: 10,
815815
};
816816

817817
const l1TxUtils = createDelayedL1TxUtils(aztecNodeConfig, proverNodePrivateKey, 'prover-node');

yarn-project/foundation/src/config/env_var.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,15 +132,15 @@ export type EnvVar =
132132
| 'PROVER_BROKER_BATCH_INTERVAL_MS'
133133
| 'PROVER_BROKER_BATCH_SIZE'
134134
| 'PROVER_BROKER_MAX_EPOCHS_TO_KEEP_RESULTS_FOR'
135-
| 'PROVER_COORDINATION_NODE_URL'
135+
| 'PROVER_COORDINATION_NODE_URLS'
136136
| 'PROVER_FAILED_PROOF_STORE'
137137
| 'PROVER_ID'
138138
| 'PROVER_NODE_POLLING_INTERVAL_MS'
139139
| 'PROVER_NODE_MAX_PENDING_JOBS'
140140
| 'PROVER_NODE_MAX_PARALLEL_BLOCKS_PER_EPOCH'
141-
| 'PROVER_NODE_TX_GATHERING_TIMEOUT_MS'
142141
| 'PROVER_NODE_TX_GATHERING_INTERVAL_MS'
143-
| 'PROVER_NODE_TX_GATHERING_MAX_PARALLEL_REQUESTS'
142+
| 'PROVER_NODE_TX_GATHERING_BATCH_SIZE'
143+
| 'PROVER_NODE_TX_GATHERING_MAX_PARALLEL_REQUESTS_PER_NODE'
144144
| 'PROVER_PUBLISH_RETRY_INTERVAL_MS'
145145
| 'PROVER_PUBLISHER_PRIVATE_KEY'
146146
| 'PROVER_REAL_PROOFS'

0 commit comments

Comments
 (0)