@aztec/prover-node 0.0.1-commit.2ed92850 → 0.0.1-commit.3100065

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.
Files changed (75) hide show
  1. package/README.md +511 -0
  2. package/dest/actions/download-epoch-proving-job.js +1 -1
  3. package/dest/actions/rerun-epoch-proving-job.d.ts +5 -4
  4. package/dest/actions/rerun-epoch-proving-job.d.ts.map +1 -1
  5. package/dest/actions/rerun-epoch-proving-job.js +102 -22
  6. package/dest/actions/upload-epoch-proof-failure.d.ts +2 -2
  7. package/dest/actions/upload-epoch-proof-failure.d.ts.map +1 -1
  8. package/dest/bin/run-failed-epoch.js +6 -5
  9. package/dest/checkpoint-store.d.ts +88 -0
  10. package/dest/checkpoint-store.d.ts.map +1 -0
  11. package/dest/checkpoint-store.js +169 -0
  12. package/dest/config.d.ts +5 -8
  13. package/dest/config.d.ts.map +1 -1
  14. package/dest/config.js +17 -20
  15. package/dest/factory.d.ts +19 -13
  16. package/dest/factory.d.ts.map +1 -1
  17. package/dest/factory.js +40 -65
  18. package/dest/index.d.ts +2 -1
  19. package/dest/index.d.ts.map +1 -1
  20. package/dest/index.js +1 -0
  21. package/dest/job/checkpoint-prover.d.ts +124 -0
  22. package/dest/job/checkpoint-prover.d.ts.map +1 -0
  23. package/dest/job/checkpoint-prover.js +330 -0
  24. package/dest/job/epoch-session.d.ts +146 -0
  25. package/dest/job/epoch-session.d.ts.map +1 -0
  26. package/dest/job/{epoch-proving-job.js → epoch-session.js} +277 -295
  27. package/dest/job/top-tree-job.d.ts +82 -0
  28. package/dest/job/top-tree-job.d.ts.map +1 -0
  29. package/dest/job/top-tree-job.js +152 -0
  30. package/dest/metrics.d.ts +40 -3
  31. package/dest/metrics.d.ts.map +1 -1
  32. package/dest/metrics.js +112 -7
  33. package/dest/monitors/epoch-monitor.d.ts +1 -1
  34. package/dest/monitors/epoch-monitor.d.ts.map +1 -1
  35. package/dest/monitors/epoch-monitor.js +11 -9
  36. package/dest/proof-publishing-service.d.ts +161 -0
  37. package/dest/proof-publishing-service.d.ts.map +1 -0
  38. package/dest/proof-publishing-service.js +335 -0
  39. package/dest/prover-node-publisher.d.ts +25 -17
  40. package/dest/prover-node-publisher.d.ts.map +1 -1
  41. package/dest/prover-node-publisher.js +201 -63
  42. package/dest/prover-node.d.ts +118 -70
  43. package/dest/prover-node.d.ts.map +1 -1
  44. package/dest/prover-node.js +487 -226
  45. package/dest/prover-publisher-factory.d.ts +7 -5
  46. package/dest/prover-publisher-factory.d.ts.map +1 -1
  47. package/dest/prover-publisher-factory.js +7 -5
  48. package/dest/session-manager.d.ts +158 -0
  49. package/dest/session-manager.d.ts.map +1 -0
  50. package/dest/session-manager.js +482 -0
  51. package/dest/test/index.d.ts +7 -6
  52. package/dest/test/index.d.ts.map +1 -1
  53. package/package.json +23 -22
  54. package/src/actions/download-epoch-proving-job.ts +1 -1
  55. package/src/actions/rerun-epoch-proving-job.ts +115 -28
  56. package/src/actions/upload-epoch-proof-failure.ts +1 -1
  57. package/src/bin/run-failed-epoch.ts +5 -3
  58. package/src/checkpoint-store.ts +194 -0
  59. package/src/config.ts +25 -32
  60. package/src/factory.ts +68 -111
  61. package/src/index.ts +1 -0
  62. package/src/job/checkpoint-prover.ts +442 -0
  63. package/src/job/epoch-session.ts +436 -0
  64. package/src/job/top-tree-job.ts +227 -0
  65. package/src/metrics.ts +129 -12
  66. package/src/monitors/epoch-monitor.ts +5 -6
  67. package/src/proof-publishing-service.ts +427 -0
  68. package/src/prover-node-publisher.ts +236 -80
  69. package/src/prover-node.ts +562 -254
  70. package/src/prover-publisher-factory.ts +16 -10
  71. package/src/session-manager.ts +583 -0
  72. package/src/test/index.ts +6 -6
  73. package/dest/job/epoch-proving-job.d.ts +0 -62
  74. package/dest/job/epoch-proving-job.d.ts.map +0 -1
  75. package/src/job/epoch-proving-job.ts +0 -430
