@aztec/prover-node 0.0.1-commit.c31f2472 → 0.0.1-commit.c52d6e7

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 +572 -0
  2. package/dest/actions/download-epoch-proving-job.js +1 -1
  3. package/dest/actions/rerun-epoch-proving-job.d.ts +14 -4
  4. package/dest/actions/rerun-epoch-proving-job.d.ts.map +1 -1
  5. package/dest/actions/rerun-epoch-proving-job.js +244 -24
  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 +95 -0
  10. package/dest/checkpoint-store.d.ts.map +1 -0
  11. package/dest/checkpoint-store.js +178 -0
  12. package/dest/config.d.ts +7 -8
  13. package/dest/config.d.ts.map +1 -1
  14. package/dest/config.js +24 -20
  15. package/dest/factory.d.ts +22 -13
  16. package/dest/factory.d.ts.map +1 -1
  17. package/dest/factory.js +41 -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 +165 -0
  22. package/dest/job/checkpoint-prover.d.ts.map +1 -0
  23. package/dest/job/checkpoint-prover.js +405 -0
  24. package/dest/job/epoch-session.d.ts +160 -0
  25. package/dest/job/epoch-session.d.ts.map +1 -0
  26. package/dest/job/{epoch-proving-job.js → epoch-session.js} +301 -298
  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 +101 -4
  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 -15
  40. package/dest/prover-node-publisher.d.ts.map +1 -1
  41. package/dest/prover-node-publisher.js +202 -63
  42. package/dest/prover-node.d.ts +146 -69
  43. package/dest/prover-node.d.ts.map +1 -1
  44. package/dest/prover-node.js +545 -221
  45. package/dest/prover-publisher-factory.d.ts +6 -4
  46. package/dest/prover-publisher-factory.d.ts.map +1 -1
  47. package/dest/prover-publisher-factory.js +4 -3
  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 +492 -0
  51. package/dest/test/index.d.ts +7 -6
  52. package/dest/test/index.d.ts.map +1 -1
  53. package/package.json +24 -22
  54. package/src/actions/download-epoch-proving-job.ts +1 -1
  55. package/src/actions/rerun-epoch-proving-job.ts +190 -31
  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 +212 -0
  59. package/src/config.ts +35 -32
  60. package/src/factory.ts +73 -111
  61. package/src/index.ts +1 -0
  62. package/src/job/checkpoint-prover.ts +538 -0
  63. package/src/job/epoch-session.ts +462 -0
  64. package/src/job/top-tree-job.ts +227 -0
  65. package/src/metrics.ts +123 -10
  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 +237 -79
  69. package/src/prover-node.ts +631 -248
  70. package/src/prover-publisher-factory.ts +8 -5
  71. package/src/session-manager.ts +592 -0
  72. package/src/test/index.ts +6 -6
  73. package/dest/job/epoch-proving-job.d.ts +0 -63
  74. package/dest/job/epoch-proving-job.d.ts.map +0 -1
  75. package/src/job/epoch-proving-job.ts +0 -435
package/dest/config.d.ts CHANGED
@@ -1,17 +1,14 @@
1
- import { type ArchiverConfig } from '@aztec/archiver/config';
2
1
  import type { ACVMConfig, BBConfig } from '@aztec/bb-prover/config';
3
- import { type GenesisStateConfig } from '@aztec/ethereum/config';
4
2
  import { type ConfigMappingsType } from '@aztec/foundation/config';
5
- import { type DataStoreConfig } from '@aztec/kv-store/config';
3
+ import { EthAddress } from '@aztec/foundation/eth-address';
6
4
  import { type KeyStoreConfig } from '@aztec/node-keystore/config';
7
5
  import type { KeyStore } from '@aztec/node-keystore/types';
8
6
  import { type SharedNodeConfig } from '@aztec/node-lib/config';
9
- import { type P2PConfig } from '@aztec/p2p/config';
10
7
  import { type ProverAgentConfig, type ProverBrokerConfig } from '@aztec/prover-client/broker/config';
11
8
  import { type ProverClientUserConfig } from '@aztec/prover-client/config';
