@aztec/prover-node 0.74.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2
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/bond/bond-manager.js +10 -12
- package/dest/bond/config.js +3 -4
- package/dest/bond/escrow-contract.js +23 -15
- package/dest/bond/factory.js +4 -2
- package/dest/bond/index.js +0 -1
- package/dest/bond/token-contract.js +52 -29
- package/dest/config.js +20 -21
- package/dest/factory.js +26 -14
- package/dest/http.js +1 -3
- package/dest/index.js +0 -1
- package/dest/job/epoch-proving-job.js +230 -190
- package/dest/metrics.js +33 -23
- package/dest/monitors/claims-monitor.js +52 -51
- package/dest/monitors/epoch-monitor.js +48 -47
- package/dest/monitors/index.js +0 -1
- package/dest/prover-coordination/config.js +2 -3
- package/dest/prover-coordination/factory.js +8 -7
- package/dest/prover-coordination/index.js +0 -1
- package/dest/prover-node-publisher.js +46 -43
- package/dest/prover-node.js +303 -308
- package/dest/quote-provider/http.js +11 -5
- package/dest/quote-provider/index.js +1 -2
- package/dest/quote-provider/simple.js +7 -3
- package/dest/quote-provider/utils.js +2 -3
- package/dest/quote-signer.js +6 -3
- package/dest/test/index.js +2 -1
- package/package.json +19 -19
- package/src/prover-node.ts +34 -62
- package/dest/bond/bond-manager.d.ts +0 -22
- package/dest/bond/bond-manager.d.ts.map +0 -1
- package/dest/bond/config.d.ts +0 -8
- package/dest/bond/config.d.ts.map +0 -1
- package/dest/bond/escrow-contract.d.ts +0 -19
- package/dest/bond/escrow-contract.d.ts.map +0 -1
- package/dest/bond/factory.d.ts +0 -6
- package/dest/bond/factory.d.ts.map +0 -1
- package/dest/bond/index.d.ts +0 -3
- package/dest/bond/index.d.ts.map +0 -1
- package/dest/bond/token-contract.d.ts +0 -26
- package/dest/bond/token-contract.d.ts.map +0 -1
- package/dest/config.d.ts +0 -31
- package/dest/config.d.ts.map +0 -1
- package/dest/factory.d.ts +0 -22
- package/dest/factory.d.ts.map +0 -1
- package/dest/http.d.ts +0 -8
- package/dest/http.d.ts.map +0 -1
- package/dest/index.d.ts +0 -6
- package/dest/index.d.ts.map +0 -1
- package/dest/job/epoch-proving-job.d.ts +0 -50
- package/dest/job/epoch-proving-job.d.ts.map +0 -1
- package/dest/metrics.d.ts +0 -23
- package/dest/metrics.d.ts.map +0 -1
- package/dest/monitors/claims-monitor.d.ts +0 -24
- package/dest/monitors/claims-monitor.d.ts.map +0 -1
- package/dest/monitors/epoch-monitor.d.ts +0 -22
- package/dest/monitors/epoch-monitor.d.ts.map +0 -1
- package/dest/monitors/index.d.ts +0 -3
- package/dest/monitors/index.d.ts.map +0 -1
- package/dest/prover-coordination/config.d.ts +0 -7
- package/dest/prover-coordination/config.d.ts.map +0 -1
- package/dest/prover-coordination/factory.d.ts +0 -22
- package/dest/prover-coordination/factory.d.ts.map +0 -1
- package/dest/prover-coordination/index.d.ts +0 -3
- package/dest/prover-coordination/index.d.ts.map +0 -1
- package/dest/prover-node-publisher.d.ts +0 -67
- package/dest/prover-node-publisher.d.ts.map +0 -1
- package/dest/prover-node.d.ts +0 -107
- package/dest/prover-node.d.ts.map +0 -1
- package/dest/quote-provider/http.d.ts +0 -15
- package/dest/quote-provider/http.d.ts.map +0 -1
- package/dest/quote-provider/index.d.ts +0 -6
- package/dest/quote-provider/index.d.ts.map +0 -1
- package/dest/quote-provider/simple.d.ts +0 -9
- package/dest/quote-provider/simple.d.ts.map +0 -1
- package/dest/quote-provider/utils.d.ts +0 -4
- package/dest/quote-provider/utils.d.ts.map +0 -1
- package/dest/quote-signer.d.ts +0 -13
- package/dest/quote-signer.d.ts.map +0 -1
- package/dest/test/index.d.ts +0 -10
- package/dest/test/index.d.ts.map +0 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
2
2
|
import { getTotalFees, getTxCount } from './utils.js';
|
|
3
3
|
export class HttpQuoteProvider {
|
|
4
|
-
|
|
4
|
+
url;
|
|
5
|
+
constructor(url){
|
|
5
6
|
this.url = url;
|
|
6
7
|
}
|
|
7
8
|
async getQuote(epochNumber, epoch) {
|
|
@@ -10,12 +11,14 @@ export class HttpQuoteProvider {
|
|
|
10
11
|
fromBlock: epoch[0].number,
|
|
11
12
|
toBlock: epoch.at(-1).number,
|
|
12
13
|
totalFees: getTotalFees(epoch).toString(),
|
|
13
|
-
txCount: getTxCount(epoch)
|
|
14
|
+
txCount: getTxCount(epoch)
|
|
14
15
|
};
|
|
15
16
|
const response = await fetch(this.url, {
|
|
16
17
|
method: 'POST',
|
|
17
18
|
body: jsonStringify(payload),
|
|
18
|
-
headers: {
|
|
19
|
+
headers: {
|
|
20
|
+
'content-type': 'application/json'
|
|
21
|
+
}
|
|
19
22
|
});
|
|
20
23
|
if (!response.ok) {
|
|
21
24
|
throw new Error(`Failed to fetch quote: ${response.statusText}`);
|
|
@@ -27,7 +30,10 @@ export class HttpQuoteProvider {
|
|
|
27
30
|
const basisPointFee = Number(data.basisPointFee);
|
|
28
31
|
const bondAmount = BigInt(data.bondAmount);
|
|
29
32
|
const validUntilSlot = data.validUntilSlot ? BigInt(data.validUntilSlot) : undefined;
|
|
30
|
-
return {
|
|
33
|
+
return {
|
|
34
|
+
basisPointFee,
|
|
35
|
+
bondAmount,
|
|
36
|
+
validUntilSlot
|
|
37
|
+
};
|
|
31
38
|
}
|
|
32
39
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdW90ZS1wcm92aWRlci9odHRwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUczRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0RCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFlBQTZCLEdBQVc7UUFBWCxRQUFHLEdBQUgsR0FBRyxDQUFRO0lBQUcsQ0FBQztJQUVyQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQW1CLEVBQUUsS0FBZ0I7UUFDekQsTUFBTSxPQUFPLEdBQTRCO1lBQ3ZDLFdBQVc7WUFDWCxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU07WUFDMUIsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQyxNQUFNO1lBQzdCLFNBQVMsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFO1lBQ3pDLE9BQU8sRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDO1NBQzNCLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3JDLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUM7WUFDNUIsT0FBTyxFQUFFLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFO1NBQ2hELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMscUVBQXFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUcsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLENBQUM7SUFDdkQsQ0FBQztDQUNGIn0=
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVvdGUtcHJvdmlkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
1
|
+
export { };
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
export class SimpleQuoteProvider {
|
|
2
|
-
|
|
2
|
+
basisPointFee;
|
|
3
|
+
bondAmount;
|
|
4
|
+
constructor(basisPointFee, bondAmount){
|
|
3
5
|
this.basisPointFee = basisPointFee;
|
|
4
6
|
this.bondAmount = bondAmount;
|
|
5
7
|
}
|
|
6
8
|
getQuote(_epochNumber, _epoch) {
|
|
7
9
|
const { basisPointFee, bondAmount } = this;
|
|
8
|
-
return Promise.resolve({
|
|
10
|
+
return Promise.resolve({
|
|
11
|
+
basisPointFee,
|
|
12
|
+
bondAmount
|
|
13
|
+
});
|
|
9
14
|
}
|
|
10
15
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1b3RlLXByb3ZpZGVyL3NpbXBsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQTRCLGFBQXFCLEVBQWtCLFVBQWtCO1FBQXpELGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQWtCLGVBQVUsR0FBVixVQUFVLENBQVE7SUFBRyxDQUFDO0lBRXpGLFFBQVEsQ0FDTixZQUFvQixFQUNwQixNQUFpQjtRQUVqQixNQUFNLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMzQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0NBQ0YifQ==
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Fr } from '@aztec/circuits.js';
|
|
2
2
|
export function getTotalFees(epoch) {
|
|
3
|
-
return epoch.reduce((total, block)
|
|
3
|
+
return epoch.reduce((total, block)=>total.add(block.header.totalFees), Fr.ZERO).toBigInt();
|
|
4
4
|
}
|
|
5
5
|
export function getTxCount(epoch) {
|
|
6
|
-
return epoch.reduce((total, block)
|
|
6
|
+
return epoch.reduce((total, block)=>total + block.body.txEffects.length, 0);
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVvdGUtcHJvdmlkZXIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhDLE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBZ0I7SUFDM0MsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUMvRixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUFnQjtJQUN6QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2hGLENBQUMifQ==
|
package/dest/quote-signer.js
CHANGED
|
@@ -2,12 +2,16 @@ import { EpochProofQuote } from '@aztec/circuit-types';
|
|
|
2
2
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
3
3
|
import { Secp256k1Signer } from '@aztec/foundation/crypto';
|
|
4
4
|
export class QuoteSigner {
|
|
5
|
-
|
|
5
|
+
signer;
|
|
6
|
+
quoteToDigest;
|
|
7
|
+
constructor(signer, quoteToDigest){
|
|
6
8
|
this.signer = signer;
|
|
7
9
|
this.quoteToDigest = quoteToDigest;
|
|
8
10
|
}
|
|
9
11
|
static new(privateKey, rollupContract) {
|
|
10
|
-
const quoteToDigest = (payload)
|
|
12
|
+
const quoteToDigest = (payload)=>rollupContract.read.quoteToDigest([
|
|
13
|
+
payload.toViemArgs()
|
|
14
|
+
]).then(Buffer32.fromString);
|
|
11
15
|
return new QuoteSigner(new Secp256k1Signer(privateKey), quoteToDigest);
|
|
12
16
|
}
|
|
13
17
|
async sign(payload) {
|
|
@@ -15,4 +19,3 @@ export class QuoteSigner {
|
|
|
15
19
|
return EpochProofQuote.new(digest, payload, this.signer);
|
|
16
20
|
}
|
|
17
21
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGUtc2lnbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3F1b3RlLXNpZ25lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUErQixNQUFNLHNCQUFzQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFLM0QsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFDbUIsTUFBdUIsRUFDdkIsYUFBcUU7UUFEckUsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQXdEO0lBQ3JGLENBQUM7SUFFSixNQUFNLENBQUMsR0FBRyxDQUFDLFVBQW9CLEVBQUUsY0FBcUU7UUFDcEcsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUErQixFQUFFLEVBQUUsQ0FDeEQsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEYsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxVQUFVLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUErQjtRQUMvQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsT0FBTyxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNELENBQUM7Q0FDRiJ9
|
package/dest/test/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ProverNode } from '../prover-node.js';
|
|
2
2
|
class TestProverNode_ extends ProverNode {
|
|
3
|
+
prover;
|
|
4
|
+
publisher;
|
|
3
5
|
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFL0MsTUFBTSxlQUFnQixTQUFRLFVBQVU7Q0FHdkMifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src",
|
|
18
18
|
"formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
|
|
19
19
|
"bb": "node --no-warnings ./dest/bb/index.js",
|
|
20
|
-
"test": "
|
|
20
|
+
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
21
21
|
},
|
|
22
22
|
"jest": {
|
|
23
23
|
"moduleNameMapper": {
|
|
@@ -53,23 +53,23 @@
|
|
|
53
53
|
]
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@aztec/archiver": "0.
|
|
57
|
-
"@aztec/bb-prover": "0.
|
|
58
|
-
"@aztec/blob-sink": "0.
|
|
59
|
-
"@aztec/circuit-types": "0.
|
|
60
|
-
"@aztec/circuits.js": "0.
|
|
61
|
-
"@aztec/epoch-cache": "0.
|
|
62
|
-
"@aztec/ethereum": "0.
|
|
63
|
-
"@aztec/foundation": "0.
|
|
64
|
-
"@aztec/kv-store": "0.
|
|
65
|
-
"@aztec/l1-artifacts": "0.
|
|
66
|
-
"@aztec/p2p": "0.
|
|
67
|
-
"@aztec/prover-client": "0.
|
|
68
|
-
"@aztec/sequencer-client": "0.
|
|
69
|
-
"@aztec/simulator": "0.
|
|
70
|
-
"@aztec/telemetry-client": "0.
|
|
71
|
-
"@aztec/types": "0.
|
|
72
|
-
"@aztec/world-state": "0.
|
|
56
|
+
"@aztec/archiver": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
57
|
+
"@aztec/bb-prover": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
58
|
+
"@aztec/blob-sink": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
59
|
+
"@aztec/circuit-types": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
60
|
+
"@aztec/circuits.js": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
61
|
+
"@aztec/epoch-cache": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
62
|
+
"@aztec/ethereum": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
63
|
+
"@aztec/foundation": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
64
|
+
"@aztec/kv-store": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
65
|
+
"@aztec/l1-artifacts": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
66
|
+
"@aztec/p2p": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
67
|
+
"@aztec/prover-client": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
68
|
+
"@aztec/sequencer-client": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
69
|
+
"@aztec/simulator": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
70
|
+
"@aztec/telemetry-client": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
71
|
+
"@aztec/types": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
72
|
+
"@aztec/world-state": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
73
73
|
"source-map-support": "^0.5.21",
|
|
74
74
|
"tslib": "^2.4.0",
|
|
75
75
|
"viem": "2.22.8"
|
package/src/prover-node.ts
CHANGED
|
@@ -17,12 +17,10 @@ import {
|
|
|
17
17
|
tryStop,
|
|
18
18
|
} from '@aztec/circuit-types';
|
|
19
19
|
import { type ContractDataSource } from '@aztec/circuits.js';
|
|
20
|
-
import { asyncPool } from '@aztec/foundation/async-pool';
|
|
21
20
|
import { compact } from '@aztec/foundation/collection';
|
|
22
21
|
import { memoize } from '@aztec/foundation/decorators';
|
|
23
|
-
import { TimeoutError } from '@aztec/foundation/error';
|
|
24
22
|
import { createLogger } from '@aztec/foundation/log';
|
|
25
|
-
import {
|
|
23
|
+
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
26
24
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
27
25
|
import { type Maybe } from '@aztec/foundation/types';
|
|
28
26
|
import { type P2P } from '@aztec/p2p';
|
|
@@ -70,6 +68,9 @@ export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler, Pr
|
|
|
70
68
|
private options: ProverNodeOptions;
|
|
71
69
|
private metrics: ProverNodeMetrics;
|
|
72
70
|
|
|
71
|
+
private txFetcher: RunningPromise;
|
|
72
|
+
private lastBlockNumber: number | undefined;
|
|
73
|
+
|
|
73
74
|
public readonly tracer: Tracer;
|
|
74
75
|
|
|
75
76
|
constructor(
|
|
@@ -100,6 +101,7 @@ export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler, Pr
|
|
|
100
101
|
|
|
101
102
|
this.metrics = new ProverNodeMetrics(telemetryClient, 'ProverNode');
|
|
102
103
|
this.tracer = telemetryClient.getTracer('ProverNode');
|
|
104
|
+
this.txFetcher = new RunningPromise(() => this.checkForTxs(), this.log, this.options.txGatheringIntervalMs);
|
|
103
105
|
}
|
|
104
106
|
|
|
105
107
|
public getP2P() {
|
|
@@ -205,6 +207,7 @@ export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler, Pr
|
|
|
205
207
|
* This method returns once the prover node has deposited an initial bond into the escrow contract.
|
|
206
208
|
*/
|
|
207
209
|
async start() {
|
|
210
|
+
this.txFetcher.start();
|
|
208
211
|
await this.bondManager.ensureBond();
|
|
209
212
|
this.epochsMonitor.start(this);
|
|
210
213
|
this.claimsMonitor.start(this);
|
|
@@ -216,6 +219,7 @@ export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler, Pr
|
|
|
216
219
|
*/
|
|
217
220
|
async stop() {
|
|
218
221
|
this.log.info('Stopping ProverNode');
|
|
222
|
+
await this.txFetcher.stop();
|
|
219
223
|
await this.epochsMonitor.stop();
|
|
220
224
|
await this.claimsMonitor.stop();
|
|
221
225
|
await this.prover.stop();
|
|
@@ -315,6 +319,22 @@ export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler, Pr
|
|
|
315
319
|
return this.l2BlockSource.getL1Constants();
|
|
316
320
|
}
|
|
317
321
|
|
|
322
|
+
/** Monitors for new blocks and requests their txs from the p2p layer to ensure they are available for proving. */
|
|
323
|
+
@trackSpan('ProverNode.checkForTxs')
|
|
324
|
+
private async checkForTxs() {
|
|
325
|
+
const blockNumber = await this.l2BlockSource.getBlockNumber();
|
|
326
|
+
if (this.lastBlockNumber === undefined || blockNumber > this.lastBlockNumber) {
|
|
327
|
+
const block = await this.l2BlockSource.getBlock(blockNumber);
|
|
328
|
+
if (!block) {
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
const txHashes = block.body.txEffects.map(tx => tx.txHash);
|
|
332
|
+
this.log.verbose(`Fetching ${txHashes.length} for block number ${blockNumber} from coordination`);
|
|
333
|
+
await this.coordination.getTxsByHash(txHashes); // This stores the txs in the tx pool, no need to persist them here
|
|
334
|
+
this.lastBlockNumber = blockNumber;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
|
|
318
338
|
@trackSpan('ProverNode.gatherEpochData', epochNumber => ({ [Attributes.EPOCH_NUMBER]: Number(epochNumber) }))
|
|
319
339
|
private async gatherEpochData(epochNumber: bigint) {
|
|
320
340
|
// Gather blocks for this epoch and their txs
|
|
@@ -333,68 +353,20 @@ export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler, Pr
|
|
|
333
353
|
}
|
|
334
354
|
|
|
335
355
|
private async gatherTxs(epochNumber: bigint, blocks: L2Block[]) {
|
|
336
|
-
|
|
337
|
-
const
|
|
338
|
-
const results = new Map<string, Tx>();
|
|
339
|
-
|
|
340
|
-
for (const block of blocks) {
|
|
341
|
-
for (const tx of block.body.txEffects) {
|
|
342
|
-
txsToFind.push(tx.txHash);
|
|
343
|
-
txHashToBlock.set(tx.txHash.toString(), block.number);
|
|
344
|
-
}
|
|
345
|
-
}
|
|
356
|
+
const txsToFind: TxHash[] = blocks.flatMap(block => block.body.txEffects.map(tx => tx.txHash));
|
|
357
|
+
const txs = await this.coordination.getTxsByHash(txsToFind);
|
|
346
358
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
{ epochNumber },
|
|
351
|
-
);
|
|
352
|
-
|
|
353
|
-
let iteration = 0;
|
|
354
|
-
try {
|
|
355
|
-
await retryUntil(
|
|
356
|
-
async () => {
|
|
357
|
-
const batch = [...txsToFind];
|
|
358
|
-
txsToFind = [];
|
|
359
|
-
const batchResults = await asyncPool(this.options.txGatheringMaxParallelRequests, batch, async txHash => {
|
|
360
|
-
const tx = await this.coordination.getTxByHash(txHash);
|
|
361
|
-
return [txHash, tx] as const;
|
|
362
|
-
});
|
|
363
|
-
let found = 0;
|
|
364
|
-
for (const [txHash, maybeTx] of batchResults) {
|
|
365
|
-
if (maybeTx) {
|
|
366
|
-
found++;
|
|
367
|
-
results.set(txHash.toString(), maybeTx);
|
|
368
|
-
} else {
|
|
369
|
-
txsToFind.push(txHash);
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
this.log.verbose(
|
|
374
|
-
`Gathered ${found}/${batch.length} txs in iteration ${iteration} for epoch ${epochNumber}. In total ${results.size}/${totalTxsRequired} have been retrieved.`,
|
|
375
|
-
{ epochNumber },
|
|
376
|
-
);
|
|
377
|
-
iteration++;
|
|
378
|
-
|
|
379
|
-
// stop when we found all transactions
|
|
380
|
-
return txsToFind.length === 0;
|
|
381
|
-
},
|
|
382
|
-
'Gather txs',
|
|
383
|
-
this.options.txGatheringTimeoutMs / 1_000,
|
|
384
|
-
this.options.txGatheringIntervalMs / 1_000,
|
|
385
|
-
);
|
|
386
|
-
} catch (err) {
|
|
387
|
-
if (err && err instanceof TimeoutError) {
|
|
388
|
-
const notFoundList = txsToFind
|
|
389
|
-
.map(txHash => `${txHash.toString()} (block ${txHashToBlock.get(txHash.toString())})`)
|
|
390
|
-
.join(', ');
|
|
391
|
-
throw new Error(`Txs not found for epoch ${epochNumber}: ${notFoundList}`);
|
|
392
|
-
} else {
|
|
393
|
-
throw err;
|
|
394
|
-
}
|
|
359
|
+
if (txs.length === txsToFind.length) {
|
|
360
|
+
this.log.verbose(`Gathered all ${txs.length} txs for epoch ${epochNumber}`, { epochNumber });
|
|
361
|
+
return txs;
|
|
395
362
|
}
|
|
396
363
|
|
|
397
|
-
|
|
364
|
+
const txHashesFound = await Promise.all(txs.map(tx => tx.getTxHash()));
|
|
365
|
+
const missingTxHashes = txsToFind
|
|
366
|
+
.filter(txHashToFind => !txHashesFound.some(txHashFound => txHashToFind.equals(txHashFound)))
|
|
367
|
+
.join(', ');
|
|
368
|
+
|
|
369
|
+
throw new Error(`Txs not found for epoch ${epochNumber}: ${missingTxHashes}`);
|
|
398
370
|
}
|
|
399
371
|
|
|
400
372
|
/** Extracted for testing purposes. */
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { type EscrowContract } from './escrow-contract.js';
|
|
2
|
-
import { type TokenContract } from './token-contract.js';
|
|
3
|
-
export declare class BondManager {
|
|
4
|
-
private readonly tokenContract;
|
|
5
|
-
private readonly escrowContract;
|
|
6
|
-
/** Minimum escrowed bond. A top-up will be issued once this threshold is hit. */
|
|
7
|
-
minimumAmount: bigint;
|
|
8
|
-
/** Target escrowed bond. Top-up will target this value. */
|
|
9
|
-
targetAmount: bigint;
|
|
10
|
-
private readonly logger;
|
|
11
|
-
constructor(tokenContract: TokenContract, escrowContract: EscrowContract,
|
|
12
|
-
/** Minimum escrowed bond. A top-up will be issued once this threshold is hit. */
|
|
13
|
-
minimumAmount: bigint,
|
|
14
|
-
/** Target escrowed bond. Top-up will target this value. */
|
|
15
|
-
targetAmount: bigint);
|
|
16
|
-
/**
|
|
17
|
-
* Ensures the bond is at least minimumBond, or sends a tx to deposit the remaining to reach targetBond.
|
|
18
|
-
* @param overrideMinimum - Override the minimum bond threshold. Also overrides target if it is higher.
|
|
19
|
-
*/
|
|
20
|
-
ensureBond(overrideMinimum?: bigint): Promise<void>;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=bond-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bond-manager.d.ts","sourceRoot":"","sources":["../../src/bond/bond-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAa,WAAW;IAIpB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,iFAAiF;IAC1E,aAAa,EAAE,MAAM;IAC5B,2DAA2D;IACpD,YAAY,EAAE,MAAM;IAR7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;gBAGhD,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc;IAC/C,iFAAiF;IAC1E,aAAa,EAAE,MAAM;IAC5B,2DAA2D;IACpD,YAAY,EAAE,MAAM;IAG7B;;;OAGG;IACU,UAAU,CAAC,eAAe,CAAC,EAAE,MAAM;CA0BjD"}
|
package/dest/bond/config.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type ConfigMappingsType } from '@aztec/foundation/config';
|
|
2
|
-
export type ProverBondManagerConfig = {
|
|
3
|
-
proverMinimumEscrowAmount: bigint;
|
|
4
|
-
proverTargetEscrowAmount?: bigint;
|
|
5
|
-
};
|
|
6
|
-
export declare const proverBondManagerConfigMappings: ConfigMappingsType<ProverBondManagerConfig>;
|
|
7
|
-
export declare function getProverBondManagerConfigFromEnv(): ProverBondManagerConfig;
|
|
8
|
-
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/bond/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,0BAA0B,CAAC;AAE9G,MAAM,MAAM,uBAAuB,GAAG;IACpC,yBAAyB,EAAE,MAAM,CAAC;IAClC,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,kBAAkB,CAAC,uBAAuB,CAavF,CAAC;AAEF,wBAAgB,iCAAiC,IAAI,uBAAuB,CAE3E"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { EthAddress } from '@aztec/circuits.js';
|
|
2
|
-
import { type L1Clients } from '@aztec/ethereum';
|
|
3
|
-
export declare class EscrowContract {
|
|
4
|
-
private readonly client;
|
|
5
|
-
private escrow;
|
|
6
|
-
constructor(client: L1Clients['walletClient'], address: EthAddress);
|
|
7
|
-
/** Returns the deposit of the publisher sender address on the proof commitment escrow contract. */
|
|
8
|
-
getProverDeposit(): Promise<bigint>;
|
|
9
|
-
/**
|
|
10
|
-
* Deposits the given amount of tokens into the proof commitment escrow contract. Returns once the tx is mined.
|
|
11
|
-
* @param amount - The amount to deposit.
|
|
12
|
-
*/
|
|
13
|
-
depositProverBond(amount: bigint): Promise<void>;
|
|
14
|
-
/** Returns the sender address for the client. */
|
|
15
|
-
getSenderAddress(): EthAddress;
|
|
16
|
-
getEscrowAddress(): EthAddress;
|
|
17
|
-
getTokenAddress(): Promise<EthAddress>;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=escrow-contract.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"escrow-contract.d.ts","sourceRoot":"","sources":["../../src/bond/escrow-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAYjD,qBAAa,cAAc;IAMb,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC,OAAO,CAAC,MAAM,CAGZ;gBAE2B,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,UAAU;IAInF,mGAAmG;IACtF,gBAAgB;IAI7B;;;OAGG;IACU,iBAAiB,CAAC,MAAM,EAAE,MAAM;IAK7C,iDAAiD;IAC1C,gBAAgB,IAAI,UAAU;IAI9B,gBAAgB,IAAI,UAAU;IAIxB,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC;CAGpD"}
|
package/dest/bond/factory.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { type EthAddress } from '@aztec/circuits.js';
|
|
2
|
-
import { type L1Clients } from '@aztec/ethereum';
|
|
3
|
-
import { BondManager } from './bond-manager.js';
|
|
4
|
-
import { type ProverBondManagerConfig } from './config.js';
|
|
5
|
-
export declare function createBondManager(escrowContractAddress: EthAddress, client: L1Clients['walletClient'], overrides?: Partial<ProverBondManagerConfig>): Promise<BondManager>;
|
|
6
|
-
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/bond/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,KAAK,uBAAuB,EAAqC,MAAM,aAAa,CAAC;AAI9F,wBAAsB,iBAAiB,CACrC,qBAAqB,EAAE,UAAU,EACjC,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,EACjC,SAAS,GAAE,OAAO,CAAC,uBAAuB,CAAM,wBAejD"}
|
package/dest/bond/index.d.ts
DELETED
package/dest/bond/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bond/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,cAAc,cAAc,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { EthAddress } from '@aztec/circuits.js';
|
|
2
|
-
import { type L1Clients } from '@aztec/ethereum';
|
|
3
|
-
export declare class TokenContract {
|
|
4
|
-
private readonly client;
|
|
5
|
-
private token;
|
|
6
|
-
private logger;
|
|
7
|
-
constructor(client: L1Clients['walletClient'], address: EthAddress);
|
|
8
|
-
/**
|
|
9
|
-
* Ensures the allowed address has near-maximum allowance, or sets it otherwise.
|
|
10
|
-
* Returns once allowance tx is mined successfully.
|
|
11
|
-
* @param allowed - Who to allow.
|
|
12
|
-
*/
|
|
13
|
-
ensureAllowance(allowed: EthAddress): Promise<void>;
|
|
14
|
-
/**
|
|
15
|
-
* Checks the sender address has enough balance.
|
|
16
|
-
* If it doesn't, it tries calling a `mint` method, available on testing environments.
|
|
17
|
-
* If it can't, it throws an error.
|
|
18
|
-
* @param amount - The balance to ensure.
|
|
19
|
-
*/
|
|
20
|
-
ensureBalance(amount: bigint): Promise<void>;
|
|
21
|
-
/** Returns the sender address. */
|
|
22
|
-
getSenderAddress(): EthAddress;
|
|
23
|
-
/** Returns the balance of the sender. */
|
|
24
|
-
getBalance(): Promise<bigint>;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=token-contract.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"token-contract.d.ts","sourceRoot":"","sources":["../../src/bond/token-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAgBjD,qBAAa,aAAa;IAIZ,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,KAAK,CAAiG;IAC9G,OAAO,CAAC,MAAM,CAA8C;gBAE/B,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,UAAU;IAInF;;;;OAIG;IACU,eAAe,CAAC,OAAO,EAAE,UAAU;IAShD;;;;;OAKG;IACU,aAAa,CAAC,MAAM,EAAE,MAAM;IAiBzC,kCAAkC;IAC3B,gBAAgB,IAAI,UAAU;IAIrC,yCAAyC;IAC5B,UAAU;CAGxB"}
|
package/dest/config.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { type ArchiverConfig } from '@aztec/archiver/config';
|
|
2
|
-
import { type ACVMConfig, type 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 ProverBondManagerConfig } from './bond/config.js';
|
|
11
|
-
import { type ProverCoordinationConfig } from './prover-coordination/config.js';
|
|
12
|
-
export type ProverNodeConfig = ArchiverConfig & ProverClientConfig & P2PConfig & WorldStateConfig & PublisherConfig & TxSenderConfig & DataStoreConfig & ProverCoordinationConfig & ProverBondManagerConfig & QuoteProviderConfig & SpecificProverNodeConfig;
|
|
13
|
-
type SpecificProverNodeConfig = {
|
|
14
|
-
proverNodeMaxPendingJobs: number;
|
|
15
|
-
proverNodePollingIntervalMs: number;
|
|
16
|
-
proverNodeMaxParallelBlocksPerEpoch: number;
|
|
17
|
-
txGatheringTimeoutMs: number;
|
|
18
|
-
txGatheringIntervalMs: number;
|
|
19
|
-
txGatheringMaxParallelRequests: number;
|
|
20
|
-
};
|
|
21
|
-
export type QuoteProviderConfig = {
|
|
22
|
-
quoteProviderBasisPointFee: number;
|
|
23
|
-
quoteProviderBondAmount: bigint;
|
|
24
|
-
quoteProviderUrl?: string;
|
|
25
|
-
};
|
|
26
|
-
export declare const proverNodeConfigMappings: ConfigMappingsType<ProverNodeConfig>;
|
|
27
|
-
export declare function getProverNodeConfigFromEnv(): ProverNodeConfig;
|
|
28
|
-
export declare function getProverNodeBrokerConfigFromEnv(): ProverBrokerConfig;
|
|
29
|
-
export declare function getProverNodeAgentConfigFromEnv(): ProverAgentConfig & BBConfig & ACVMConfig;
|
|
30
|
-
export {};
|
|
31
|
-
//# sourceMappingURL=config.d.ts.map
|
package/dest/config.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAoD,MAAM,wBAAwB,CAAC;AAC/G,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,eAAe,EAA4C,MAAM,wBAAwB,CAAC;AACxG,OAAO,EAAE,KAAK,SAAS,EAA0C,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAKpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,gBAAgB,EAAwD,MAAM,2BAA2B,CAAC;AAExH,OAAO,EAAE,KAAK,uBAAuB,EAAmC,MAAM,kBAAkB,CAAC;AACjG,OAAO,EACL,KAAK,wBAAwB,EAG9B,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAC3C,kBAAkB,GAClB,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,eAAe,GACf,wBAAwB,GACxB,uBAAuB,GACvB,mBAAmB,GACnB,wBAAwB,CAAC;AAE3B,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;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,0BAA0B,EAAE,MAAM,CAAC;IACnC,uBAAuB,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAqDF,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CAAC,gBAAgB,CAYzE,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,gBAAgB,CAc7D;AAED,wBAAgB,gCAAgC,IAAI,kBAAkB,CAIrE;AAED,wBAAgB,+BAA+B,IAAI,iBAAiB,GAAG,QAAQ,GAAG,UAAU,CAK3F"}
|
package/dest/factory.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { type Archiver } from '@aztec/archiver';
|
|
2
|
-
import { type BlobSinkClientInterface } from '@aztec/blob-sink/client';
|
|
3
|
-
import { type ProverCoordination, type ProvingJobBroker } from '@aztec/circuit-types';
|
|
4
|
-
import { L1TxUtils } from '@aztec/ethereum';
|
|
5
|
-
import { type Logger } from '@aztec/foundation/log';
|
|
6
|
-
import { type DataStoreConfig } from '@aztec/kv-store/config';
|
|
7
|
-
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
8
|
-
import { type ProverNodeConfig } from './config.js';
|
|
9
|
-
import { ProverNodePublisher } from './prover-node-publisher.js';
|
|
10
|
-
import { ProverNode } from './prover-node.js';
|
|
11
|
-
/** Creates a new prover node given a config. */
|
|
12
|
-
export declare function createProverNode(config: ProverNodeConfig & DataStoreConfig, deps?: {
|
|
13
|
-
telemetry?: TelemetryClient;
|
|
14
|
-
log?: Logger;
|
|
15
|
-
aztecNodeTxProvider?: ProverCoordination;
|
|
16
|
-
archiver?: Archiver;
|
|
17
|
-
publisher?: ProverNodePublisher;
|
|
18
|
-
blobSinkClient?: BlobSinkClientInterface;
|
|
19
|
-
broker?: ProvingJobBroker;
|
|
20
|
-
l1TxUtils?: L1TxUtils;
|
|
21
|
-
}): Promise<ProverNode>;
|
|
22
|
-
//# sourceMappingURL=factory.d.ts.map
|
package/dest/factory.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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;AAC7F,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEtF,OAAO,EAAE,SAAS,EAAwD,MAAM,iBAAiB,CAAC;AAGlG,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAMnF,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,aAAa,CAAC;AAI9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,UAAU,EAA0B,MAAM,kBAAkB,CAAC;AAKtE,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,uBAsEP"}
|
package/dest/http.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
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
|
package/dest/http.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,UAAU,iEAEzD"}
|
package/dest/index.d.ts
DELETED
package/dest/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { type EpochProver, type EpochProvingJobState, type ForkMerkleTreeOperations, type L1ToL2MessageSource, type L2Block, type L2BlockSource, type Tx } from '@aztec/circuit-types';
|
|
2
|
-
import { type PublicProcessorFactory } from '@aztec/simulator/server';
|
|
3
|
-
import { type Traceable, type Tracer } from '@aztec/telemetry-client';
|
|
4
|
-
import { type ProverNodeMetrics } from '../metrics.js';
|
|
5
|
-
import { type ProverNodePublisher } from '../prover-node-publisher.js';
|
|
6
|
-
/**
|
|
7
|
-
* Job that grabs a range of blocks from the unfinalised chain from L1, gets their txs given their hashes,
|
|
8
|
-
* re-executes their public calls, generates a rollup proof, and submits it to L1. This job will update the
|
|
9
|
-
* world state as part of public call execution via the public processor.
|
|
10
|
-
*/
|
|
11
|
-
export declare class EpochProvingJob implements Traceable {
|
|
12
|
-
private dbProvider;
|
|
13
|
-
private epochNumber;
|
|
14
|
-
private blocks;
|
|
15
|
-
private txs;
|
|
16
|
-
private prover;
|
|
17
|
-
private publicProcessorFactory;
|
|
18
|
-
private publisher;
|
|
19
|
-
private l2BlockSource;
|
|
20
|
-
private l1ToL2MessageSource;
|
|
21
|
-
private metrics;
|
|
22
|
-
private deadline;
|
|
23
|
-
private config;
|
|
24
|
-
private cleanUp;
|
|
25
|
-
private state;
|
|
26
|
-
private log;
|
|
27
|
-
private uuid;
|
|
28
|
-
private runPromise;
|
|
29
|
-
private deadlineTimeoutHandler;
|
|
30
|
-
readonly tracer: Tracer;
|
|
31
|
-
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?: {
|
|
32
|
-
parallelBlockLimit: number;
|
|
33
|
-
}, cleanUp?: (job: EpochProvingJob) => Promise<void>);
|
|
34
|
-
getId(): string;
|
|
35
|
-
getState(): EpochProvingJobState;
|
|
36
|
-
/**
|
|
37
|
-
* Proves the given epoch and submits the proof to L1.
|
|
38
|
-
*/
|
|
39
|
-
run(): Promise<void>;
|
|
40
|
-
private progressState;
|
|
41
|
-
private checkState;
|
|
42
|
-
stop(state?: EpochProvingJobState): Promise<void>;
|
|
43
|
-
private scheduleDeadlineStop;
|
|
44
|
-
private getBlockHeader;
|
|
45
|
-
private getTxs;
|
|
46
|
-
private getL1ToL2Messages;
|
|
47
|
-
private processTxs;
|
|
48
|
-
}
|
|
49
|
-
export { type EpochProvingJobState };
|
|
50
|
-
//# sourceMappingURL=epoch-proving-job.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"epoch-proving-job.d.ts","sourceRoot":"","sources":["../../src/job/epoch-proving-job.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,oBAAoB,EAEzB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,aAAa,EAElB,KAAK,EAAE,EACR,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAwB,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAC5F,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAI7F,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,KAAK,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;IAIvC;;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"}
|
package/dest/metrics.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { type L1PublishProofStats } from '@aztec/circuit-types/stats';
|
|
2
|
-
import { type Histogram, type TelemetryClient, type UpDownCounter } from '@aztec/telemetry-client';
|
|
3
|
-
export declare class ProverNodeMetrics {
|
|
4
|
-
readonly client: TelemetryClient;
|
|
5
|
-
proverEpochExecutionDuration: Histogram;
|
|
6
|
-
provingJobDuration: Histogram;
|
|
7
|
-
provingJobBlocks: Histogram;
|
|
8
|
-
provingJobTransactions: Histogram;
|
|
9
|
-
gasPrice: Histogram;
|
|
10
|
-
txCount: UpDownCounter;
|
|
11
|
-
txDuration: Histogram;
|
|
12
|
-
txGas: Histogram;
|
|
13
|
-
txCalldataSize: Histogram;
|
|
14
|
-
txCalldataGas: Histogram;
|
|
15
|
-
txBlobDataGasUsed: Histogram;
|
|
16
|
-
txBlobDataGasCost: Histogram;
|
|
17
|
-
constructor(client: TelemetryClient, name?: string);
|
|
18
|
-
recordFailedTx(): void;
|
|
19
|
-
recordSubmitProof(durationMs: number, stats: L1PublishProofStats): void;
|
|
20
|
-
recordProvingJob(executionTimeMs: number, totalTimeMs: number, numBlocks: number, numTxs: number): void;
|
|
21
|
-
private recordTx;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=metrics.d.ts.map
|
package/dest/metrics.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAuB,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,eAAe,EACpB,KAAK,aAAa,EAEnB,MAAM,yBAAyB,CAAC;AAIjC,qBAAa,iBAAiB;aAeA,MAAM,EAAE,eAAe;IAdnD,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;gBAED,MAAM,EAAE,eAAe,EAAE,IAAI,SAAe;IAoExE,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;IAOvG,OAAO,CAAC,QAAQ;CA6BjB"}
|