package/dest/factory.d.ts CHANGED
@@ -1,27 +1,33 @@
1
- import { type Archiver } from '@aztec/archiver';
1
+ import type { Archiver } from '@aztec/archiver';
2
+ import type { BlobClientInterface } from '@aztec/blob-client/client';
3
+ import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
4
  import { L1TxUtils } from '@aztec/ethereum/l1-tx-utils';
3
5
  import { type Logger } from '@aztec/foundation/log';
4
6
  import { DateProvider } from '@aztec/foundation/timer';
5
- import type { DataStoreConfig } from '@aztec/kv-store/config';
6
- import { type KeyStoreConfig } from '@aztec/node-keystore';
7
- import type { AztecNode, ProvingJobBroker } from '@aztec/stdlib/interfaces/server';
8
- import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
7
+ import { KeystoreManager } from '@aztec/node-keystore';
8
+ import { type ProverClientUserConfig } from '@aztec/prover-client';
9
+ import { type ProverPublisherConfig, type ProverTxSenderConfig } from '@aztec/sequencer-client';
10
+ import type { ITxProvider, ProverConfig, ProvingJobBroker, Service, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
9
11
  import { type TelemetryClient } from '@aztec/telemetry-client';
10
- import { type ProverNodeConfig } from './config.js';
12
+ import type { SpecificProverNodeConfig } from './config.js';
11
13
  import { ProverNode } from './prover-node.js';
12
14
  import { ProverPublisherFactory } from './prover-publisher-factory.js';
13
15
  export type ProverNodeDeps = {
14
16
  telemetry?: TelemetryClient;
15
17
  log?: Logger;
16
- aztecNodeTxProvider?: Pick<AztecNode, 'getTxsByHash'>;
17
- archiver?: Archiver;
18
+ archiver: Archiver;
18
19
  publisherFactory?: ProverPublisherFactory;
19
20
  broker?: ProvingJobBroker;
20
21
  l1TxUtils?: L1TxUtils;
21
22
  dateProvider?: DateProvider;
23
+ worldStateSynchronizer: WorldStateSynchronizer;
24
+ p2pClient: {
25
+ getTxProvider(): ITxProvider;
26
+ } & Partial<Service>;
27
+ epochCache: EpochCacheInterface;
28
+ blobClient: BlobClientInterface;
29
+ keyStoreManager?: KeystoreManager;
22
30
  };
23
- /** Creates a new prover node given a config. */
24
- export declare function createProverNode(userConfig: ProverNodeConfig & DataStoreConfig & KeyStoreConfig, deps?: ProverNodeDeps, options?: {
25
- prefilledPublicData?: PublicDataTreeLeaf[];
26
- }): Promise<ProverNode>;
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFrQixNQUFNLGlCQUFpQixDQUFDO0FBTWhFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLGNBQWMsRUFBa0QsTUFBTSxzQkFBc0IsQ0FBQztBQVMzRyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuRixPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlELE9BQU8sRUFBYSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUs5RixPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBMkIsTUFBTSxhQUFhLENBQUM7QUFFN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXZFLE1BQU0sTUFBTSxjQUFjLEdBQUc7SUFDM0IsU0FBUyxDQUFDLEVBQUUsZUFBZSxDQUFDO0lBQzVCLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNiLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN0RCxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUM7SUFDcEIsZ0JBQWdCLENBQUMsRUFBRSxzQkFBc0IsQ0FBQztJQUMxQyxNQUFNLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztJQUMxQixTQUFTLENBQUMsRUFBRSxTQUFTLENBQUM7SUFDdEIsWUFBWSxDQUFDLEVBQUUsWUFBWSxDQUFDO0NBQzdCLENBQUM7QUFFRixnREFBZ0Q7QUFDaEQsd0JBQXNCLGdCQUFnQixDQUNwQyxVQUFVLEVBQUUsZ0JBQWdCLEdBQUcsZUFBZSxHQUFHLGNBQWMsRUFDL0QsSUFBSSxHQUFFLGNBQW1CLEVBQ3pCLE9BQU8sR0FBRTtJQUNQLG1CQUFtQixDQUFDLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztDQUN2Qyx1QkFpTFAifQ==
31
+ /** Creates a new prover node subsystem given a config and dependencies */
32
+ export declare function createProverNode(userConfig: SpecificProverNodeConfig & ProverConfig & ProverClientUserConfig & ProverPublisherConfig & ProverTxSenderConfig, deps: ProverNodeDeps): Promise<ProverNode>;
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSTlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQTJCLEtBQUssc0JBQXNCLEVBQXNCLE1BQU0sc0JBQXNCLENBQUM7QUFFaEgsT0FBTyxFQUNMLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssb0JBQW9CLEVBRTFCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxLQUFLLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsT0FBTyxFQUNQLHNCQUFzQixFQUN2QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBYSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUk5RixPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFdkUsTUFBTSxNQUFNLGNBQWMsR0FBRztJQUMzQixTQUFTLENBQUMsRUFBRSxlQUFlLENBQUM7SUFDNUIsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2IsUUFBUSxFQUFFLFFBQVEsQ0FBQztJQUNuQixnQkFBZ0IsQ0FBQyxFQUFFLHNCQUFzQixDQUFDO0lBQzFDLE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0lBQzFCLFNBQVMsQ0FBQyxFQUFFLFNBQVMsQ0FBQztJQUN0QixZQUFZLENBQUMsRUFBRSxZQUFZLENBQUM7SUFDNUIsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUM7SUFDL0MsU0FBUyxFQUFFO1FBQUUsYUFBYSxJQUFJLFdBQVcsQ0FBQTtLQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELFVBQVUsRUFBRSxtQkFBbUIsQ0FBQztJQUNoQyxVQUFVLEVBQUUsbUJBQW1CLENBQUM7SUFDaEMsZUFBZSxDQUFDLEVBQUUsZUFBZSxDQUFDO0NBQ25DLENBQUM7QUFFRiwwRUFBMEU7QUFDMUUsd0JBQXNCLGdCQUFnQixDQUNwQyxVQUFVLEVBQUUsd0JBQXdCLEdBQ2xDLFlBQVksR0FDWixzQkFBc0IsR0FDdEIscUJBQXFCLEdBQ3JCLG9CQUFvQixFQUN0QixJQUFJLEVBQUUsY0FBYyx1QkFnSXJCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,iBAAiB,CAAC;AAMhE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAGxD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,KAAK,cAAc,EAAkD,MAAM,sBAAsB,CAAC;AAS3G,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAa,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAK9F,OAAO,EAAE,KAAK,gBAAgB,EAA2B,MAAM,aAAa,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACtD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,gDAAgD;AAChD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,gBAAgB,GAAG,eAAe,GAAG,cAAc,EAC/D,IAAI,GAAE,cAAmB,EACzB,OAAO,GAAE;IACP,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC,uBAiLP"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAI9D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAGxD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAA2B,KAAK,sBAAsB,EAAsB,MAAM,sBAAsB,CAAC;AAEhH,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAE1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,OAAO,EACP,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAa,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAI9F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,SAAS,EAAE;QAAE,aAAa,IAAI,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,UAAU,EAAE,mBAAmB,CAAC;IAChC,UAAU,EAAE,mBAAmB,CAAC;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AAEF,0EAA0E;AAC1E,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,wBAAwB,GAClC,YAAY,GACZ,sBAAsB,GACtB,qBAAqB,GACrB,oBAAoB,EACtB,IAAI,EAAE,cAAc,uBAgIrB"}
package/dest/factory.js CHANGED
@@ -1,57 +1,34 @@
1
- import { createArchiver } from '@aztec/archiver';
2
- import { BBCircuitVerifier, QueuedIVCVerifier, TestCircuitVerifier } from '@aztec/bb-prover';
3
- import { createBlobClientWithFileStores } from '@aztec/blob-client/client';
4
- import { EpochCache } from '@aztec/epoch-cache';
1
+ import { Blob } from '@aztec/blob-lib';
5
2
  import { createEthereumChain } from '@aztec/ethereum/chain';