12
- import { type PublisherConfig, type TxSenderConfig } from '@aztec/sequencer-client/config';
13
- import { type WorldStateConfig } from '@aztec/world-state/config';
14
- export type ProverNodeConfig = ArchiverConfig & ProverClientUserConfig & P2PConfig & WorldStateConfig & PublisherConfig & TxSenderConfig & DataStoreConfig & KeyStoreConfig & SharedNodeConfig & SpecificProverNodeConfig & GenesisStateConfig;
9
+ import { type ProverPublisherConfig, type ProverTxSenderConfig } from '@aztec/sequencer-client/config';
10
+ import { type DataStoreConfig } from '@aztec/stdlib/kv-store';
11
+ export type ProverNodeConfig = ProverClientUserConfig & ProverPublisherConfig & ProverTxSenderConfig & DataStoreConfig & KeyStoreConfig & SpecificProverNodeConfig & Pick<SharedNodeConfig, 'web3SignerUrl'>;
15
12
  export type SpecificProverNodeConfig = {
16
13
  proverNodeMaxPendingJobs: number;
17
14
  proverNodePollingIntervalMs: number;
@@ -23,10 +20,12 @@ export type SpecificProverNodeConfig = {
23
20
  txGatheringIntervalMs: number;
24
21
  txGatheringBatchSize: number;
25
22
  txGatheringMaxParallelRequestsPerNode: number;
23
+ proofSubmissionTargetAddress?: EthAddress;
26
24
  };
25
+ export declare const specificProverNodeConfigMappings: ConfigMappingsType<SpecificProverNodeConfig>;
27
26
  export declare const proverNodeConfigMappings: ConfigMappingsType<ProverNodeConfig>;
28
27
  export declare function getProverNodeConfigFromEnv(): ProverNodeConfig;
29
28
  export declare function getProverNodeBrokerConfigFromEnv(): ProverBrokerConfig;
30
29
  export declare function getProverNodeAgentConfigFromEnv(): ProverAgentConfig & BBConfig & ACVMConfig;
31
30
  export declare function createKeyStoreForProver(config: ProverNodeConfig): KeyStore | undefined;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGNBQWMsRUFBMEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQThCLE1BQU0sd0JBQXdCLENBQUM7QUFDN0YsT0FBTyxFQUNMLEtBQUssa0JBQWtCLEVBSXhCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHdCQUF3QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxLQUFLLGNBQWMsRUFBMEIsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBNEIsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQXFCLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUNMLEtBQUssaUJBQWlCLEVBQ3RCLEtBQUssa0JBQWtCLEVBR3hCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLEtBQUssc0JBQXNCLEVBQWdELE1BQU0sNkJBQTZCLENBQUM7QUFDeEgsT0FBTyxFQUNMLEtBQUssZUFBZSxFQUNwQixLQUFLLGNBQWMsRUFHcEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBNEIsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RixNQUFNLE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxHQUMzQyxzQkFBc0IsR0FDdEIsU0FBUyxHQUNULGdCQUFnQixHQUNoQixlQUFlLEdBQ2YsY0FBYyxHQUNkLGVBQWUsR0FDZixjQUFjLEdBQ2QsZ0JBQWdCLEdBQ2hCLHdCQUF3QixHQUN4QixrQkFBa0IsQ0FBQztBQUVyQixNQUFNLE1BQU0sd0JBQXdCLEdBQUc7SUFDckMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDO0lBQ2pDLDJCQUEyQixFQUFFLE1BQU0sQ0FBQztJQUNwQyxtQ0FBbUMsRUFBRSxNQUFNLENBQUM7SUFDNUMsMEJBQTBCLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUMvQyw2QkFBNkIsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ2xELDZCQUE2QixDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQ3hDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3QixxQkFBcUIsRUFBRSxNQUFNLENBQUM7SUFDOUIsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBQzdCLHFDQUFxQyxFQUFFLE1BQU0sQ0FBQztDQUMvQyxDQUFDO0FBc0RGLGVBQU8sTUFBTSx3QkFBd0IsRUFBRSxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FZekUsQ0FBQztBQUVGLHdCQUFnQiwwQkFBMEIsSUFBSSxnQkFBZ0IsQ0FFN0Q7QUFFRCx3QkFBZ0IsZ0NBQWdDLElBQUksa0JBQWtCLENBSXJFO0FBRUQsd0JBQWdCLCtCQUErQixJQUFJLGlCQUFpQixHQUFHLFFBQVEsR0FBRyxVQUFVLENBSzNGO0FBMERELHdCQUFnQix1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEdBQUcsUUFBUSxHQUFHLFNBQVMsQ0FNdEYifQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsS0FBSyxrQkFBa0IsRUFLeEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssY0FBYyxFQUEwQixNQUFNLDZCQUE2QixDQUFDO0FBRTFGLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUE0QixNQUFNLHdCQUF3QixDQUFDO0FBQ3pGLE9BQU8sRUFDTCxLQUFLLGlCQUFpQixFQUN0QixLQUFLLGtCQUFrQixFQUd4QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLHNCQUFzQixFQUFnRCxNQUFNLDZCQUE2QixDQUFDO0FBQ3hILE9BQU8sRUFDTCxLQUFLLHFCQUFxQixFQUMxQixLQUFLLG9CQUFvQixFQUcxQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx3QkFBd0IsQ0FBQztBQUVsRixNQUFNLE1BQU0sZ0JBQWdCLEdBQUcsc0JBQXNCLEdBQ25ELHFCQUFxQixHQUNyQixvQkFBb0IsR0FDcEIsZUFBZSxHQUNmLGNBQWMsR0FDZCx3QkFBd0IsR0FDeEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBRTFDLE1BQU0sTUFBTSx3QkFBd0IsR0FBRztJQUNyQyx3QkFBd0IsRUFBRSxNQUFNLENBQUM7SUFDakMsMkJBQTJCLEVBQUUsTUFBTSxDQUFDO0lBQ3BDLG1DQUFtQyxFQUFFLE1BQU0sQ0FBQztJQUM1QywwQkFBMEIsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQy9DLDZCQUE2QixFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDbEQsNkJBQTZCLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDeEMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBQzdCLHFCQUFxQixFQUFFLE1BQU0sQ0FBQztJQUM5QixvQkFBb0IsRUFBRSxNQUFNLENBQUM7SUFDN0IscUNBQXFDLEVBQUUsTUFBTSxDQUFDO0lBQzlDLDRCQUE0QixDQUFDLEVBQUUsVUFBVSxDQUFDO0NBQzNDLENBQUM7QUFFRixlQUFPLE1BQU0sZ0NBQWdDLEVBQUUsa0JBQWtCLENBQUMsd0JBQXdCLENBMkR6RixDQUFDO0FBRUYsZUFBTyxNQUFNLHdCQUF3QixFQUFFLGtCQUFrQixDQUFDLGdCQUFnQixDQVF6RSxDQUFDO0FBRUYsd0JBQWdCLDBCQUEwQixJQUFJLGdCQUFnQixDQUU3RDtBQUVELHdCQUFnQixnQ0FBZ0MsSUFBSSxrQkFBa0IsQ0FJckU7QUFFRCx3QkFBZ0IsK0JBQStCLElBQUksaUJBQWlCLEdBQUcsUUFBUSxHQUFHLFVBQVUsQ0FLM0Y7QUEwREQsd0JBQWdCLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsR0FBRyxRQUFRLEdBQUcsU0FBUyxDQVN0RiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,wBAAwB,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,KAAK,kBAAkB,EAA8B,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,6BAA6B,CAAC;AAE1F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGxB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,KAAK,sBAAsB,EAAgD,MAAM,6BAA6B,CAAC;AACxH,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAGpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,2BAA2B,CAAC;AAE5F,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAC3C,sBAAsB,GACtB,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,wBAAwB,GACxB,kBAAkB,CAAC;AAErB,MAAM,MAAM,wBAAwB,GAAG;IACrC,wBAAwB,EAAE,MAAM,CAAC;IACjC,2BAA2B,EAAE,MAAM,CAAC;IACpC,mCAAmC,EAAE,MAAM,CAAC;IAC5C,0BAA0B,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,6BAA6B,EAAE,MAAM,GAAG,SAAS,CAAC;IAClD,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qCAAqC,EAAE,MAAM,CAAC;CAC/C,CAAC;AAsDF,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CAAC,gBAAgB,CAYzE,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,gBAAgB,CAE7D;AAED,wBAAgB,gCAAgC,IAAI,kBAAkB,CAIrE;AAED,wBAAgB,+BAA+B,IAAI,iBAAiB,GAAG,QAAQ,GAAG,UAAU,CAK3F;AA0DD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,QAAQ,GAAG,SAAS,CAMtF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,6BAA6B,CAAC;AAE1F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,wBAAwB,CAAC;AACzF,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGxB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,KAAK,sBAAsB,EAAgD,MAAM,6BAA6B,CAAC;AACxH,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAG1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAElF,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,GACnD,qBAAqB,GACrB,oBAAoB,GACpB,eAAe,GACf,cAAc,GACd,wBAAwB,GACxB,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAE1C,MAAM,MAAM,wBAAwB,GAAG;IACrC,wBAAwB,EAAE,MAAM,CAAC;IACjC,2BAA2B,EAAE,MAAM,CAAC;IACpC,mCAAmC,EAAE,MAAM,CAAC;IAC5C,0BAA0B,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,6BAA6B,EAAE,MAAM,GAAG,SAAS,CAAC;IAClD,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qCAAqC,EAAE,MAAM,CAAC;IAC9C,4BAA4B,CAAC,EAAE,UAAU,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,kBAAkB,CAAC,wBAAwB,CA2DzF,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CAAC,gBAAgB,CAQzE,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,gBAAgB,CAE7D;AAED,wBAAgB,gCAAgC,IAAI,kBAAkB,CAIrE;AAED,wBAAgB,+BAA+B,IAAI,iBAAiB,GAAG,QAAQ,GAAG,UAAU,CAK3F;AA0DD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,QAAQ,GAAG,SAAS,CAStF"}
package/dest/config.js CHANGED
@@ -1,16 +1,13 @@
1
- import { archiverConfigMappings } from '@aztec/archiver/config';
2
- import { genesisStateConfigMappings } from '@aztec/ethereum/config';
3
- import { booleanConfigHelper, getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
4
- import { dataConfigMappings } from '@aztec/kv-store/config';
1
+ import { booleanConfigHelper, getConfigFromMappings, numberConfigHelper, pickConfigMappings } from '@aztec/foundation/config';
2
+ import { EthAddress } from '@aztec/foundation/eth-address';
5
3
  import { keyStoreConfigMappings } from '@aztec/node-keystore/config';
6
4
  import { ethPrivateKeySchema } from '@aztec/node-keystore/schemas';
7
5
  import { sharedNodeConfigMappings } from '@aztec/node-lib/config';
8
- import { p2pConfigMappings } from '@aztec/p2p/config';
9
6
  import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker/config';
10
7
  import { bbConfigMappings, proverClientConfigMappings } from '@aztec/prover-client/config';
11
- import { getPublisherConfigMappings, getTxSenderConfigMappings } from '@aztec/sequencer-client/config';
12
- import { worldStateConfigMappings } from '@aztec/world-state/config';
13
- const specificProverNodeConfigMappings = {
8
+ import { proverPublisherConfigMappings, proverTxSenderConfigMappings } from '@aztec/sequencer-client/config';
9
+ import { dataConfigMappings } from '@aztec/stdlib/kv-store';
10
+ export const specificProverNodeConfigMappings = {
14
11
  proverNodeMaxPendingJobs: {
15
12
  env: 'PROVER_NODE_MAX_PENDING_JOBS',
16
13
  description: 'The maximum number of pending jobs for the prover node',
@@ -24,7 +21,7 @@ const specificProverNodeConfigMappings = {
24
21
  proverNodeMaxParallelBlocksPerEpoch: {
25
22
  env: 'PROVER_NODE_MAX_PARALLEL_BLOCKS_PER_EPOCH',
26
23
  description: 'The Maximum number of blocks to process in parallel while proving an epoch',
27
- ...numberConfigHelper(32)
24
+ ...numberConfigHelper(0)
28
25
  },
29
26
  proverNodeFailedEpochStore: {
30
27
  env: 'PROVER_NODE_FAILED_EPOCH_STORE',
@@ -32,7 +29,7 @@ const specificProverNodeConfigMappings = {
32
29
  defaultValue: undefined
33
30
  },
34
31
  proverNodeEpochProvingDelayMs: {
35
- description: 'Optional delay in milliseconds to wait before proving a new epoch',
32
+ description: 'Optional delay in milliseconds to wait for late-arriving events (e.g. reorgs) to settle before starting top-tree proving for an epoch',
36
33
  defaultValue: undefined
37
34
  },
38
35
  txGatheringIntervalMs: {
@@ -59,20 +56,24 @@ const specificProverNodeConfigMappings = {
59
56
  env: 'PROVER_NODE_DISABLE_PROOF_PUBLISH',
60
57
  description: 'Whether the prover node skips publishing proofs to L1',
61
58
  ...booleanConfigHelper(false)
59
+ },
60
+ proofSubmissionTargetAddress: {
61
+ env: 'PROVER_NODE_PROOF_SUBMISSION_TARGET_ADDRESS',
62
+ description: 'Optional L1 address the submitEpochRootProof tx is sent to. Must expose the identical submitEpochRootProof ABI ' + 'and forward to the rollup. Defaults to the rollup address.',
63
+ parseEnv: (val)=>EthAddress.fromString(val),
64
+ defaultValue: undefined
62
65
  }
63
66
  };
64
67
  export const proverNodeConfigMappings = {
65
68
  ...dataConfigMappings,
66
69
  ...keyStoreConfigMappings,
67
- ...archiverConfigMappings,
68
70
  ...proverClientConfigMappings,
69
- ...p2pConfigMappings,
70
- ...worldStateConfigMappings,
71
- ...getPublisherConfigMappings('PROVER'),
72
- ...getTxSenderConfigMappings('PROVER'),
71
+ ...proverPublisherConfigMappings,
72
+ ...proverTxSenderConfigMappings,
73
73
  ...specificProverNodeConfigMappings,
74
- ...genesisStateConfigMappings,
75
- ...sharedNodeConfigMappings
74
+ ...pickConfigMappings(sharedNodeConfigMappings, [
75
+ 'web3SignerUrl'
76
+ ])
76
77
  };
77
78
  export function getProverNodeConfigFromEnv() {
78
79
  return getConfigFromMappings(proverNodeConfigMappings);
@@ -94,7 +95,7 @@ function createKeyStoreFromWeb3Signer(config) {
94
95
  return undefined;
95
96
  }
96
97
  // Also, we need at least one publisher address.
97
- const publishers = config.publisherAddresses ?? [];
98
+ const publishers = config.proverPublisherAddresses ?? [];
98
99
  if (publishers.length === 0) {
99
100
  return undefined;
100
101
  }
@@ -112,7 +113,7 @@ function createKeyStoreFromWeb3Signer(config) {
112
113
  }
113
114
  function createKeyStoreFromPublisherKeys(config) {
114
115
  // Extract the publisher keys from the provided config.
115
- const publisherKeys = config.publisherPrivateKeys ? config.publisherPrivateKeys.map((k)=>ethPrivateKeySchema.parse(k.getValue())) : [];
116
+ const publisherKeys = config.proverPublisherPrivateKeys ? config.proverPublisherPrivateKeys.map((k)=>ethPrivateKeySchema.parse(k.getValue())) : [];
116
117
  // There must be at least 1.
117
118
  if (publisherKeys.length === 0) {
118
119
  return undefined;
@@ -133,7 +134,10 @@ function createKeyStoreFromPublisherKeys(config) {
133
134
  }
134
135
  export function createKeyStoreForProver(config) {
135
136
  if (config.web3SignerUrl !== undefined && config.web3SignerUrl.length > 0) {
136
- return createKeyStoreFromWeb3Signer(config);
137
+ const keyStore = createKeyStoreFromWeb3Signer(config);
138
+ if (keyStore) {
139
+ return keyStore;
140
+ }
137
141
  }
138
142
  return createKeyStoreFromPublisherKeys(config);
139
143
  }
package/dest/factory.d.ts CHANGED
@@ -1,27 +1,36 @@
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 { AvmSimulator } from '@aztec/simulator/server';
11
+ import type { ITxProvider, ProverConfig, ProvingJobBroker, Service, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
9
12
  import { type TelemetryClient } from '@aztec/telemetry-client';
10
- import { type ProverNodeConfig } from './config.js';
13
+ import type { SpecificProverNodeConfig } from './config.js';
11
14
  import { ProverNode } from './prover-node.js';
12
15
  import { ProverPublisherFactory } from './prover-publisher-factory.js';
13
16
  export type ProverNodeDeps = {
14
17
  telemetry?: TelemetryClient;
15
18
  log?: Logger;
16
- aztecNodeTxProvider?: Pick<AztecNode, 'getTxsByHash'>;
17
- archiver?: Archiver;
19
+ archiver: Archiver;
18
20
  publisherFactory?: ProverPublisherFactory;
19
21
  broker?: ProvingJobBroker;
20
22
  l1TxUtils?: L1TxUtils;
21
23
  dateProvider?: DateProvider;
24
+ worldStateSynchronizer: WorldStateSynchronizer;
25
+ p2pClient: {
26
+ getTxProvider(): ITxProvider;
27
+ } & Partial<Service>;
28
+ epochCache: EpochCacheInterface;
29
+ blobClient: BlobClientInterface;
30
+ keyStoreManager?: KeystoreManager;
31
+ /** AVM execution backend (simulator pool + CDB server) for public simulation. */
32
+ avmSimulator: AvmSimulator;
22
33
  };
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==
34
+ /** Creates a new prover node subsystem given a config and dependencies */
35
+ export declare function createProverNode(userConfig: SpecificProverNodeConfig & ProverConfig & ProverClientUserConfig & ProverPublisherConfig & ProverTxSenderConfig, deps: ProverNodeDeps): Promise<ProverNode>;
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSTlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQTJCLEtBQUssc0JBQXNCLEVBQXNCLE1BQU0sc0JBQXNCLENBQUM7QUFFaEgsT0FBTyxFQUNMLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssb0JBQW9CLEVBRTFCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsT0FBTyxFQUNQLHNCQUFzQixFQUN2QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBYSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUk5RixPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFdkUsTUFBTSxNQUFNLGNBQWMsR0FBRztJQUMzQixTQUFTLENBQUMsRUFBRSxlQUFlLENBQUM7SUFDNUIsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2IsUUFBUSxFQUFFLFFBQVEsQ0FBQztJQUNuQixnQkFBZ0IsQ0FBQyxFQUFFLHNCQUFzQixDQUFDO0lBQzFDLE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0lBQzFCLFNBQVMsQ0FBQyxFQUFFLFNBQVMsQ0FBQztJQUN0QixZQUFZLENBQUMsRUFBRSxZQUFZLENBQUM7SUFDNUIsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUM7SUFDL0MsU0FBUyxFQUFFO1FBQUUsYUFBYSxJQUFJLFdBQVcsQ0FBQTtLQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELFVBQVUsRUFBRSxtQkFBbUIsQ0FBQztJQUNoQyxVQUFVLEVBQUUsbUJBQW1CLENBQUM7SUFDaEMsZUFBZSxDQUFDLEVBQUUsZUFBZSxDQUFDO0lBQ2xDLGlGQUFpRjtJQUNqRixZQUFZLEVBQUUsWUFBWSxDQUFDO0NBQzVCLENBQUM7QUFFRiwwRUFBMEU7QUFDMUUsd0JBQXNCLGdCQUFnQixDQUNwQyxVQUFVLEVBQUUsd0JBQXdCLEdBQ2xDLFlBQVksR0FDWixzQkFBc0IsR0FDdEIscUJBQXFCLEdBQ3JCLG9CQUFvQixFQUN0QixJQUFJLEVBQUUsY0FBYyx1QkFrSXJCIn0=
@@ -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,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,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;IAClC,iFAAiF;IACjF,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,0EAA0E;AAC1E,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,wBAAwB,GAClC,YAAY,GACZ,sBAAsB,GACtB,qBAAqB,GACrB,oBAAoB,EACtB,IAAI,EAAE,cAAc,uBAkIrB"}
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,36 @@ 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, log.getBindings()),
91
+ proofSubmissionTarget: config.proofSubmissionTargetAddress,
92
+ publisherManager: new PublisherManager(l1TxUtils, getPublisherConfigFromProverConfig(config), {
93
+ bindings: log.getBindings(),
94
+ funder: funderL1TxUtils
95
+ }),
111
96
  telemetry
112
97
  });
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
98
  const proverNodeConfig = {
121
99
  ...pick(config, 'proverNodeMaxPendingJobs', 'proverNodeMaxParallelBlocksPerEpoch', 'proverNodePollingIntervalMs', 'proverNodeEpochProvingDelayMs', 'txGatheringMaxParallelRequests', 'txGatheringIntervalMs', 'txGatheringTimeoutMs', 'proverNodeFailedEpochStore', 'proverNodeDisableProofPublish', 'dataDirectory', 'l1ChainId', 'rollupVersion')
122
100
  };
123
- const epochMonitor = await EpochMonitor.create(archiver, {
124
- pollingIntervalMs: config.proverNodePollingIntervalMs,
125
- provingDelayMs: config.proverNodeEpochProvingDelayMs
126
- }, telemetry);
127
101
  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);
102
+ // Extract the shared delayer from the first L1TxUtils instance (all instances share the same delayer)
103
+ const delayer = l1TxUtils[0]?.delayer;
104
+ return new ProverNode(prover, publisherFactory, archiver, archiver, archiver, worldStateSynchronizer, p2pClient, rollupContract, l1Metrics, deps.avmSimulator, proverNodeConfig, telemetry, delayer, dateProvider);
129
105
  }
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,165 @@
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
+ /**
33
+ * Fired once when the prover's block proofs reject for a genuine (non-cancel) reason — a sub-tree
34
+ * fault or a prune-induced fork fault. Useful for performing post mortem on failures.
35
+ */
36
+ onFailed?: (prover: CheckpointProver) => void;
37
+ /**
38
+ * Test-only hook: if set, invoked at the start of checkpoint execution instead of proving. Lets e2e
39
+ * tests force a sub-tree failure (it should throw) to exercise the checkpoint failure/upload path.
40
+ */
41
+ checkpointProveOverride?: () => Promise<never>;
42
+ log: Logger;
43
+ };
44
+ /** Test-only hooks the store injects into every `CheckpointProver` it constructs. */
45
+ export type CheckpointProverTestHooks = {
46
+ /** If set, invoked at the start of checkpoint execution instead of proving; should throw to fail. */
47
+ checkpointProveOverride?: () => Promise<never>;
48
+ };
49
+ /** Inputs that fully describe a checkpoint at register time. */
50
+ export type CheckpointProverArgs = {
51
+ checkpoint: Checkpoint;
52
+ /** Epoch the checkpoint belongs to (derivable from slot + L1 constants; cached at register time). */
53
+ epochNumber: EpochNumber;
54
+ attestations: CommitteeAttestation[];
55
+ previousBlockHeader: BlockHeader;
56
+ l1ToL2Messages: Fr[];
57
+ previousArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>;
58
+ };
59
+ /**
60
+ * Self-contained per-checkpoint prover, content-addressed by
61
+ * `(checkpoint number, slot number, checkpoint archive root)`.
62
+ *
63
+ * The store creates a CheckpointProver once per content-key. Keying on the checkpoint's
64
+ * own archive root (its post-state) means two checkpoints are "the same" iff they
65
+ * produce the same archive — so a reorg branch, or a replacement built on the same
66
+ * predecessor but with different content, keys to a distinct prover.
67
+ *
68
+ * The prover eagerly starts its own tx gather and sub-tree work in the constructor, so
69
+ * callers only need to call `whenBlockProofsReady()` to obtain the resulting block-rollup
70
+ * proofs.
71
+ *
72
+ * A CheckpointProver does not survive a prune: its sub-tree work forks world-state per
73
+ * block, and an L1 prune of a base block faults those reads. The store therefore cancels and
74
+ * discards a prover when its checkpoint is pruned, and a re-add (even of identical content)
75
+ * constructs a fresh prover.
76
+ *
77
+ * `cancel()` is idempotent. It aborts the gather + sub-tree, rejects the block-proof
78
+ * promise, and exposes a `whenDone()` that resolves once teardown has unwound.
79
+ */
80
+ export declare class CheckpointProver {
81
+ private readonly deps;
82
+ readonly id: string;
83
+ readonly checkpoint: Checkpoint;
84
+ readonly epochNumber: EpochNumber;
85
+ readonly slotNumber: SlotNumber;
86
+ readonly attestations: CommitteeAttestation[];
87
+ readonly previousBlockHeader: BlockHeader;
88
+ readonly l1ToL2Messages: Fr[];
89
+ readonly previousArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>;
90
+ /** Resolved by the sub-tree on success, rejected on cancel/failure. */
91
+ private readonly blockProofs;
92
+ /** Block-level proving was fully *enqueued* (a progress marker; the sub-tree may still be proving). */
93
+ private completed;
94
+ /** Block proofs rejected for a genuine (non-cancel) reason — a sub-tree or prune-induced fork fault. */
95
+ private failed;
96
+ /** The prover was torn down (prune / reap / shutdown). */
97
+ private cancelled;
98
+ private subTree?;
99
+ private readonly abortController;
100
+ /** Tracks the eager gather+execute task so `cancel()` and `whenDone()` can await its unwind. */
101
+ private readonly runPromise;
102
+ /** Tracks the cancel-driven teardown so `whenDone()` can await it. */
103
+ private cancelPromise?;
104
+ /** Tracks the success-driven sub-tree teardown (once block proofs are captured) so `whenDone()` can await it. */
105
+ private teardownPromise?;
106
+ constructor(args: CheckpointProverArgs, deps: CheckpointProverDeps);
107
+ /**
108
+ * Stable content-addressed identifier: `${checkpoint number}:${slot}:${archive root}`.
109
+ * The archive root is the checkpoint's post-state, so it distinguishes any two
110
+ * checkpoints that differ in history or content while collapsing identical re-adds.
111
+ */
112
+ static idFor(checkpoint: Checkpoint): string;
113
+ isCancelled(): boolean;
114
+ /**
115
+ * True once this prover's block proofs have rejected for a genuine (non-cancel) reason — a sub-tree
116
+ * proving fault or a prune-induced world-state fork fault. A failed prover cannot produce its block
117
+ * proofs, so the reconciler must not build (or rebuild) an EpochSession over it; it is cleared only by
118
+ * a prune/re-add replacing it with a fresh prover, or by expiry reaping it.
119
+ */
120
+ isFailed(): boolean;
121
+ /** AbortSignal that fires on cancel — for callers that want to wire their own tasks. */
122
+ getAbortSignal(): AbortSignal;
123
+ /** Promise that resolves with the block-rollup proofs for this checkpoint (or rejects on cancel/failure). */
124
+ whenBlockProofsReady(): Promise<SubTreeResult['blockProofOutputs']>;
125
+ /** Resolves when all in-flight work for this prover has fully unwound. */
126
+ whenDone(): Promise<void>;
127
+ private gatherAndExecute;
128
+ /**
129
+ * Rejects the block-proof promise and, unless this is a cancellation, records the prover as failed so
130
+ * the reconciler won't build an EpochSession over it. First rejection wins, so a later duplicate reject
131
+ * (e.g. the executeCheckpoint `finally`) is a harmless no-op.
132
+ */
133
+ private failBlockProofs;
134
+ private fetchTxs;
135
+ private gatherTxs;
136
+ /**
137
+ * Re-fetches this checkpoint's txs from the tx pool for a post-mortem failure upload.
138
+ *
139
+ * The prover does not cache txs on the heap — they are consumed during proving and dropped — so the
140
+ * durable pool (which keeps a mined tx until L1 finality, with A-1274's retention margin covering a
141
+ * lagging prover) is the source of truth, read back by hash here. Best-effort: any tx the pool can
142
+ * no longer supply is logged and omitted rather than failing the upload, since a partial post-mortem
143
+ * snapshot is still useful for diagnosis.
144
+ */
145
+ getTxsForUpload(): Promise<Map<string, Tx>>;
146
+ private executeCheckpoint;
147
+ /**
148
+ * Mark cancelled. Idempotent. Aborts in-flight work, rejects the block-proof promise,
149
+ * and kicks off a background teardown of the sub-tree. The teardown promise is exposed
150
+ * via `whenDone()`.
151
+ *
152
+ * `routine` distinguishes a post-finalize teardown (sub-tree already proven, fires
153
+ * once at prover exit) from a real abort (reorg, prune, deadline). Behaviour is
154
+ * identical either way; the flag only adjusts log verbosity.
155
+ */
156
+ cancel({ routine }?: {
157
+ routine?: boolean;
158
+ }): void;
159
+ private runCancel;
160
+ private teardownSubTree;
161
+ private getTxsForBlock;
162
+ private processTxs;
163
+ private createFork;
164
+ }
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC1wcm92ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qb2IvY2hlY2twb2ludC1wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssY0FBYyxFQUF1QyxNQUFNLGtCQUFrQixDQUFDO0FBQzVGLE9BQU8sRUFBZSxLQUFLLFdBQVcsRUFBRSxLQUFLLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWpHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQVMsTUFBTSx5QkFBeUIsQ0FBQztBQUduRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFpQyxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEgsT0FBTyxLQUFLLEVBQW1CLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkYsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQVcsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUc3RixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQWUsRUFBRSxFQUFVLE1BQU0sa0JBQWtCLENBQUM7QUFFN0UsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENB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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint-prover.d.ts","sourceRoot":"","sources":["../../src/job/checkpoint-prover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAuC,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAe,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAEjG,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,KAAK,YAAY,EAAS,MAAM,yBAAyB,CAAC;AAGnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAiC,UAAU,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClH,OAAO,KAAK,EAAmB,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,KAAK,EAAE,oBAAoB,EAAW,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG7F,OAAO,KAAK,EAAE,WAAW,EAAe,EAAE,EAAU,MAAM,kBAAkB,CAAC;AAE7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D,+DAA+D;AAC/D,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,kBAAkB,CAAC;IAClC,0EAA0E;IAC1E,UAAU,EAAE,UAAU,CAAC;IACvB,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;IACnD,UAAU,EAAE,WAAW,CAAC;IACxB,6FAA2F;IAC3F,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,6BAA6B;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iCAAiC;IACjC,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC9C;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/C,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,qFAAqF;AACrF,MAAM,MAAM,yBAAyB,GAAG;IACtC,qGAAqG;IACrG,uBAAuB,CAAC,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;CAChD,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,qGAAqG;IACrG,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,mBAAmB,EAAE,WAAW,CAAC;IACjC,cAAc,EAAE,EAAE,EAAE,CAAC;IACrB,0BAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,CAAC;CAC9D,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,gBAAgB;IAoCzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAnCvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,WAAW,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC;IAC9B,QAAQ,CAAC,0BAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,CAAC;IAEtE,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoF;IAOhH,uGAAuG;IACvG,OAAO,CAAC,SAAS,CAAS;IAC1B,0GAAwG;IACxG,OAAO,CAAC,MAAM,CAAS;IACvB,0DAA0D;IAC1D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAC,CAAgC;IAChD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyB;IAEzD,gGAAgG;IAChG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,sEAAsE;IACtE,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,iHAAiH;IACjH,OAAO,CAAC,eAAe,CAAC,CAAgB;IAExC,YACE,IAAI,EAAE,oBAAoB,EACT,IAAI,EAAE,oBAAoB,EAuB5C;IAED;;;;OAIG;IACH,OAAc,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAElD;IAEM,WAAW,IAAI,OAAO,CAE5B;IAED;;;;;OAKG;IACI,QAAQ,IAAI,OAAO,CAEzB;IAED,0FAAwF;IACjF,cAAc,IAAI,WAAW,CAEnC;IAED,6GAA6G;IACtG,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAEzE;IAED,0EAA0E;IAC7D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAerC;YAEa,gBAAgB;IAqB9B;;;;OAIG;IACH,OAAO,CAAC,eAAe;YAeT,QAAQ;YAUR,SAAS;IAUvB;;;;;;;;OAQG;IACU,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CASvD;YAEa,iBAAiB;IAmJ/B;;;;;;;;OAQG;IACI,MAAM,CAAC,EAAE,OAAe,EAAE,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI,CAqBnE;YAEa,SAAS;YAcT,eAAe;IAe7B,OAAO,CAAC,cAAc;YAIR,UAAU;YA0BV,UAAU;CAezB"}