@aztec/prover-node 0.67.1 → 0.68.1
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 +7 -7
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +7 -7
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +7 -8
- package/dest/job/epoch-proving-job.d.ts +3 -1
- package/dest/job/epoch-proving-job.d.ts.map +1 -1
- package/dest/job/epoch-proving-job.js +146 -121
- package/dest/metrics.d.ts +4 -1
- package/dest/metrics.d.ts.map +1 -1
- package/dest/metrics.js +13 -2
- package/dest/monitors/claims-monitor.d.ts +4 -2
- package/dest/monitors/claims-monitor.d.ts.map +1 -1
- package/dest/monitors/claims-monitor.js +51 -34
- package/dest/monitors/epoch-monitor.d.ts +4 -2
- package/dest/monitors/epoch-monitor.d.ts.map +1 -1
- package/dest/monitors/epoch-monitor.js +47 -31
- package/dest/prover-coordination/factory.d.ts +2 -0
- package/dest/prover-coordination/factory.d.ts.map +1 -1
- package/dest/prover-coordination/factory.js +4 -4
- package/dest/prover-node.d.ts +8 -8
- package/dest/prover-node.d.ts.map +1 -1
- package/dest/prover-node.js +225 -212
- package/package.json +22 -20
- package/src/config.ts +7 -7
- package/src/factory.ts +6 -8
- package/src/job/epoch-proving-job.ts +34 -24
- package/src/metrics.ts +14 -2
- package/src/monitors/claims-monitor.ts +13 -3
- package/src/monitors/epoch-monitor.ts +11 -3
- package/src/prover-coordination/factory.ts +11 -2
- package/src/prover-node.ts +26 -22
- package/dest/prover-cache/cache_manager.d.ts +0 -15
- package/dest/prover-cache/cache_manager.d.ts.map +0 -1
- package/dest/prover-cache/cache_manager.js +0 -57
- package/dest/prover-cache/kv_cache.d.ts +0 -11
- package/dest/prover-cache/kv_cache.d.ts.map +0 -1
- package/dest/prover-cache/kv_cache.js +0 -20
- package/src/prover-cache/cache_manager.ts +0 -69
- package/src/prover-cache/kv_cache.ts +0 -27
|
@@ -1,37 +1,54 @@
|
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
1
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
3
|
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
async stop() {
|
|
16
|
-
this.log.verbose('Stopping ClaimsMonitor');
|
|
17
|
-
await this.runningPromise.stop();
|
|
18
|
-
this.log.info('Stopped ClaimsMonitor');
|
|
19
|
-
}
|
|
20
|
-
async work() {
|
|
21
|
-
const proofClaim = await this.l1Publisher.getProofClaim();
|
|
22
|
-
if (!proofClaim) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
if (this.lastClaimEpochNumber === undefined || proofClaim.epochToProve > this.lastClaimEpochNumber) {
|
|
26
|
-
this.log.verbose(`Found new claim for epoch ${proofClaim.epochToProve} by ${proofClaim.bondProvider.toString()}`);
|
|
27
|
-
if (proofClaim.bondProvider.equals(this.getProverAddress())) {
|
|
28
|
-
await this.handler?.handleClaim(proofClaim);
|
|
4
|
+
import { trackSpan } from '@aztec/telemetry-client';
|
|
5
|
+
let ClaimsMonitor = (() => {
|
|
6
|
+
var _a;
|
|
7
|
+
let _instanceExtraInitializers = [];
|
|
8
|
+
let _work_decorators;
|
|
9
|
+
return _a = class ClaimsMonitor {
|
|
10
|
+
constructor(l1Publisher, telemetry, options) {
|
|
11
|
+
this.l1Publisher = (__runInitializers(this, _instanceExtraInitializers), l1Publisher);
|
|
12
|
+
this.options = options;
|
|
13
|
+
this.log = createLogger('prover-node:claims-monitor');
|
|
14
|
+
this.tracer = telemetry.getTracer('ClaimsMonitor');
|
|
15
|
+
this.runningPromise = new RunningPromise(this.work.bind(this), this.log, this.options.pollingIntervalMs);
|
|
29
16
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
17
|
+
start(handler) {
|
|
18
|
+
this.handler = handler;
|
|
19
|
+
this.runningPromise.start();
|
|
20
|
+
this.log.info(`Started ClaimsMonitor with prover address ${this.getProverAddress().toString()}`, this.options);
|
|
21
|
+
}
|
|
22
|
+
async stop() {
|
|
23
|
+
this.log.verbose('Stopping ClaimsMonitor');
|
|
24
|
+
await this.runningPromise.stop();
|
|
25
|
+
this.log.info('Stopped ClaimsMonitor');
|
|
26
|
+
}
|
|
27
|
+
async work() {
|
|
28
|
+
const proofClaim = await this.l1Publisher.getProofClaim();
|
|
29
|
+
if (!proofClaim) {
|
|
30
|
+
this.log.trace(`Found no proof claim`);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (this.lastClaimEpochNumber === undefined || proofClaim.epochToProve > this.lastClaimEpochNumber) {
|
|
34
|
+
this.log.verbose(`Found new claim for epoch ${proofClaim.epochToProve} by ${proofClaim.bondProvider.toString()}`);
|
|
35
|
+
if (proofClaim.bondProvider.equals(this.getProverAddress())) {
|
|
36
|
+
await this.handler?.handleClaim(proofClaim);
|
|
37
|
+
}
|
|
38
|
+
this.lastClaimEpochNumber = proofClaim.epochToProve;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
getProverAddress() {
|
|
42
|
+
return this.l1Publisher.getSenderAddress();
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
(() => {
|
|
46
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
47
|
+
_work_decorators = [trackSpan('ClaimsMonitor.work')];
|
|
48
|
+
__esDecorate(_a, null, _work_decorators, { kind: "method", name: "work", static: false, private: false, access: { has: obj => "work" in obj, get: obj => obj.work }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
49
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
50
|
+
})(),
|
|
51
|
+
_a;
|
|
52
|
+
})();
|
|
53
|
+
export { ClaimsMonitor };
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW1zLW1vbml0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9uaXRvcnMvY2xhaW1zLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFbkUsT0FBTyxFQUFxRCxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztJQU0xRixhQUFhOzs7O3NCQUFiLGFBQWE7WUFTeEIsWUFDbUIsV0FBd0IsRUFDekMsU0FBMEIsRUFDbEIsT0FBc0M7Z0JBRjdCLGdCQUFXLElBVm5CLG1EQUFhLEVBVUwsV0FBVyxFQUFhO2dCQUVqQyxZQUFPLEdBQVAsT0FBTyxDQUErQjtnQkFWeEMsUUFBRyxHQUFHLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO2dCQVl2RCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDM0csQ0FBQztZQUVNLEtBQUssQ0FBQyxPQUE2QjtnQkFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLDZDQUE2QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqSCxDQUFDO1lBRU0sS0FBSyxDQUFDLElBQUk7Z0JBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7WUFHTSxLQUFLLENBQUMsSUFBSTtnQkFDZixNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzFELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztvQkFDdkMsT0FBTztnQkFDVCxDQUFDO2dCQUVELElBQUksSUFBSSxDQUFDLG9CQUFvQixLQUFLLFNBQVMsSUFBSSxVQUFVLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO29CQUNuRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsVUFBVSxDQUFDLFlBQVksT0FBTyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDbEgsSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLENBQUM7d0JBQzVELE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQzlDLENBQUM7b0JBQ0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3RELENBQUM7WUFDSCxDQUFDO1lBRVMsZ0JBQWdCO2dCQUN4QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM3QyxDQUFDOzs7O2dDQW5CQSxTQUFTLENBQUMsb0JBQW9CLENBQUM7WUFDaEMsNkpBQWEsSUFBSSw2REFjaEI7Ozs7O1NBN0NVLGFBQWEifQ==
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { type L2BlockSource } from '@aztec/circuit-types';
|
|
2
|
+
import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
|
|
2
3
|
export interface EpochMonitorHandler {
|
|
3
4
|
handleInitialEpochSync(epochNumber: bigint): Promise<void>;
|
|
4
5
|
handleEpochCompleted(epochNumber: bigint): Promise<void>;
|
|
5
6
|
}
|
|
6
|
-
export declare class EpochMonitor {
|
|
7
|
+
export declare class EpochMonitor implements Traceable {
|
|
7
8
|
private readonly l2BlockSource;
|
|
8
9
|
private options;
|
|
9
10
|
private runningPromise;
|
|
10
11
|
private log;
|
|
12
|
+
readonly tracer: Tracer;
|
|
11
13
|
private handler;
|
|
12
14
|
private latestEpochNumber;
|
|
13
|
-
constructor(l2BlockSource: L2BlockSource, options: {
|
|
15
|
+
constructor(l2BlockSource: L2BlockSource, telemetry: TelemetryClient, options: {
|
|
14
16
|
pollingIntervalMs: number;
|
|
15
17
|
});
|
|
16
18
|
start(handler: EpochMonitorHandler): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epoch-monitor.d.ts","sourceRoot":"","sources":["../../src/monitors/epoch-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"epoch-monitor.d.ts","sourceRoot":"","sources":["../../src/monitors/epoch-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAEvG,MAAM,WAAW,mBAAmB;IAClC,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAED,qBAAa,YAAa,YAAW,SAAS;IAU1C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,OAAO;IAXjB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,GAAG,CAA6C;IACxD,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,OAAO,CAAkC;IAEjD,OAAO,CAAC,iBAAiB,CAAqB;gBAG3B,aAAa,EAAE,aAAa,EAC7C,SAAS,EAAE,eAAe,EAClB,OAAO,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE;IAMzC,KAAK,CAAC,OAAO,EAAE,mBAAmB;IAM5B,IAAI;IAMJ,IAAI;CAelB"}
|
|
@@ -1,34 +1,50 @@
|
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
1
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
3
|
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
async stop() {
|
|
16
|
-
await this.runningPromise.stop();
|
|
17
|
-
this.log.info('Stopped EpochMonitor');
|
|
18
|
-
}
|
|
19
|
-
async work() {
|
|
20
|
-
if (!this.latestEpochNumber) {
|
|
21
|
-
const epochNumber = await this.l2BlockSource.getL2EpochNumber();
|
|
22
|
-
if (epochNumber > 0n) {
|
|
23
|
-
await this.handler?.handleInitialEpochSync(epochNumber - 1n);
|
|
4
|
+
import { trackSpan } from '@aztec/telemetry-client';
|
|
5
|
+
let EpochMonitor = (() => {
|
|
6
|
+
var _a;
|
|
7
|
+
let _instanceExtraInitializers = [];
|
|
8
|
+
let _work_decorators;
|
|
9
|
+
return _a = class EpochMonitor {
|
|
10
|
+
constructor(l2BlockSource, telemetry, options) {
|
|
11
|
+
this.l2BlockSource = (__runInitializers(this, _instanceExtraInitializers), l2BlockSource);
|
|
12
|
+
this.options = options;
|
|
13
|
+
this.log = createLogger('prover-node:epoch-monitor');
|
|
14
|
+
this.tracer = telemetry.getTracer('EpochMonitor');
|
|
15
|
+
this.runningPromise = new RunningPromise(this.work.bind(this), this.log, this.options.pollingIntervalMs);
|
|
24
16
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
17
|
+
start(handler) {
|
|
18
|
+
this.handler = handler;
|
|
19
|
+
this.runningPromise.start();
|
|
20
|
+
this.log.info('Started EpochMonitor', this.options);
|
|
21
|
+
}
|
|
22
|
+
async stop() {
|
|
23
|
+
await this.runningPromise.stop();
|
|
24
|
+
this.log.info('Stopped EpochMonitor');
|
|
25
|
+
}
|
|
26
|
+
async work() {
|
|
27
|
+
if (!this.latestEpochNumber) {
|
|
28
|
+
const epochNumber = await this.l2BlockSource.getL2EpochNumber();
|
|
29
|
+
if (epochNumber > 0n) {
|
|
30
|
+
await this.handler?.handleInitialEpochSync(epochNumber - 1n);
|
|
31
|
+
}
|
|
32
|
+
this.latestEpochNumber = epochNumber;
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (await this.l2BlockSource.isEpochComplete(this.latestEpochNumber)) {
|
|
36
|
+
await this.handler?.handleEpochCompleted(this.latestEpochNumber);
|
|
37
|
+
this.latestEpochNumber += 1n;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
(() => {
|
|
42
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
43
|
+
_work_decorators = [trackSpan('EpochMonitor.work')];
|
|
44
|
+
__esDecorate(_a, null, _work_decorators, { kind: "method", name: "work", static: false, private: false, access: { has: obj => "work" in obj, get: obj => obj.work }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
45
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
46
|
+
})(),
|
|
47
|
+
_a;
|
|
48
|
+
})();
|
|
49
|
+
export { EpochMonitor };
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtbW9uaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb25pdG9ycy9lcG9jaC1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBcUQsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7SUFPMUYsWUFBWTs7OztzQkFBWixZQUFZO1lBU3ZCLFlBQ21CLGFBQTRCLEVBQzdDLFNBQTBCLEVBQ2xCLE9BQXNDO2dCQUY3QixrQkFBYSxJQVZyQixtREFBWSxFQVVKLGFBQWEsRUFBZTtnQkFFckMsWUFBTyxHQUFQLE9BQU8sQ0FBK0I7Z0JBVnhDLFFBQUcsR0FBRyxZQUFZLENBQUMsMkJBQTJCLENBQUMsQ0FBQztnQkFZdEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzNHLENBQUM7WUFFTSxLQUFLLENBQUMsT0FBNEI7Z0JBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO2dCQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEQsQ0FBQztZQUVNLEtBQUssQ0FBQyxJQUFJO2dCQUNmLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUN4QyxDQUFDO1lBR00sS0FBSyxDQUFDLElBQUk7Z0JBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO29CQUM1QixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDaEUsSUFBSSxXQUFXLEdBQUcsRUFBRSxFQUFFLENBQUM7d0JBQ3JCLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxzQkFBc0IsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQy9ELENBQUM7b0JBQ0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFdBQVcsQ0FBQztvQkFDckMsT0FBTztnQkFDVCxDQUFDO2dCQUVELElBQUksTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO29CQUNyRSxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQ2pFLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUM7Z0JBQy9CLENBQUM7WUFDSCxDQUFDOzs7O2dDQWZBLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQztZQUMvQiw2SkFBYSxJQUFJLDZEQWNoQjs7Ozs7U0E1Q1UsWUFBWSJ9
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type ArchiveSource, type Archiver } from '@aztec/archiver';
|
|
2
2
|
import { type ProverCoordination, type WorldStateSynchronizer } from '@aztec/circuit-types';
|
|
3
|
+
import { type EpochCache } from '@aztec/epoch-cache';
|
|
3
4
|
import { type DataStoreConfig } from '@aztec/kv-store/config';
|
|
4
5
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
5
6
|
import { type ProverNodeConfig } from '../config.js';
|
|
@@ -8,6 +9,7 @@ type ProverCoordinationDeps = {
|
|
|
8
9
|
worldStateSynchronizer?: WorldStateSynchronizer;
|
|
9
10
|
archiver?: Archiver | ArchiveSource;
|
|
10
11
|
telemetry?: TelemetryClient;
|
|
12
|
+
epochCache?: EpochCache;
|
|
11
13
|
};
|
|
12
14
|
/**
|
|
13
15
|
* Creates a prover coordination service.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/prover-coordination/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/prover-coordination/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAE5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,KAAK,sBAAsB,GAAG;IAC5B,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;IACzC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,QAAQ,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IACpC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,gBAAgB,GAAG,eAAe,EAC1C,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAoC7B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BBCircuitVerifier, TestCircuitVerifier } from '@aztec/bb-prover';
|
|
2
|
-
import { createAztecNodeClient } from '@aztec/circuit-types';
|
|
2
|
+
import { P2PClientType, createAztecNodeClient, } from '@aztec/circuit-types';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { createP2PClient } from '@aztec/p2p';
|
|
5
5
|
/**
|
|
@@ -16,11 +16,11 @@ export async function createProverCoordination(config, deps) {
|
|
|
16
16
|
}
|
|
17
17
|
if (config.p2pEnabled) {
|
|
18
18
|
log.info('Using prover coordination via p2p');
|
|
19
|
-
if (!deps.archiver || !deps.worldStateSynchronizer || !deps.telemetry) {
|
|
19
|
+
if (!deps.archiver || !deps.worldStateSynchronizer || !deps.telemetry || !deps.epochCache) {
|
|
20
20
|
throw new Error('Missing dependencies for p2p prover coordination');
|
|
21
21
|
}
|
|
22
22
|
const proofVerifier = config.realProofs ? await BBCircuitVerifier.new(config) : new TestCircuitVerifier();
|
|
23
|
-
const p2pClient = await createP2PClient(config, deps.archiver, proofVerifier, deps.worldStateSynchronizer, deps.telemetry);
|
|
23
|
+
const p2pClient = await createP2PClient(P2PClientType.Prover, config, deps.archiver, proofVerifier, deps.worldStateSynchronizer, deps.epochCache, deps.telemetry);
|
|
24
24
|
await p2pClient.start();
|
|
25
25
|
return p2pClient;
|
|
26
26
|
}
|
|
@@ -32,4 +32,4 @@ export async function createProverCoordination(config, deps) {
|
|
|
32
32
|
throw new Error(`Aztec Node URL for Tx Provider is not set.`);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXItY29vcmRpbmF0aW9uL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUUsT0FBTyxFQUNMLGFBQWEsRUFHYixxQkFBcUIsR0FDdEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQWM3Qzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsd0JBQXdCLENBQzVDLE1BQTBDLEVBQzFDLElBQTRCO0lBRTVCLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBRTVELElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDN0IsR0FBRyxDQUFDLElBQUksQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixHQUFHLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFGLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUMxRyxNQUFNLFNBQVMsR0FBRyxNQUFNLGVBQWUsQ0FDckMsYUFBYSxDQUFDLE1BQU0sRUFDcEIsTUFBTSxFQUNOLElBQUksQ0FBQyxRQUFRLEVBQ2IsYUFBYSxFQUNiLElBQUksQ0FBQyxzQkFBc0IsRUFDM0IsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsU0FBUyxDQUNmLENBQUM7UUFDRixNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV4QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUNyQyxHQUFHLENBQUMsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFDbkQsT0FBTyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUNqRSxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0FBQ0gsQ0FBQyJ9
|
package/dest/prover-node.d.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { type EpochProofClaim, type EpochProofQuote, type EpochProverManager, type L1ToL2MessageSource, type L2Block, type L2BlockSource, type
|
|
1
|
+
import { type EpochProofClaim, type EpochProofQuote, type EpochProverManager, type L1ToL2MessageSource, type L2Block, type L2BlockSource, type P2PClientType, type ProverCoordination, type ProverNodeApi, type Service, type WorldStateSynchronizer } from '@aztec/circuit-types';
|
|
2
2
|
import { type ContractDataSource } from '@aztec/circuits.js';
|
|
3
3
|
import { type Maybe } from '@aztec/foundation/types';
|
|
4
4
|
import { type P2P } from '@aztec/p2p';
|
|
5
5
|
import { type L1Publisher } from '@aztec/sequencer-client';
|
|
6
6
|
import { PublicProcessorFactory } from '@aztec/simulator';
|
|
7
|
-
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
7
|
+
import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
|
|
8
8
|
import { type BondManager } from './bond/bond-manager.js';
|
|
9
9
|
import { EpochProvingJob, type EpochProvingJobState } from './job/epoch-proving-job.js';
|
|
10
10
|
import { type ClaimsMonitor, type ClaimsMonitorHandler } from './monitors/claims-monitor.js';
|
|
11
11
|
import { type EpochMonitor, type EpochMonitorHandler } from './monitors/epoch-monitor.js';
|
|
12
|
-
import { type ProverCacheManager } from './prover-cache/cache_manager.js';
|
|
13
12
|
import { type QuoteProvider } from './quote-provider/index.js';
|
|
14
13
|
import { type QuoteSigner } from './quote-signer.js';
|
|
15
14
|
export type ProverNodeOptions = {
|
|
@@ -23,7 +22,7 @@ export type ProverNodeOptions = {
|
|
|
23
22
|
* from a tx source in the p2p network or an external node, re-executes their public functions, creates a rollup
|
|
24
23
|
* proof for the epoch, and submits it to L1.
|
|
25
24
|
*/
|
|
26
|
-
export declare class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler, ProverNodeApi {
|
|
25
|
+
export declare class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler, ProverNodeApi, Traceable {
|
|
27
26
|
private readonly prover;
|
|
28
27
|
private readonly publisher;
|
|
29
28
|
private readonly l2BlockSource;
|
|
@@ -37,14 +36,15 @@ export declare class ProverNode implements ClaimsMonitorHandler, EpochMonitorHan
|
|
|
37
36
|
private readonly epochsMonitor;
|
|
38
37
|
private readonly bondManager;
|
|
39
38
|
private readonly telemetryClient;
|
|
40
|
-
private readonly proverCacheManager;
|
|
41
39
|
private log;
|
|
40
|
+
private dateProvider;
|
|
42
41
|
private latestEpochWeAreProving;
|
|
43
42
|
private jobs;
|
|
44
43
|
private options;
|
|
45
44
|
private metrics;
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
readonly tracer: Tracer;
|
|
46
|
+
constructor(prover: EpochProverManager, publisher: L1Publisher, l2BlockSource: L2BlockSource & Maybe<Service>, l1ToL2MessageSource: L1ToL2MessageSource, contractDataSource: ContractDataSource, worldState: WorldStateSynchronizer, coordination: ProverCoordination & Maybe<Service>, quoteProvider: QuoteProvider, quoteSigner: QuoteSigner, claimsMonitor: ClaimsMonitor, epochsMonitor: EpochMonitor, bondManager: BondManager, telemetryClient: TelemetryClient, options?: Partial<ProverNodeOptions>);
|
|
47
|
+
getP2P(): P2P<P2PClientType.Prover> | undefined;
|
|
48
48
|
handleClaim(proofClaim: EpochProofClaim): Promise<void>;
|
|
49
49
|
/**
|
|
50
50
|
* Handles the epoch number to prove when the prover node starts by checking if there
|
|
@@ -92,7 +92,7 @@ export declare class ProverNode implements ClaimsMonitorHandler, EpochMonitorHan
|
|
|
92
92
|
private checkMaximumPendingJobs;
|
|
93
93
|
private createProvingJob;
|
|
94
94
|
/** Extracted for testing purposes. */
|
|
95
|
-
protected doCreateEpochProvingJob(epochNumber: bigint, blocks: L2Block[],
|
|
95
|
+
protected doCreateEpochProvingJob(epochNumber: bigint, blocks: L2Block[], publicProcessorFactory: PublicProcessorFactory, cleanUp: () => Promise<void>): EpochProvingJob;
|
|
96
96
|
/** Extracted for testing purposes. */
|
|
97
97
|
protected triggerMonitors(): Promise<void>;
|
|
98
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,
|
|
1
|
+
{"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"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"}
|