3
+ import { makeL1HttpTransport } from '@aztec/ethereum/client';
6
4
  import { RollupContract } from '@aztec/ethereum/contracts';
7
5
  import { PublisherManager } from '@aztec/ethereum/publisher-manager';
8
6
  import { pick } from '@aztec/foundation/collection';
9
7
  import { createLogger } from '@aztec/foundation/log';
10
8
  import { DateProvider } from '@aztec/foundation/timer';
11
- import { KeystoreManager, loadKeystores, mergeKeystores } from '@aztec/node-keystore';
12
- import { trySnapshotSync } from '@aztec/node-lib/actions';
13
- import { createForwarderL1TxUtilsFromEthSigner, createL1TxUtilsFromEthSignerWithStore } from '@aztec/node-lib/factories';
14
- import { NodeRpcTxSource, createP2PClient } from '@aztec/p2p';
9
+ import { createForwarderL1TxUtilsFromSigners, createL1TxUtilsFromSigners } from '@aztec/node-lib/factories';
15
10
  import { createProverClient } from '@aztec/prover-client';
16
11
  import { createAndStartProvingBroker } from '@aztec/prover-client/broker';
17
- import { P2PClientType } from '@aztec/stdlib/p2p';
18
- import { getPackageVersion } from '@aztec/stdlib/update-checker';
12
+ import { getPublisherConfigFromProverConfig } from '@aztec/sequencer-client';
19
13
  import { L1Metrics, getTelemetryClient } from '@aztec/telemetry-client';
