@aztec/prover-node 0.77.0-testnet-ignition.28 → 0.77.0-testnet-ignition.30
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 +28 -0
- package/dest/config.d.ts.map +1 -0
- package/dest/factory.d.ts +25 -0
- package/dest/factory.d.ts.map +1 -0
- package/dest/http.d.ts +8 -0
- package/dest/http.d.ts.map +1 -0
- package/dest/index.d.ts +6 -0
- package/dest/index.d.ts.map +1 -0
- package/dest/job/epoch-proving-job.d.ts +54 -0
- package/dest/job/epoch-proving-job.d.ts.map +1 -0
- package/dest/metrics.d.ts +26 -0
- package/dest/metrics.d.ts.map +1 -0
- package/dest/monitors/epoch-monitor.d.ts +40 -0
- package/dest/monitors/epoch-monitor.d.ts.map +1 -0
- package/dest/monitors/index.d.ts +2 -0
- package/dest/monitors/index.d.ts.map +1 -0
- package/dest/prover-coordination/config.d.ts +7 -0
- package/dest/prover-coordination/config.d.ts.map +1 -0
- package/dest/prover-coordination/factory.d.ts +22 -0
- package/dest/prover-coordination/factory.d.ts.map +1 -0
- package/dest/prover-coordination/index.d.ts +3 -0
- package/dest/prover-coordination/index.d.ts.map +1 -0
- package/dest/prover-node-publisher.d.ts +61 -0
- package/dest/prover-node-publisher.d.ts.map +1 -0
- package/dest/prover-node.d.ts +102 -0
- package/dest/prover-node.d.ts.map +1 -0
- package/dest/test/index.d.ts +10 -0
- package/dest/test/index.d.ts.map +1 -0
- package/package.json +19 -19
package/dest/config.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type ArchiverConfig } from '@aztec/archiver/config';
|
|
2
|
+
import type { ACVMConfig, BBConfig } from '@aztec/bb-prover/config';
|
|
3
|
+
import { type ConfigMappingsType } from '@aztec/foundation/config';
|
|
4
|
+
import { type DataStoreConfig } from '@aztec/kv-store/config';
|
|
5
|
+
import { type P2PConfig } from '@aztec/p2p/config';
|
|
6
|
+
import { type ProverAgentConfig, type ProverBrokerConfig } from '@aztec/prover-client/broker';
|
|
7
|
+
import { type ProverClientConfig } from '@aztec/prover-client/config';
|
|
8
|
+
import { type PublisherConfig, type TxSenderConfig } from '@aztec/sequencer-client/config';
|
|
9
|
+
import { type WorldStateConfig } from '@aztec/world-state/config';
|
|
10
|
+
import { type ProverCoordinationConfig } from './prover-coordination/config.js';
|
|
11
|
+
export type ProverNodeConfig = ArchiverConfig & ProverClientConfig & P2PConfig & WorldStateConfig & PublisherConfig & TxSenderConfig & DataStoreConfig & ProverCoordinationConfig & SpecificProverNodeConfig & {
|
|
12
|
+
/** Whether to populate the genesis state with initial fee juice for the test accounts */
|
|
13
|
+
testAccounts: boolean;
|
|
14
|
+
};
|
|
15
|
+
type SpecificProverNodeConfig = {
|
|
16
|
+
proverNodeMaxPendingJobs: number;
|
|
17
|
+
proverNodePollingIntervalMs: number;
|
|
18
|
+
proverNodeMaxParallelBlocksPerEpoch: number;
|
|
19
|
+
txGatheringTimeoutMs: number;
|
|
20
|
+
txGatheringIntervalMs: number;
|
|
21
|
+
txGatheringMaxParallelRequests: number;
|
|
22
|
+
};
|
|
23
|
+
export declare const proverNodeConfigMappings: ConfigMappingsType<ProverNodeConfig>;
|
|
24
|
+
export declare function getProverNodeConfigFromEnv(): ProverNodeConfig;
|
|
25
|
+
export declare function getProverNodeBrokerConfigFromEnv(): ProverBrokerConfig;
|
|
26
|
+
export declare function getProverNodeAgentConfigFromEnv(): ProverAgentConfig & BBConfig & ACVMConfig;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +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,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,kBAAkB,EAAgD,MAAM,6BAA6B,CAAC;AACpH,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAGpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,2BAA2B,CAAC;AAE5F,OAAO,EAAE,KAAK,wBAAwB,EAAoC,MAAM,iCAAiC,CAAC;AAElH,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAC3C,kBAAkB,GAClB,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,eAAe,GACf,wBAAwB,GACxB,wBAAwB,GAAG;IACzB,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEJ,KAAK,wBAAwB,GAAG;IAC9B,wBAAwB,EAAE,MAAM,CAAC;IACjC,2BAA2B,EAAE,MAAM,CAAC;IACpC,mCAAmC,EAAE,MAAM,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,8BAA8B,EAAE,MAAM,CAAC;CACxC,CAAC;AAmCF,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CAAC,gBAAgB,CAezE,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,gBAAgB,CAE7D;AAED,wBAAgB,gCAAgC,IAAI,kBAAkB,CAIrE;AAED,wBAAgB,+BAA+B,IAAI,iBAAiB,GAAG,QAAQ,GAAG,UAAU,CAK3F"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type Archiver } from '@aztec/archiver';
|
|
2
|
+
import { type BlobSinkClientInterface } from '@aztec/blob-sink/client';
|
|
3
|
+
import { L1TxUtils } from '@aztec/ethereum';
|
|
4
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
5
|
+
import type { DataStoreConfig } from '@aztec/kv-store/config';
|
|
6
|
+
import type { ProverCoordination, ProvingJobBroker } from '@aztec/stdlib/interfaces/server';
|
|
7
|
+
import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
8
|
+
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
9
|
+
import type { ProverNodeConfig } from './config.js';
|
|
10
|
+
import { ProverNodePublisher } from './prover-node-publisher.js';
|
|
11
|
+
import { ProverNode } from './prover-node.js';
|
|
12
|
+
/** Creates a new prover node given a config. */
|
|
13
|
+
export declare function createProverNode(config: ProverNodeConfig & DataStoreConfig, deps?: {
|
|
14
|
+
telemetry?: TelemetryClient;
|
|
15
|
+
log?: Logger;
|
|
16
|
+
aztecNodeTxProvider?: ProverCoordination;
|
|
17
|
+
archiver?: Archiver;
|
|
18
|
+
publisher?: ProverNodePublisher;
|
|
19
|
+
blobSinkClient?: BlobSinkClientInterface;
|
|
20
|
+
broker?: ProvingJobBroker;
|
|
21
|
+
l1TxUtils?: L1TxUtils;
|
|
22
|
+
}, options?: {
|
|
23
|
+
prefilledPublicData?: PublicDataTreeLeaf[];
|
|
24
|
+
}): Promise<ProverNode>;
|
|
25
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,KAAK,uBAAuB,EAAwB,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAAE,SAAS,EAAwD,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,UAAU,EAA0B,MAAM,kBAAkB,CAAC;AAEtE,gDAAgD;AAChD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,gBAAgB,GAAG,eAAe,EAC1C,IAAI,GAAE;IACJ,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;CAClB,EACN,OAAO,GAAE;IACP,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC,uBAgEP"}
|
package/dest/http.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ProverNode } from './prover-node.js';
|
|
2
|
+
/**
|
|
3
|
+
* Wrap a ProverNode instance with a JSON RPC HTTP server.
|
|
4
|
+
* @param node - The ProverNode
|
|
5
|
+
* @returns An JSON-RPC HTTP server
|
|
6
|
+
*/
|
|
7
|
+
export declare function createProverNodeRpcServer(node: ProverNode): import("@aztec/foundation/json-rpc/server").SafeJsonRpcServer;
|
|
8
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,UAAU,iEAEzD"}
|
package/dest/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { PublicProcessorFactory } from '@aztec/simulator/server';
|
|
2
|
+
import type { L2Block, L2BlockSource } from '@aztec/stdlib/block';
|
|
3
|
+
import { type EpochProver, type EpochProvingJobState, type ForkMerkleTreeOperations } from '@aztec/stdlib/interfaces/server';
|
|
4
|
+
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
5
|
+
import type { Tx } from '@aztec/stdlib/tx';
|
|
6
|
+
import { type Traceable, type Tracer } from '@aztec/telemetry-client';
|
|
7
|
+
import type { ProverNodeMetrics } from '../metrics.js';
|
|
8
|
+
import type { ProverNodePublisher } from '../prover-node-publisher.js';
|
|
9
|
+
/**
|
|
10
|
+
* Job that grabs a range of blocks from the unfinalised chain from L1, gets their txs given their hashes,
|
|
11
|
+
* re-executes their public calls, generates a rollup proof, and submits it to L1. This job will update the
|
|
12
|
+
* world state as part of public call execution via the public processor.
|
|
13
|
+
*/
|
|
14
|
+
export declare class EpochProvingJob implements Traceable {
|
|
15
|
+
private dbProvider;
|
|
16
|
+
private epochNumber;
|
|
17
|
+
private blocks;
|
|
18
|
+
private txs;
|
|
19
|
+
private prover;
|
|
20
|
+
private publicProcessorFactory;
|
|
21
|
+
private publisher;
|
|
22
|
+
private l2BlockSource;
|
|
23
|
+
private l1ToL2MessageSource;
|
|
24
|
+
private metrics;
|
|
25
|
+
private deadline;
|
|
26
|
+
private config;
|
|
27
|
+
private cleanUp;
|
|
28
|
+
private state;
|
|
29
|
+
private log;
|
|
30
|
+
private uuid;
|
|
31
|
+
private runPromise;
|
|
32
|
+
private deadlineTimeoutHandler;
|
|
33
|
+
readonly tracer: Tracer;
|
|
34
|
+
constructor(dbProvider: ForkMerkleTreeOperations, epochNumber: bigint, blocks: L2Block[], txs: Tx[], prover: EpochProver, publicProcessorFactory: PublicProcessorFactory, publisher: ProverNodePublisher, l2BlockSource: L2BlockSource, l1ToL2MessageSource: L1ToL2MessageSource, metrics: ProverNodeMetrics, deadline: Date | undefined, config?: {
|
|
35
|
+
parallelBlockLimit: number;
|
|
36
|
+
}, cleanUp?: (job: EpochProvingJob) => Promise<void>);
|
|
37
|
+
getId(): string;
|
|
38
|
+
getState(): EpochProvingJobState;
|
|
39
|
+
getEpochNumber(): bigint;
|
|
40
|
+
/**
|
|
41
|
+
* Proves the given epoch and submits the proof to L1.
|
|
42
|
+
*/
|
|
43
|
+
run(): Promise<void>;
|
|
44
|
+
private progressState;
|
|
45
|
+
private checkState;
|
|
46
|
+
stop(state?: EpochProvingJobState): Promise<void>;
|
|
47
|
+
private scheduleDeadlineStop;
|
|
48
|
+
private getBlockHeader;
|
|
49
|
+
private getTxs;
|
|
50
|
+
private getL1ToL2Messages;
|
|
51
|
+
private processTxs;
|
|
52
|
+
}
|
|
53
|
+
export { type EpochProvingJobState };
|
|
54
|
+
//# sourceMappingURL=epoch-proving-job.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"epoch-proving-job.d.ts","sourceRoot":"","sources":["../../src/job/epoch-proving-job.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,oBAAoB,EAEzB,KAAK,wBAAwB,EAC9B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAe,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAI7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAW7C,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IAtBjB,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,GAAG,CAAiD;IAC5D,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,sBAAsB,CAA6B;IAE3D,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAGrB,UAAU,EAAE,wBAAwB,EACpC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,EAAE,EACjB,GAAG,EAAE,EAAE,EAAE,EACT,MAAM,EAAE,WAAW,EACnB,sBAAsB,EAAE,sBAAsB,EAC9C,SAAS,EAAE,mBAAmB,EAC9B,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,IAAI,GAAG,SAAS,EAC1B,MAAM,GAAE;QAAE,kBAAkB,EAAE,MAAM,CAAA;KAA+B,EACnE,OAAO,GAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAA2B;IAM7E,KAAK,IAAI,MAAM;IAIf,QAAQ,IAAI,oBAAoB;IAIhC,cAAc,IAAI,MAAM;IAI/B;;OAEG;IAIU,GAAG;IAgGhB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;IAML,IAAI,CAAC,KAAK,GAAE,oBAAgC;IASzD,OAAO,CAAC,oBAAoB;YAqBd,cAAc;YAOd,MAAM;IAQpB,OAAO,CAAC,iBAAiB;YAIX,UAAU;CAgBzB;AASD,OAAO,EAAE,KAAK,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { L1PublishProofStats } from '@aztec/stdlib/stats';
|
|
2
|
+
import { type Histogram, type TelemetryClient, type UpDownCounter } from '@aztec/telemetry-client';
|
|
3
|
+
export declare class ProverNodeMetrics {
|
|
4
|
+
readonly client: TelemetryClient;
|
|
5
|
+
private logger;
|
|
6
|
+
proverEpochExecutionDuration: Histogram;
|
|
7
|
+
provingJobDuration: Histogram;
|
|
8
|
+
provingJobBlocks: Histogram;
|
|
9
|
+
provingJobTransactions: Histogram;
|
|
10
|
+
gasPrice: Histogram;
|
|
11
|
+
txCount: UpDownCounter;
|
|
12
|
+
txDuration: Histogram;
|
|
13
|
+
txGas: Histogram;
|
|
14
|
+
txCalldataSize: Histogram;
|
|
15
|
+
txCalldataGas: Histogram;
|
|
16
|
+
txBlobDataGasUsed: Histogram;
|
|
17
|
+
txBlobDataGasCost: Histogram;
|
|
18
|
+
private senderBalance;
|
|
19
|
+
constructor(client: TelemetryClient, name?: string, logger?: import("@aztec/foundation/log").Logger);
|
|
20
|
+
recordFailedTx(): void;
|
|
21
|
+
recordSubmitProof(durationMs: number, stats: L1PublishProofStats): void;
|
|
22
|
+
recordProvingJob(executionTimeMs: number, totalTimeMs: number, numBlocks: number, numTxs: number): void;
|
|
23
|
+
recordSenderBalance(wei: bigint, senderAddress: string): void;
|
|
24
|
+
private recordTx;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAGL,KAAK,SAAS,EAEd,KAAK,eAAe,EACpB,KAAK,aAAa,EAEnB,MAAM,yBAAyB,CAAC;AAIjC,qBAAa,iBAAiB;aAkBV,MAAM,EAAE,eAAe;IAEvC,OAAO,CAAC,MAAM;IAnBhB,4BAA4B,EAAE,SAAS,CAAC;IACxC,kBAAkB,EAAE,SAAS,CAAC;IAC9B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,sBAAsB,EAAE,SAAS,CAAC;IAElC,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,SAAS,CAAC;IACtB,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,SAAS,CAAC;IAC1B,aAAa,EAAE,SAAS,CAAC;IACzB,iBAAiB,EAAE,SAAS,CAAC;IAC7B,iBAAiB,EAAE,SAAS,CAAC;IAE7B,OAAO,CAAC,aAAa,CAAQ;gBAGX,MAAM,EAAE,eAAe,EACvC,IAAI,SAAe,EACX,MAAM,yCAAgD;IA2EhE,cAAc;IAOd,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB;IAIzD,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOhG,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAO7D,OAAO,CAAC,QAAQ;CA6BjB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { L2BlockSource } from '@aztec/stdlib/block';
|
|
2
|
+
import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
3
|
+
import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
|
|
4
|
+
export interface EpochMonitorHandler {
|
|
5
|
+
handleEpochReadyToProve(epochNumber: bigint): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Fires an event when a new epoch ready to prove is detected.
|
|
9
|
+
*
|
|
10
|
+
* We define an epoch as ready to prove when:
|
|
11
|
+
* - The epoch is complete
|
|
12
|
+
* - Its blocks have not been reorg'd out due to a missing L2 proof
|
|
13
|
+
* - Its first block is the immediate successor of the last proven block
|
|
14
|
+
*
|
|
15
|
+
* This class periodically hits the L2BlockSource.
|
|
16
|
+
* On start it will trigger the event for the last epoch ready to prove.
|
|
17
|
+
*/
|
|
18
|
+
export declare class EpochMonitor implements Traceable {
|
|
19
|
+
private readonly l2BlockSource;
|
|
20
|
+
private readonly l1Constants;
|
|
21
|
+
private options;
|
|
22
|
+
private runningPromise;
|
|
23
|
+
private log;
|
|
24
|
+
readonly tracer: Tracer;
|
|
25
|
+
private handler;
|
|
26
|
+
private latestEpochNumber;
|
|
27
|
+
constructor(l2BlockSource: L2BlockSource, l1Constants: Pick<L1RollupConstants, 'epochDuration'>, options: {
|
|
28
|
+
pollingIntervalMs: number;
|
|
29
|
+
}, telemetry?: TelemetryClient);
|
|
30
|
+
static create(l2BlockSource: L2BlockSource, options: {
|
|
31
|
+
pollingIntervalMs: number;
|
|
32
|
+
}, telemetry?: TelemetryClient): Promise<EpochMonitor>;
|
|
33
|
+
start(handler: EpochMonitorHandler): void;
|
|
34
|
+
/** Exposed for testing */
|
|
35
|
+
setHandler(handler: EpochMonitorHandler): void;
|
|
36
|
+
stop(): Promise<void>;
|
|
37
|
+
work(): Promise<void>;
|
|
38
|
+
private getEpochNumberToProve;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=epoch-monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"epoch-monitor.d.ts","sourceRoot":"","sources":["../../src/monitors/epoch-monitor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,KAAK,iBAAiB,EAAkB,MAAM,6BAA6B,CAAC;AACrF,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,mBAAmB;IAClC,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED;;;;;;;;;;GAUG;AACH,qBAAa,YAAa,YAAW,SAAS;IAS1C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,OAAO;IAVjB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,GAAG,CAA6C;IACxD,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,iBAAiB,CAAqB;gBAG3B,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAC9D,OAAO,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,EAC9C,SAAS,GAAE,eAAsC;WAM/B,MAAM,CACxB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,EACtC,SAAS,GAAE,eAAsC,GAChD,OAAO,CAAC,YAAY,CAAC;IAKjB,KAAK,CAAC,OAAO,EAAE,mBAAmB;IAMzC,0BAA0B;IACnB,UAAU,CAAC,OAAO,EAAE,mBAAmB;IAIjC,IAAI;IAMJ,IAAI;YAsBH,qBAAqB;CAYpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/monitors/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ConfigMappingsType } from '@aztec/foundation/config';
|
|
2
|
+
export type ProverCoordinationConfig = {
|
|
3
|
+
proverCoordinationNodeUrl: string | undefined;
|
|
4
|
+
};
|
|
5
|
+
export declare const proverCoordinationConfigMappings: ConfigMappingsType<ProverCoordinationConfig>;
|
|
6
|
+
export declare function getTxProviderConfigFromEnv(): ProverCoordinationConfig;
|
|
7
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/prover-coordination/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAyB,MAAM,0BAA0B,CAAC;AAE1F,MAAM,MAAM,wBAAwB,GAAG;IACrC,yBAAyB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/C,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,kBAAkB,CAAC,wBAAwB,CAMzF,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,wBAAwB,CAErE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ArchiveSource, Archiver } from '@aztec/archiver';
|
|
2
|
+
import type { EpochCache } from '@aztec/epoch-cache';
|
|
3
|
+
import type { DataStoreConfig } from '@aztec/kv-store/config';
|
|
4
|
+
import type { ProverCoordination, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
5
|
+
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
6
|
+
import type { ProverNodeConfig } from '../config.js';
|
|
7
|
+
type ProverCoordinationDeps = {
|
|
8
|
+
aztecNodeTxProvider?: ProverCoordination;
|
|
9
|
+
worldStateSynchronizer?: WorldStateSynchronizer;
|
|
10
|
+
archiver?: Archiver | ArchiveSource;
|
|
11
|
+
telemetry?: TelemetryClient;
|
|
12
|
+
epochCache?: EpochCache;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Creates a prover coordination service.
|
|
16
|
+
* If p2p is enabled, prover coordination is done via p2p.
|
|
17
|
+
* If an Aztec node URL is provided, prover coordination is done via the Aztec node over http.
|
|
18
|
+
* If an aztec node is provided, it is returned directly.
|
|
19
|
+
*/
|
|
20
|
+
export declare function createProverCoordination(config: ProverNodeConfig & DataStoreConfig, deps: ProverCoordinationDeps): Promise<ProverCoordination>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/prover-coordination/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAGlG,OAAO,EAAE,KAAK,eAAe,EAAmB,MAAM,yBAAyB,CAAC;AAEhF,OAAO,KAAK,EAAE,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,CAqC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prover-coordination/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { AZTEC_MAX_EPOCH_DURATION } from '@aztec/constants';
|
|
2
|
+
import type { L1TxUtils, RollupContract } from '@aztec/ethereum';
|
|
3
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
+
import { type Tuple } from '@aztec/foundation/serialize';
|
|
6
|
+
import type { PublisherConfig, TxSenderConfig } from '@aztec/sequencer-client';
|
|
7
|
+
import type { Proof } from '@aztec/stdlib/proofs';
|
|
8
|
+
import type { FeeRecipient, RootRollupPublicInputs } from '@aztec/stdlib/rollup';
|
|
9
|
+
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
10
|
+
/**
|
|
11
|
+
* Stats for a sent transaction.
|
|
12
|
+
*/
|
|
13
|
+
/** Arguments to the submitEpochProof method of the rollup contract */
|
|
14
|
+
export type L1SubmitEpochProofArgs = {
|
|
15
|
+
epochSize: number;
|
|
16
|
+
previousArchive: Fr;
|
|
17
|
+
endArchive: Fr;
|
|
18
|
+
previousBlockHash: Fr;
|
|
19
|
+
endBlockHash: Fr;
|
|
20
|
+
endTimestamp: Fr;
|
|
21
|
+
outHash: Fr;
|
|
22
|
+
proverId: Fr;
|
|
23
|
+
fees: Tuple<FeeRecipient, typeof AZTEC_MAX_EPOCH_DURATION>;
|
|
24
|
+
proof: Proof;
|
|
25
|
+
};
|
|
26
|
+
export declare class ProverNodePublisher {
|
|
27
|
+
private interruptibleSleep;
|
|
28
|
+
private sleepTimeMs;
|
|
29
|
+
private interrupted;
|
|
30
|
+
private metrics;
|
|
31
|
+
protected log: import("@aztec/foundation/log").Logger;
|
|
32
|
+
protected rollupContract: RollupContract;
|
|
33
|
+
readonly l1TxUtils: L1TxUtils;
|
|
34
|
+
constructor(config: TxSenderConfig & PublisherConfig, deps: {
|
|
35
|
+
rollupContract: RollupContract;
|
|
36
|
+
l1TxUtils: L1TxUtils;
|
|
37
|
+
telemetry?: TelemetryClient;
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* Calling `interrupt` will cause any in progress call to `publishRollup` to return `false` asap.
|
|
41
|
+
* Be warned, the call may return false even if the tx subsequently gets successfully mined.
|
|
42
|
+
* In practice this shouldn't matter, as we'll only ever be calling `interrupt` when we know it's going to fail.
|
|
43
|
+
* A call to `restart` is required before you can continue publishing.
|
|
44
|
+
*/
|
|
45
|
+
interrupt(): void;
|
|
46
|
+
/** Restarts the publisher after calling `interrupt`. */
|
|
47
|
+
restart(): void;
|
|
48
|
+
getSenderAddress(): EthAddress;
|
|
49
|
+
submitEpochProof(args: {
|
|
50
|
+
epochNumber: number;
|
|
51
|
+
fromBlock: number;
|
|
52
|
+
toBlock: number;
|
|
53
|
+
publicInputs: RootRollupPublicInputs;
|
|
54
|
+
proof: Proof;
|
|
55
|
+
}): Promise<boolean>;
|
|
56
|
+
private validateEpochProofSubmission;
|
|
57
|
+
private sendSubmitEpochProofTx;
|
|
58
|
+
private getSubmitEpochProofArgs;
|
|
59
|
+
protected sleepOrInterrupted(): Promise<void>;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=prover-node-publisher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prover-node-publisher.d.ts","sourceRoot":"","sources":["../src/prover-node-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAI5E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAMnF;;GAEG;AACH,sEAAsE;AACtE,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,EAAE,CAAC;IACpB,UAAU,EAAE,EAAE,CAAC;IACf,iBAAiB,EAAE,EAAE,CAAC;IACtB,YAAY,EAAE,EAAE,CAAC;IACjB,YAAY,EAAE,EAAE,CAAC;IACjB,OAAO,EAAE,EAAE,CAAC;IACZ,QAAQ,EAAE,EAAE,CAAC;IACb,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC,CAAC;IAC3D,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAoB;IAEnC,SAAS,CAAC,GAAG,yCAA+C;IAE5D,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAEzC,SAAgB,SAAS,EAAE,SAAS,CAAC;gBAGnC,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,IAAI,EAAE;QACJ,cAAc,EAAE,cAAc,CAAC;QAC/B,SAAS,EAAE,SAAS,CAAC;QACrB,SAAS,CAAC,EAAE,eAAe,CAAC;KAC7B;IAYH;;;;;OAKG;IACI,SAAS;IAKhB,wDAAwD;IACjD,OAAO;IAIP,gBAAgB;IAIV,gBAAgB,CAAC,IAAI,EAAE;QAClC,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,sBAAsB,CAAC;QACrC,KAAK,EAAE,KAAK,CAAC;KACd,GAAG,OAAO,CAAC,OAAO,CAAC;YAgDN,4BAA4B;YAyD5B,sBAAsB;IAoDpC,OAAO,CAAC,uBAAuB;cA+Bf,kBAAkB;CAGnC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { Maybe } from '@aztec/foundation/types';
|
|
2
|
+
import type { P2P } from '@aztec/p2p';
|
|
3
|
+
import { PublicProcessorFactory } from '@aztec/simulator/server';
|
|
4
|
+
import type { L2Block, L2BlockSource } from '@aztec/stdlib/block';
|
|
5
|
+
import type { ContractDataSource } from '@aztec/stdlib/contract';
|
|
6
|
+
import { type EpochProverManager, type ProverCoordination, type ProverNodeApi, type Service, type WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
7
|
+
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
8
|
+
import type { P2PClientType } from '@aztec/stdlib/p2p';
|
|
9
|
+
import type { Tx } from '@aztec/stdlib/tx';
|
|
10
|
+
import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
|
|
11
|
+
import { EpochProvingJob, type EpochProvingJobState } from './job/epoch-proving-job.js';
|
|
12
|
+
import type { EpochMonitor, EpochMonitorHandler } from './monitors/epoch-monitor.js';
|
|
13
|
+
import type { ProverNodePublisher } from './prover-node-publisher.js';
|
|
14
|
+
export type ProverNodeOptions = {
|
|
15
|
+
pollingIntervalMs: number;
|
|
16
|
+
maxPendingJobs: number;
|
|
17
|
+
maxParallelBlocksPerEpoch: number;
|
|
18
|
+
txGatheringTimeoutMs: number;
|
|
19
|
+
txGatheringIntervalMs: number;
|
|
20
|
+
txGatheringMaxParallelRequests: number;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* An Aztec Prover Node is a standalone process that monitors the unfinalised chain on L1 for unproven blocks,
|
|
24
|
+
* submits bids for proving them, and monitors if they are accepted. If so, the prover node fetches the txs
|
|
25
|
+
* from a tx source in the p2p network or an external node, re-executes their public functions, creates a rollup
|
|
26
|
+
* proof for the epoch, and submits it to L1.
|
|
27
|
+
*/
|
|
28
|
+
export declare class ProverNode implements EpochMonitorHandler, ProverNodeApi, Traceable {
|
|
29
|
+
protected readonly prover: EpochProverManager;
|
|
30
|
+
protected readonly publisher: ProverNodePublisher;
|
|
31
|
+
protected readonly l2BlockSource: L2BlockSource & Maybe<Service>;
|
|
32
|
+
protected readonly l1ToL2MessageSource: L1ToL2MessageSource;
|
|
33
|
+
protected readonly contractDataSource: ContractDataSource;
|
|
34
|
+
protected readonly worldState: WorldStateSynchronizer;
|
|
35
|
+
protected readonly coordination: ProverCoordination & Maybe<Service>;
|
|
36
|
+
protected readonly epochsMonitor: EpochMonitor;
|
|
37
|
+
protected readonly telemetryClient: TelemetryClient;
|
|
38
|
+
private log;
|
|
39
|
+
private dateProvider;
|
|
40
|
+
private latestEpochWeAreProving;
|
|
41
|
+
private jobs;
|
|
42
|
+
private cachedEpochData;
|
|
43
|
+
private options;
|
|
44
|
+
private metrics;
|
|
45
|
+
private txFetcher;
|
|
46
|
+
private lastBlockNumber;
|
|
47
|
+
readonly tracer: Tracer;
|
|
48
|
+
constructor(prover: EpochProverManager, publisher: ProverNodePublisher, l2BlockSource: L2BlockSource & Maybe<Service>, l1ToL2MessageSource: L1ToL2MessageSource, contractDataSource: ContractDataSource, worldState: WorldStateSynchronizer, coordination: ProverCoordination & Maybe<Service>, epochsMonitor: EpochMonitor, options?: Partial<ProverNodeOptions>, telemetryClient?: TelemetryClient);
|
|
49
|
+
getProverId(): import("@aztec/aztec.js").Fr;
|
|
50
|
+
getP2P(): P2P<P2PClientType.Prover> | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Handles an epoch being completed by starting a proof for it if there are no active jobs for it.
|
|
53
|
+
* @param epochNumber - The epoch number that was just completed.
|
|
54
|
+
*/
|
|
55
|
+
handleEpochReadyToProve(epochNumber: bigint): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Starts the prover node so it periodically checks for unproven epochs in the unfinalised chain from L1 and
|
|
58
|
+
* starts proving jobs for them.
|
|
59
|
+
*/
|
|
60
|
+
start(): void;
|
|
61
|
+
/**
|
|
62
|
+
* Stops the prover node and all its dependencies.
|
|
63
|
+
*/
|
|
64
|
+
stop(): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Creates a proof for a block range. Returns once the proof has been submitted to L1.
|
|
67
|
+
*/
|
|
68
|
+
prove(epochNumber: number | bigint): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Starts a proving process and returns immediately.
|
|
71
|
+
*/
|
|
72
|
+
startProof(epochNumber: number | bigint): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Returns the prover instance.
|
|
75
|
+
*/
|
|
76
|
+
getProver(): EpochProverManager;
|
|
77
|
+
/**
|
|
78
|
+
* Returns an array of jobs being processed.
|
|
79
|
+
*/
|
|
80
|
+
getJobs(): Promise<{
|
|
81
|
+
uuid: string;
|
|
82
|
+
status: EpochProvingJobState;
|
|
83
|
+
epochNumber: number;
|
|
84
|
+
}[]>;
|
|
85
|
+
protected getActiveJobsForEpoch(epochBigInt: bigint): Promise<{
|
|
86
|
+
uuid: string;
|
|
87
|
+
status: EpochProvingJobState;
|
|
88
|
+
}[]>;
|
|
89
|
+
private checkMaximumPendingJobs;
|
|
90
|
+
private createProvingJob;
|
|
91
|
+
private getL1Constants;
|
|
92
|
+
/** Monitors for new blocks and requests their txs from the p2p layer to ensure they are available for proving. */
|
|
93
|
+
private checkForTxs;
|
|
94
|
+
private gatherEpochData;
|
|
95
|
+
private gatherBlocks;
|
|
96
|
+
private gatherTxs;
|
|
97
|
+
/** Extracted for testing purposes. */
|
|
98
|
+
protected doCreateEpochProvingJob(epochNumber: bigint, deadline: Date | undefined, blocks: L2Block[], txs: Tx[], publicProcessorFactory: PublicProcessorFactory, cleanUp: () => Promise<void>): EpochProvingJob;
|
|
99
|
+
/** Extracted for testing purposes. */
|
|
100
|
+
protected triggerMonitors(): Promise<void>;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=prover-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { EpochProverManager } from '@aztec/stdlib/interfaces/server';
|
|
2
|
+
import type { ProverNodePublisher } from '../prover-node-publisher.js';
|
|
3
|
+
import { ProverNode } from '../prover-node.js';
|
|
4
|
+
declare class TestProverNode_ extends ProverNode {
|
|
5
|
+
prover: EpochProverManager;
|
|
6
|
+
publisher: ProverNodePublisher;
|
|
7
|
+
}
|
|
8
|
+
export type TestProverNode = TestProverNode_;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,cAAM,eAAgB,SAAQ,UAAU;IACtB,MAAM,EAAG,kBAAkB,CAAC;IAC5B,SAAS,EAAG,mBAAmB,CAAC;CACjD;AAED,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-node",
|
|
3
|
-
"version": "0.77.0-testnet-ignition.
|
|
3
|
+
"version": "0.77.0-testnet-ignition.30",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -53,24 +53,24 @@
|
|
|
53
53
|
]
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@aztec/archiver": "0.77.0-testnet-ignition.
|
|
57
|
-
"@aztec/bb-prover": "0.77.0-testnet-ignition.
|
|
58
|
-
"@aztec/blob-sink": "0.77.0-testnet-ignition.
|
|
59
|
-
"@aztec/constants": "0.77.0-testnet-ignition.
|
|
60
|
-
"@aztec/epoch-cache": "0.77.0-testnet-ignition.
|
|
61
|
-
"@aztec/ethereum": "0.77.0-testnet-ignition.
|
|
62
|
-
"@aztec/foundation": "0.77.0-testnet-ignition.
|
|
63
|
-
"@aztec/kv-store": "0.77.0-testnet-ignition.
|
|
64
|
-
"@aztec/l1-artifacts": "0.77.0-testnet-ignition.
|
|
65
|
-
"@aztec/noir-protocol-circuits-types": "0.77.0-testnet-ignition.
|
|
66
|
-
"@aztec/p2p": "0.77.0-testnet-ignition.
|
|
67
|
-
"@aztec/protocol-contracts": "0.77.0-testnet-ignition.
|
|
68
|
-
"@aztec/prover-client": "0.77.0-testnet-ignition.
|
|
69
|
-
"@aztec/sequencer-client": "0.77.0-testnet-ignition.
|
|
70
|
-
"@aztec/simulator": "0.77.0-testnet-ignition.
|
|
71
|
-
"@aztec/stdlib": "0.77.0-testnet-ignition.
|
|
72
|
-
"@aztec/telemetry-client": "0.77.0-testnet-ignition.
|
|
73
|
-
"@aztec/world-state": "0.77.0-testnet-ignition.
|
|
56
|
+
"@aztec/archiver": "0.77.0-testnet-ignition.30",
|
|
57
|
+
"@aztec/bb-prover": "0.77.0-testnet-ignition.30",
|
|
58
|
+
"@aztec/blob-sink": "0.77.0-testnet-ignition.30",
|
|
59
|
+
"@aztec/constants": "0.77.0-testnet-ignition.30",
|
|
60
|
+
"@aztec/epoch-cache": "0.77.0-testnet-ignition.30",
|
|
61
|
+
"@aztec/ethereum": "0.77.0-testnet-ignition.30",
|
|
62
|
+
"@aztec/foundation": "0.77.0-testnet-ignition.30",
|
|
63
|
+
"@aztec/kv-store": "0.77.0-testnet-ignition.30",
|
|
64
|
+
"@aztec/l1-artifacts": "0.77.0-testnet-ignition.30",
|
|
65
|
+
"@aztec/noir-protocol-circuits-types": "0.77.0-testnet-ignition.30",
|
|
66
|
+
"@aztec/p2p": "0.77.0-testnet-ignition.30",
|
|
67
|
+
"@aztec/protocol-contracts": "0.77.0-testnet-ignition.30",
|
|
68
|
+
"@aztec/prover-client": "0.77.0-testnet-ignition.30",
|
|
69
|
+
"@aztec/sequencer-client": "0.77.0-testnet-ignition.30",
|
|
70
|
+
"@aztec/simulator": "0.77.0-testnet-ignition.30",
|
|
71
|
+
"@aztec/stdlib": "0.77.0-testnet-ignition.30",
|
|
72
|
+
"@aztec/telemetry-client": "0.77.0-testnet-ignition.30",
|
|
73
|
+
"@aztec/world-state": "0.77.0-testnet-ignition.30",
|
|
74
74
|
"source-map-support": "^0.5.21",
|
|
75
75
|
"tslib": "^2.4.0",
|
|
76
76
|
"viem": "2.22.8"
|