20
- import { createWorldStateSynchronizer } from '@aztec/world-state';
21
- import { createPublicClient, fallback, http } from 'viem';
22
- import { createKeyStoreForProver } from './config.js';
23
- import { EpochMonitor } from './monitors/epoch-monitor.js';
14
+ import { createPublicClient } from 'viem';
24
15
  import { ProverNode } from './prover-node.js';
25
16
  import { ProverPublisherFactory } from './prover-publisher-factory.js';
26
- /** Creates a new prover node given a config. */ export async function createProverNode(userConfig, deps = {}, options = {}) {
17
+ /** Creates a new prover node subsystem given a config and dependencies */ export async function createProverNode(userConfig, deps) {
27
18
  const config = {
28
19
  ...userConfig
29
20
  };
30
21
  const telemetry = deps.telemetry ?? getTelemetryClient();
31
22
  const dateProvider = deps.dateProvider ?? new DateProvider();
32
- const blobClient = await createBlobClientWithFileStores(config, createLogger('prover-node:blob-client:client'));
33
- const log = deps.log ?? createLogger('prover-node');
34
- // Build a key store from file if given or from environment otherwise
35
- let keyStoreManager;
36
- const keyStoreProvided = config.keyStoreDirectory !== undefined && config.keyStoreDirectory.length > 0;
37
- if (keyStoreProvided) {
38
- const keyStores = loadKeystores(config.keyStoreDirectory);
39
- keyStoreManager = new KeystoreManager(mergeKeystores(keyStores));
40
- } else {
41
- const keyStore = createKeyStoreForProver(config);
42
- if (keyStore) {
43
- keyStoreManager = new KeystoreManager(keyStore);
44
- }
45
- }
46
- await keyStoreManager?.validateSigners();
23
+ const log = deps.log ?? createLogger('prover');
24
+ const { p2pClient, archiver, keyStoreManager, worldStateSynchronizer } = deps;
47
25
  // Extract the prover signers from the key store and verify that we have one.
26
+ await keyStoreManager?.validateSigners();
48
27
  const proverSigners = keyStoreManager?.createProverSigners();
49
28
  if (proverSigners === undefined) {
50
29
  throw new Error('Failed to create prover key store configuration');
51
30
  } else if (proverSigners.signers.length === 0) {
52
31
  throw new Error('No prover signers found in the key store');
53
- } else if (!keyStoreProvided) {
54
- log.warn('KEY STORE CREATED FROM ENVIRONMENT, IT IS RECOMMENDED TO USE A FILE-BASED KEY STORE IN PRODUCTION ENVIRONMENTS');
55
32
  }
56
33
  log.info(`Creating prover with publishers ${proverSigners.signers.map((signer)=>signer.address.toString()).join()}`);
57
34
  // Only consider user provided config if it is valid
@@ -63,41 +40,29 @@ import { ProverPublisherFactory } from './prover-publisher-factory.js';
63
40
  ...config,
64
41
  proverId
65
42
  };
66
- await trySnapshotSync(config, log);
67
- const epochCache = await EpochCache.create(config.l1Contracts.rollupAddress, config);
68
- const archiver = deps.archiver ?? await createArchiver(config, {
69
- blobClient,
70
- epochCache,
71
- telemetry,
72
- dateProvider
73
- }, {
74
- blockUntilSync: true
75
- });
76
- log.verbose(`Created archiver and synced to block ${await archiver.getBlockNumber()}`);
77
- const worldStateSynchronizer = await createWorldStateSynchronizer(config, archiver, options.prefilledPublicData, telemetry);
78
- await worldStateSynchronizer.start();
79
43
  const broker = deps.broker ?? await createAndStartProvingBroker(config, telemetry);
80
44
  const prover = await createProverClient(proverClientConfig, worldStateSynchronizer, broker, telemetry);
81
45
  const { l1RpcUrls: rpcUrls, l1ChainId: chainId } = config;
82
46
  const chain = createEthereumChain(rpcUrls, chainId);
83
47
  const publicClient = createPublicClient({
84
48
  chain: chain.chainInfo,
85
- transport: fallback(config.l1RpcUrls.map((url)=>http(url, {
86
- batch: false
87
- }))),
49
+ transport: makeL1HttpTransport(config.l1RpcUrls, {
50
+ timeout: config.l1HttpTimeoutMS
51
+ }),
88
52
  pollingInterval: config.viemPollingIntervalMS
89
53
  });
90
- const rollupContract = new RollupContract(publicClient, config.l1Contracts.rollupAddress.toString());
54
+ const rollupContract = new RollupContract(publicClient, config.rollupAddress.toString());
91
55
  const l1TxUtils = deps.l1TxUtils ? [
92
56
  deps.l1TxUtils
93
- ] : config.publisherForwarderAddress ? await createForwarderL1TxUtilsFromEthSigner(publicClient, proverSigners.signers, config.publisherForwarderAddress, {
57
+ ] : config.proverPublisherForwarderAddress ? await createForwarderL1TxUtilsFromSigners(publicClient, proverSigners.signers, config.proverPublisherForwarderAddress, {
94
58
  ...config,
95
59
  scope: 'prover'
96
60
  }, {
97
61
  telemetry,
98
62
  logger: log.createChild('l1-tx-utils'),
99
- dateProvider
100
- }) : await createL1TxUtilsFromEthSignerWithStore(publicClient, proverSigners.signers, {
63
+ dateProvider,
64
+ kzg: Blob.getViemKzgInstance()
65
+ }) : await createL1TxUtilsFromSigners(publicClient, proverSigners.signers, {
101
66
  ...config,
102
67
  scope: 'prover'
103
68
  }, {
@@ -105,25 +70,35 @@ import { ProverPublisherFactory } from './prover-publisher-factory.js';
105
70
  logger: log.createChild('l1-tx-utils'),
106
71
  dateProvider
107
72
  });
73
+ // Create a funder L1TxUtils from the keystore funding account (if configured)
74
+ const fundingSigner = keyStoreManager?.createFundingSigner();
75
+ let funderL1TxUtils;
76
+ if (fundingSigner) {
77
+ const [funder] = await createL1TxUtilsFromSigners(publicClient, [
78
+ fundingSigner
79
+ ], {
80
+ ...config,
81
+ scope: 'prover'
82
+ }, {
83
+ telemetry,
84
+ logger: log.createChild('l1-tx-utils:funder'),
85
+ dateProvider
86
+ });
87
+ funderL1TxUtils = funder;
88
+ }
108
89
  const publisherFactory = deps.publisherFactory ?? new ProverPublisherFactory(config, {
109
90
  rollupContract,
110
- publisherManager: new PublisherManager(l1TxUtils, config),
91
+ publisherManager: new PublisherManager(l1TxUtils, getPublisherConfigFromProverConfig(config), {
92
+ bindings: log.getBindings(),
93
+ funder: funderL1TxUtils
94
+ }),
111
95
  telemetry
112
96
  });
113
- const proofVerifier = new QueuedIVCVerifier(config, config.realProofs || config.debugForceTxProofVerification ? await BBCircuitVerifier.new(config) : new TestCircuitVerifier(config.proverTestVerificationDelayMs));
114
- const p2pClient = await createP2PClient(P2PClientType.Prover, config, archiver, proofVerifier, worldStateSynchronizer, epochCache, getPackageVersion() ?? '', dateProvider, telemetry, {
115
- txCollectionNodeSources: deps.aztecNodeTxProvider ? [
116
- new NodeRpcTxSource(deps.aztecNodeTxProvider, 'TestNode')
117
- ] : []
118
- });
119
- await p2pClient.start();
120
97
  const proverNodeConfig = {
121
98
  ...pick(config, 'proverNodeMaxPendingJobs', 'proverNodeMaxParallelBlocksPerEpoch', 'proverNodePollingIntervalMs', 'proverNodeEpochProvingDelayMs', 'txGatheringMaxParallelRequests', 'txGatheringIntervalMs', 'txGatheringTimeoutMs', 'proverNodeFailedEpochStore', 'proverNodeDisableProofPublish', 'dataDirectory', 'l1ChainId', 'rollupVersion')
122
99
  };
123
- const epochMonitor = await EpochMonitor.create(archiver, {
124
- pollingIntervalMs: config.proverNodePollingIntervalMs,
125
- provingDelayMs: config.proverNodeEpochProvingDelayMs
126
- }, telemetry);
127
100
  const l1Metrics = new L1Metrics(telemetry.getMeter('ProverNodeL1Metrics'), publicClient, l1TxUtils.map((utils)=>utils.getSenderAddress()));
128
- return new ProverNode(prover, publisherFactory, archiver, archiver, archiver, worldStateSynchronizer, p2pClient, epochMonitor, rollupContract, l1Metrics, proverNodeConfig, telemetry);
101
+ // Extract the shared delayer from the first L1TxUtils instance (all instances share the same delayer)
102
+ const delayer = l1TxUtils[0]?.delayer;
103
+ return new ProverNode(prover, publisherFactory, archiver, archiver, archiver, worldStateSynchronizer, p2pClient, rollupContract, l1Metrics, proverNodeConfig, telemetry, delayer, dateProvider);
129
104
  }
package/dest/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from './actions/index.js';
2
2
  export * from './config.js';
3
3
  export * from './factory.js';
4
4
  export * from './monitors/index.js';
5
+ export * from './proof-publishing-service.js';
5
6
  export * from './prover-node-publisher.js';
6
7
  export * from './prover-node.js';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGtCQUFrQixDQUFDIn0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsa0JBQWtCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC"}
package/dest/index.js CHANGED
@@ -2,5 +2,6 @@ export * from './actions/index.js';
2
2
  export * from './config.js';
3
3
  export * from './factory.js';
4
4
  export * from './monitors/index.js';
5
+ export * from './proof-publishing-service.js';
5
6
  export * from './prover-node-publisher.js';
6
7
  export * from './prover-node.js';
@@ -0,0 +1,124 @@
1
+ import { type ARCHIVE_HEIGHT } from '@aztec/constants';
2
+ import { type EpochNumber, type SlotNumber } from '@aztec/foundation/branded-types';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
+ import type { EthAddress } from '@aztec/foundation/eth-address';
5
+ import type { Logger } from '@aztec/foundation/log';
6
+ import type { Tuple } from '@aztec/foundation/serialize';
7
+ import { type DateProvider } from '@aztec/foundation/timer';
8
+ import type { EpochProverFactory } from '@aztec/prover-client';
9
+ import type { ChonkCache, SubTreeResult } from '@aztec/prover-client/orchestrator';
10
+ import type { PublicProcessorFactory } from '@aztec/simulator/server';
11
+ import type { CommitteeAttestation } from '@aztec/stdlib/block';
12
+ import type { Checkpoint } from '@aztec/stdlib/checkpoint';
13
+ import type { ForkMerkleTreeOperations, ITxProvider } from '@aztec/stdlib/interfaces/server';
14
+ import type { BlockHeader, Tx } from '@aztec/stdlib/tx';
15
+ import type { ProverNodeJobMetrics } from '../metrics.js';
16
+ /** Dependencies a `CheckpointProver` needs at construction. */
17
+ export type CheckpointProverDeps = {
18
+ proverFactory: EpochProverFactory;
19
+ /** Shared chonk-verifier cache. Survives across all sessions / epochs. */
20
+ chonkCache: ChonkCache;
21
+ publicProcessorFactory: PublicProcessorFactory;
22
+ dbProvider: Pick<ForkMerkleTreeOperations, 'fork'>;
23
+ txProvider: ITxProvider;
24
+ /** Clock the prover-node operates against — e2e fixtures inject a cheat-controlled one. */
25
+ dateProvider: DateProvider;
26
+ proverId: EthAddress;
27
+ metrics: ProverNodeJobMetrics;
28
+ /** Tx gathering deadline. */
29
+ txGatheringTimeoutMs: number;
30
+ /** Public processor deadline. */
31
+ deadline: Date | undefined;
32
+ log: Logger;
33
+ };
34
+ /** Inputs that fully describe a checkpoint at register time. */
35
+ export type CheckpointProverArgs = {
36
+ checkpoint: Checkpoint;
37
+ /** Epoch the checkpoint belongs to (derivable from slot + L1 constants; cached at register time). */
38
+ epochNumber: EpochNumber;
39
+ attestations: CommitteeAttestation[];
40
+ previousBlockHeader: BlockHeader;
41
+ l1ToL2Messages: Fr[];
42
+ previousArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>;
43
+ };
44
+ /**
45
+ * Self-contained per-checkpoint prover, content-addressed by
46
+ * `(checkpoint number, slot number, checkpoint archive root)`.
47
+ *
48
+ * The store creates a CheckpointProver once per content-key. Keying on the checkpoint's
49
+ * own archive root (its post-state) means two checkpoints are "the same" iff they
50
+ * produce the same archive — so a reorg branch, or a replacement built on the same
51
+ * predecessor but with different content, keys to a distinct prover.
52
+ *
53
+ * The prover eagerly starts its own tx gather and sub-tree work in the constructor, so
54
+ * callers only need to call `whenBlockProofsReady()` to obtain the resulting block-rollup
55
+ * proofs.
56
+ *
57
+ * A CheckpointProver does not survive a prune: its sub-tree work forks world-state per
58
+ * block, and an L1 prune of a base block faults those reads. The store therefore cancels and
59
+ * discards a prover when its checkpoint is pruned, and a re-add (even of identical content)
60
+ * constructs a fresh prover.
61
+ *
62
+ * `cancel()` is idempotent. It aborts the gather + sub-tree, rejects the block-proof
63
+ * promise, and exposes a `whenDone()` that resolves once teardown has unwound.
64
+ */
65
+ export declare class CheckpointProver {
66
+ private readonly deps;
67
+ readonly id: string;
68
+ readonly checkpoint: Checkpoint;
69
+ readonly epochNumber: EpochNumber;
70
+ readonly slotNumber: SlotNumber;
71
+ readonly attestations: CommitteeAttestation[];
72
+ readonly previousBlockHeader: BlockHeader;
73
+ readonly l1ToL2Messages: Fr[];
74
+ readonly previousArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>;
75
+ /** Per-prover tx map — populated by the internal gather. Empty until then. */
76
+ readonly txs: Map<string, Tx>;
77
+ /** Resolved by the sub-tree on success, rejected on cancel/failure. */
78
+ private readonly blockProofs;
79
+ private cancelled;
80
+ private subTree?;
81
+ private completed;
82
+ private readonly abortController;
83
+ /** Tracks the eager gather+execute task so `cancel()` and `whenDone()` can await its unwind. */
84
+ private readonly runPromise;
85
+ /** Tracks the cancel-driven teardown so `whenDone()` can await it. */
86
+ private cancelPromise?;
87
+ constructor(args: CheckpointProverArgs, deps: CheckpointProverDeps);
88
+ /**
89
+ * Stable content-addressed identifier: `${checkpoint number}:${slot}:${archive root}`.
90
+ * The archive root is the checkpoint's post-state, so it distinguishes any two
91
+ * checkpoints that differ in history or content while collapsing identical re-adds.
92
+ */
93
+ static idFor(checkpoint: Checkpoint): string;
94
+ isCancelled(): boolean;
95
+ /** True once block-level proving has been fully *enqueued* (sub-tree completion may still be pending). */
96
+ isCompleted(): boolean;
97
+ /** AbortSignal that fires on cancel — for callers that want to wire their own tasks. */
98
+ getAbortSignal(): AbortSignal;
99
+ /** Promise that resolves with the block-rollup proofs for this checkpoint (or rejects on cancel/failure). */
100
+ whenBlockProofsReady(): Promise<SubTreeResult['blockProofOutputs']>;
101
+ /** Resolves when all in-flight work for this prover has fully unwound. */
102
+ whenDone(): Promise<void>;
103
+ private gatherAndExecute;
104
+ private gatherTxs;
105
+ private executeCheckpoint;
106
+ /**
107
+ * Mark cancelled. Idempotent. Aborts in-flight work, rejects the block-proof promise,
108
+ * and kicks off a background teardown of the sub-tree. The teardown promise is exposed
109
+ * via `whenDone()`.
110
+ *
111
+ * `routine` distinguishes a post-finalize teardown (sub-tree already proven, fires
112
+ * once at prover exit) from a real abort (reorg, prune, deadline). Behaviour is
113
+ * identical either way; the flag only adjusts log verbosity.
114
+ */
115
+ cancel({ routine }?: {
116
+ routine?: boolean;
117
+ }): void;
118
+ private runCancel;
119
+ private teardownSubTree;
120
+ private getTxsForBlock;
121
+ private processTxs;
122
+ private createFork;
123
+ }
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC1wcm92ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qb2IvY2hlY2twb2ludC1wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssY0FBYyxFQUF1QyxNQUFNLGtCQUFrQixDQUFDO0FBQzVGLE9BQU8sRUFBZSxLQUFLLFdBQVcsRUFBRSxLQUFLLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWpHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQVMsTUFBTSx5QkFBeUIsQ0FBQztBQUduRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFpQyxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEgsT0FBTyxLQUFLLEVBQW1CLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkYsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQVcsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUc3RixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQWUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFckUsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENB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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint-prover.d.ts","sourceRoot":"","sources":["../../src/job/checkpoint-prover.ts"],"names":[],"mappings":"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"}