@aztec/prover-node 3.0.0-nightly.20250908 → 3.0.0-nightly.20250911
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/actions/download-epoch-proving-job.d.ts +1 -1
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +8 -12
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +1 -0
- package/dest/prover-node-publisher.d.ts +1 -1
- package/dest/prover-node-publisher.d.ts.map +1 -1
- package/dest/prover-node-publisher.js +2 -2
- package/package.json +22 -22
- package/src/config.ts +9 -24
- package/src/factory.ts +2 -0
- package/src/prover-node-publisher.ts +5 -7
|
@@ -11,7 +11,7 @@ export declare function downloadEpochProvingJob(location: string, log: Logger, c
|
|
|
11
11
|
rollupVersion: number;
|
|
12
12
|
l2BlockNumber: number;
|
|
13
13
|
l2BlockHash: string;
|
|
14
|
-
rollupAddress: import("@aztec/
|
|
14
|
+
rollupAddress: import("@aztec/aztec.js").EthAddress;
|
|
15
15
|
l1ChainId: number;
|
|
16
16
|
l1BlockNumber: number;
|
|
17
17
|
}>;
|
package/dest/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,wBAAwB,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,KAAK,kBAAkB,EAA8B,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,0BAA0B,CAAC;AAC9G,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,wBAAwB,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,KAAK,kBAAkB,EAA8B,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,0BAA0B,CAAC;AAC9G,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAA+C,MAAM,sBAAsB,CAAC;AACvH,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,sBAAsB,EAAgD,MAAM,6BAA6B,CAAC;AACxH,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAGpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,2BAA2B,CAAC;AAE5F,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAC3C,sBAAsB,GACtB,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,wBAAwB,GACxB,kBAAkB,CAAC;AAErB,MAAM,MAAM,wBAAwB,GAAG;IACrC,wBAAwB,EAAE,MAAM,CAAC;IACjC,2BAA2B,EAAE,MAAM,CAAC;IACpC,mCAAmC,EAAE,MAAM,CAAC;IAC5C,0BAA0B,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qCAAqC,EAAE,MAAM,CAAC;CAC/C,CAAC;AA6CF,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CAAC,gBAAgB,CAYzE,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,gBAAgB,CAE7D;AAED,wBAAgB,gCAAgC,IAAI,kBAAkB,CAIrE;AAED,wBAAgB,+BAA+B,IAAI,iBAAiB,GAAG,QAAQ,GAAG,UAAU,CAK3F;AA0DD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,wBAM/D"}
|
package/dest/config.js
CHANGED
|
@@ -2,7 +2,7 @@ import { archiverConfigMappings } from '@aztec/archiver/config';
|
|
|
2
2
|
import { genesisStateConfigMappings } from '@aztec/ethereum';
|
|
3
3
|
import { getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
|
|
4
4
|
import { dataConfigMappings } from '@aztec/kv-store/config';
|
|
5
|
-
import { keyStoreConfigMappings } from '@aztec/node-keystore';
|
|
5
|
+
import { ethPrivateKeySchema, keyStoreConfigMappings } from '@aztec/node-keystore';
|
|
6
6
|
import { sharedNodeConfigMappings } from '@aztec/node-lib/config';
|
|
7
7
|
import { p2pConfigMappings } from '@aztec/p2p/config';
|
|
8
8
|
import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker';
|
|
@@ -79,14 +79,12 @@ export function getProverNodeAgentConfigFromEnv() {
|
|
|
79
79
|
};
|
|
80
80
|
}
|
|
81
81
|
function createKeyStoreFromWeb3Signer(config) {
|
|
82
|
-
// See what we have been given for proverId.
|
|
83
|
-
const proverId = config.proverId ? config.proverId.toString() : undefined;
|
|
84
82
|
// If we don't have a valid prover Id then we can't build a valid key store with remote signers
|
|
85
|
-
if (proverId === undefined) {
|
|
83
|
+
if (config.proverId === undefined) {
|
|
86
84
|
return undefined;
|
|
87
85
|
}
|
|
88
86
|
// Also, we need at least one publisher address.
|
|
89
|
-
const publishers = config.publisherAddresses
|
|
87
|
+
const publishers = config.publisherAddresses ?? [];
|
|
90
88
|
if (publishers.length === 0) {
|
|
91
89
|
return undefined;
|
|
92
90
|
}
|
|
@@ -94,7 +92,7 @@ function createKeyStoreFromWeb3Signer(config) {
|
|
|
94
92
|
schemaVersion: 1,
|
|
95
93
|
slasher: undefined,
|
|
96
94
|
prover: {
|
|
97
|
-
id: proverId,
|
|
95
|
+
id: config.proverId,
|
|
98
96
|
publisher: publishers
|
|
99
97
|
},
|
|
100
98
|
remoteSigner: config.web3SignerUrl,
|
|
@@ -104,21 +102,19 @@ function createKeyStoreFromWeb3Signer(config) {
|
|
|
104
102
|
}
|
|
105
103
|
function createKeyStoreFromPublisherKeys(config) {
|
|
106
104
|
// Extract the publisher keys from the provided config.
|
|
107
|
-
const publisherKeys = config.publisherPrivateKeys ? config.publisherPrivateKeys.map((k)=>k.getValue()) : [];
|
|
105
|
+
const publisherKeys = config.publisherPrivateKeys ? config.publisherPrivateKeys.map((k)=>ethPrivateKeySchema.parse(k.getValue())) : [];
|
|
108
106
|
// There must be at least 1.
|
|
109
107
|
if (publisherKeys.length === 0) {
|
|
110
108
|
return undefined;
|
|
111
109
|
}
|
|
112
|
-
// Now see what we have been given for proverId.
|
|
113
|
-
const proverId = config.proverId ? config.proverId.toString() : undefined;
|
|
114
110
|
// If we have a valid proverId then create a prover key store of the form { id, publisher: [publisherKeys] }
|
|
115
111
|
// Otherwise create one of the form ("0x12345678....." as EthAccount).
|
|
116
112
|
const keyStore = {
|
|
117
113
|
schemaVersion: 1,
|
|
118
114
|
slasher: undefined,
|
|
119
|
-
prover: proverId === undefined ? publisherKeys[0] : {
|
|
120
|
-
id: proverId,
|
|
121
|
-
publisher: publisherKeys
|
|
115
|
+
prover: config.proverId === undefined ? publisherKeys[0] : {
|
|
116
|
+
id: config.proverId,
|
|
117
|
+
publisher: publisherKeys
|
|
122
118
|
},
|
|
123
119
|
remoteSigner: undefined,
|
|
124
120
|
validators: undefined
|
package/dest/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAE,KAAK,uBAAuB,EAAwB,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAEL,SAAS,EAKV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,KAAK,cAAc,EAAkD,MAAM,sBAAsB,CAAC;AAK3G,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAa,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAK9F,OAAO,EAAE,KAAK,gBAAgB,EAA2B,MAAM,aAAa,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACtD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,gDAAgD;AAChD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,gBAAgB,GAAG,eAAe,GAAG,cAAc,EAC/D,IAAI,GAAE,cAAmB,EACzB,OAAO,GAAE;IACP,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAE,KAAK,uBAAuB,EAAwB,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAEL,SAAS,EAKV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,KAAK,cAAc,EAAkD,MAAM,sBAAsB,CAAC;AAK3G,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAa,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAK9F,OAAO,EAAE,KAAK,gBAAgB,EAA2B,MAAM,aAAa,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACtD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,gDAAgD;AAChD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,gBAAgB,GAAG,eAAe,GAAG,cAAc,EAC/D,IAAI,GAAE,cAAmB,EACzB,OAAO,GAAE;IACP,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC,uBAkKP"}
|
package/dest/factory.js
CHANGED
|
@@ -51,6 +51,7 @@ import { ProverPublisherFactory } from './prover-publisher-factory.js';
|
|
|
51
51
|
} else if (!keyStoreProvided) {
|
|
52
52
|
log.warn('KEY STORE CREATED FROM ENVIRONMENT, IT IS RECOMMENDED TO USE A FILE-BASED KEY STORE IN PRODUCTION ENVIRONMENTS');
|
|
53
53
|
}
|
|
54
|
+
log.info(`Creating prover with publishers ${proverSigners.signers.map((signer)=>signer.address.toString()).join()}`);
|
|
54
55
|
// Only consider user provided config if it is valid
|
|
55
56
|
const proverIdInUserConfig = config.proverId === undefined || config.proverId.isZero() ? undefined : config.proverId;
|
|
56
57
|
// ProverId: Take from key store if provided, otherwise from user config if valid, otherwise address of first signer
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type BatchedBlob } from '@aztec/blob-lib';
|
|
2
2
|
import { AZTEC_MAX_EPOCH_DURATION } from '@aztec/constants';
|
|
3
|
-
import {
|
|
3
|
+
import type { L1TxUtils, RollupContract, ViemCommitteeAttestation } from '@aztec/ethereum';
|
|
4
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
6
6
|
import type { Tuple } from '@aztec/foundation/serialize';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prover-node-publisher.d.ts","sourceRoot":"","sources":["../src/prover-node-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAoC,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"prover-node-publisher.d.ts","sourceRoot":"","sources":["../src/prover-node-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAoC,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAG3F,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAIzD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE/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;AAOnF,sEAAsE;AACtE,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,EAAE,CAAC;IACpB,UAAU,EAAE,EAAE,CAAC;IACf,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,CAA6B;IAE5C,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;IAYI,iBAAiB;IAIxB;;;;;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;QACb,iBAAiB,EAAE,WAAW,CAAC;QAC/B,YAAY,EAAE,wBAAwB,EAAE,CAAC;KAC1C,GAAG,OAAO,CAAC,OAAO,CAAC;YAkDN,4BAA4B;YA0D5B,sBAAsB;IAyCpC,OAAO,CAAC,6BAA6B;IAyBrC,OAAO,CAAC,uBAAuB;cAwBf,kBAAkB;CAGnC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { FinalBlobAccumulatorPublicInputs } from '@aztec/blob-lib';
|
|
2
2
|
import { AZTEC_MAX_EPOCH_DURATION } from '@aztec/constants';
|
|
3
|
-
import { RollupContract as RollupContractClass } from '@aztec/ethereum';
|
|
4
3
|
import { makeTuple } from '@aztec/foundation/array';
|
|
5
4
|
import { areArraysEqual } from '@aztec/foundation/collection';
|
|
6
5
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
@@ -9,6 +8,7 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
9
8
|
import { InterruptibleSleep } from '@aztec/foundation/sleep';
|
|
10
9
|
import { Timer } from '@aztec/foundation/timer';
|
|
11
10
|
import { RollupAbi } from '@aztec/l1-artifacts';
|
|
11
|
+
import { CommitteeAttestation, CommitteeAttestationsAndSigners } from '@aztec/stdlib/block';
|
|
12
12
|
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
13
13
|
import { inspect } from 'util';
|
|
14
14
|
import { encodeFunctionData } from 'viem';
|
|
@@ -187,7 +187,7 @@ export class ProverNodePublisher {
|
|
|
187
187
|
end: argsArray[1],
|
|
188
188
|
args: argsArray[2],
|
|
189
189
|
fees: argsArray[3],
|
|
190
|
-
attestations:
|
|
190
|
+
attestations: new CommitteeAttestationsAndSigners(args.attestations.map((a)=>CommitteeAttestation.fromViem(a))).getPackedAttestations(),
|
|
191
191
|
blobInputs: argsArray[4],
|
|
192
192
|
proof: proofHex
|
|
193
193
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-node",
|
|
3
|
-
"version": "3.0.0-nightly.
|
|
3
|
+
"version": "3.0.0-nightly.20250911",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -56,27 +56,27 @@
|
|
|
56
56
|
]
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@aztec/archiver": "3.0.0-nightly.
|
|
60
|
-
"@aztec/bb-prover": "3.0.0-nightly.
|
|
61
|
-
"@aztec/blob-lib": "3.0.0-nightly.
|
|
62
|
-
"@aztec/blob-sink": "3.0.0-nightly.
|
|
63
|
-
"@aztec/constants": "3.0.0-nightly.
|
|
64
|
-
"@aztec/epoch-cache": "3.0.0-nightly.
|
|
65
|
-
"@aztec/ethereum": "3.0.0-nightly.
|
|
66
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
67
|
-
"@aztec/kv-store": "3.0.0-nightly.
|
|
68
|
-
"@aztec/l1-artifacts": "3.0.0-nightly.
|
|
69
|
-
"@aztec/node-keystore": "3.0.0-nightly.
|
|
70
|
-
"@aztec/node-lib": "3.0.0-nightly.
|
|
71
|
-
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.
|
|
72
|
-
"@aztec/p2p": "3.0.0-nightly.
|
|
73
|
-
"@aztec/protocol-contracts": "3.0.0-nightly.
|
|
74
|
-
"@aztec/prover-client": "3.0.0-nightly.
|
|
75
|
-
"@aztec/sequencer-client": "3.0.0-nightly.
|
|
76
|
-
"@aztec/simulator": "3.0.0-nightly.
|
|
77
|
-
"@aztec/stdlib": "3.0.0-nightly.
|
|
78
|
-
"@aztec/telemetry-client": "3.0.0-nightly.
|
|
79
|
-
"@aztec/world-state": "3.0.0-nightly.
|
|
59
|
+
"@aztec/archiver": "3.0.0-nightly.20250911",
|
|
60
|
+
"@aztec/bb-prover": "3.0.0-nightly.20250911",
|
|
61
|
+
"@aztec/blob-lib": "3.0.0-nightly.20250911",
|
|
62
|
+
"@aztec/blob-sink": "3.0.0-nightly.20250911",
|
|
63
|
+
"@aztec/constants": "3.0.0-nightly.20250911",
|
|
64
|
+
"@aztec/epoch-cache": "3.0.0-nightly.20250911",
|
|
65
|
+
"@aztec/ethereum": "3.0.0-nightly.20250911",
|
|
66
|
+
"@aztec/foundation": "3.0.0-nightly.20250911",
|
|
67
|
+
"@aztec/kv-store": "3.0.0-nightly.20250911",
|
|
68
|
+
"@aztec/l1-artifacts": "3.0.0-nightly.20250911",
|
|
69
|
+
"@aztec/node-keystore": "3.0.0-nightly.20250911",
|
|
70
|
+
"@aztec/node-lib": "3.0.0-nightly.20250911",
|
|
71
|
+
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20250911",
|
|
72
|
+
"@aztec/p2p": "3.0.0-nightly.20250911",
|
|
73
|
+
"@aztec/protocol-contracts": "3.0.0-nightly.20250911",
|
|
74
|
+
"@aztec/prover-client": "3.0.0-nightly.20250911",
|
|
75
|
+
"@aztec/sequencer-client": "3.0.0-nightly.20250911",
|
|
76
|
+
"@aztec/simulator": "3.0.0-nightly.20250911",
|
|
77
|
+
"@aztec/stdlib": "3.0.0-nightly.20250911",
|
|
78
|
+
"@aztec/telemetry-client": "3.0.0-nightly.20250911",
|
|
79
|
+
"@aztec/world-state": "3.0.0-nightly.20250911",
|
|
80
80
|
"source-map-support": "^0.5.21",
|
|
81
81
|
"tslib": "^2.4.0",
|
|
82
82
|
"viem": "2.23.7"
|
package/src/config.ts
CHANGED
|
@@ -3,14 +3,7 @@ import type { ACVMConfig, BBConfig } from '@aztec/bb-prover/config';
|
|
|
3
3
|
import { type GenesisStateConfig, genesisStateConfigMappings } from '@aztec/ethereum';
|
|
4
4
|
import { type ConfigMappingsType, getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
|
|
5
5
|
import { type DataStoreConfig, dataConfigMappings } from '@aztec/kv-store/config';
|
|
6
|
-
import {
|
|
7
|
-
type EthAccount,
|
|
8
|
-
type EthAddressHex,
|
|
9
|
-
type EthRemoteSignerAccount,
|
|
10
|
-
type KeyStore,
|
|
11
|
-
type KeyStoreConfig,
|
|
12
|
-
keyStoreConfigMappings,
|
|
13
|
-
} from '@aztec/node-keystore';
|
|
6
|
+
import { type KeyStore, type KeyStoreConfig, ethPrivateKeySchema, keyStoreConfigMappings } from '@aztec/node-keystore';
|
|
14
7
|
import { type SharedNodeConfig, sharedNodeConfigMappings } from '@aztec/node-lib/config';
|
|
15
8
|
import { type P2PConfig, p2pConfigMappings } from '@aztec/p2p/config';
|
|
16
9
|
import {
|
|
@@ -126,18 +119,13 @@ export function getProverNodeAgentConfigFromEnv(): ProverAgentConfig & BBConfig
|
|
|
126
119
|
}
|
|
127
120
|
|
|
128
121
|
function createKeyStoreFromWeb3Signer(config: ProverNodeConfig) {
|
|
129
|
-
// See what we have been given for proverId.
|
|
130
|
-
const proverId = config.proverId ? (config.proverId.toString() as EthAddressHex) : undefined;
|
|
131
|
-
|
|
132
122
|
// If we don't have a valid prover Id then we can't build a valid key store with remote signers
|
|
133
|
-
if (proverId === undefined) {
|
|
123
|
+
if (config.proverId === undefined) {
|
|
134
124
|
return undefined;
|
|
135
125
|
}
|
|
136
126
|
|
|
137
127
|
// Also, we need at least one publisher address.
|
|
138
|
-
const publishers = config.publisherAddresses
|
|
139
|
-
? config.publisherAddresses.map(k => k.toChecksumString() as EthRemoteSignerAccount)
|
|
140
|
-
: [];
|
|
128
|
+
const publishers = config.publisherAddresses ?? [];
|
|
141
129
|
|
|
142
130
|
if (publishers.length === 0) {
|
|
143
131
|
return undefined;
|
|
@@ -147,7 +135,7 @@ function createKeyStoreFromWeb3Signer(config: ProverNodeConfig) {
|
|
|
147
135
|
schemaVersion: 1,
|
|
148
136
|
slasher: undefined,
|
|
149
137
|
prover: {
|
|
150
|
-
id: proverId,
|
|
138
|
+
id: config.proverId,
|
|
151
139
|
publisher: publishers,
|
|
152
140
|
},
|
|
153
141
|
remoteSigner: config.web3SignerUrl,
|
|
@@ -159,7 +147,7 @@ function createKeyStoreFromWeb3Signer(config: ProverNodeConfig) {
|
|
|
159
147
|
function createKeyStoreFromPublisherKeys(config: ProverNodeConfig) {
|
|
160
148
|
// Extract the publisher keys from the provided config.
|
|
161
149
|
const publisherKeys = config.publisherPrivateKeys
|
|
162
|
-
? config.publisherPrivateKeys.map(k => k.getValue()
|
|
150
|
+
? config.publisherPrivateKeys.map(k => ethPrivateKeySchema.parse(k.getValue()))
|
|
163
151
|
: [];
|
|
164
152
|
|
|
165
153
|
// There must be at least 1.
|
|
@@ -167,9 +155,6 @@ function createKeyStoreFromPublisherKeys(config: ProverNodeConfig) {
|
|
|
167
155
|
return undefined;
|
|
168
156
|
}
|
|
169
157
|
|
|
170
|
-
// Now see what we have been given for proverId.
|
|
171
|
-
const proverId = config.proverId ? (config.proverId.toString() as EthAddressHex) : undefined;
|
|
172
|
-
|
|
173
158
|
// If we have a valid proverId then create a prover key store of the form { id, publisher: [publisherKeys] }
|
|
174
159
|
// Otherwise create one of the form ("0x12345678....." as EthAccount).
|
|
175
160
|
|
|
@@ -177,11 +162,11 @@ function createKeyStoreFromPublisherKeys(config: ProverNodeConfig) {
|
|
|
177
162
|
schemaVersion: 1,
|
|
178
163
|
slasher: undefined,
|
|
179
164
|
prover:
|
|
180
|
-
proverId === undefined
|
|
181
|
-
?
|
|
165
|
+
config.proverId === undefined
|
|
166
|
+
? publisherKeys[0]
|
|
182
167
|
: {
|
|
183
|
-
id: proverId,
|
|
184
|
-
publisher: publisherKeys
|
|
168
|
+
id: config.proverId,
|
|
169
|
+
publisher: publisherKeys,
|
|
185
170
|
},
|
|
186
171
|
remoteSigner: undefined,
|
|
187
172
|
validators: undefined,
|
package/src/factory.ts
CHANGED
|
@@ -86,6 +86,8 @@ export async function createProverNode(
|
|
|
86
86
|
);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
+
log.info(`Creating prover with publishers ${proverSigners.signers.map(signer => signer.address.toString()).join()}`);
|
|
90
|
+
|
|
89
91
|
// Only consider user provided config if it is valid
|
|
90
92
|
const proverIdInUserConfig = config.proverId === undefined || config.proverId.isZero() ? undefined : config.proverId;
|
|
91
93
|
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import { type BatchedBlob, FinalBlobAccumulatorPublicInputs } from '@aztec/blob-lib';
|
|
2
2
|
import { AZTEC_MAX_EPOCH_DURATION } from '@aztec/constants';
|
|
3
|
-
import {
|
|
4
|
-
type L1TxUtils,
|
|
5
|
-
type RollupContract,
|
|
6
|
-
RollupContract as RollupContractClass,
|
|
7
|
-
type ViemCommitteeAttestation,
|
|
8
|
-
} from '@aztec/ethereum';
|
|
3
|
+
import type { L1TxUtils, RollupContract, ViemCommitteeAttestation } from '@aztec/ethereum';
|
|
9
4
|
import { makeTuple } from '@aztec/foundation/array';
|
|
10
5
|
import { areArraysEqual } from '@aztec/foundation/collection';
|
|
11
6
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
@@ -16,6 +11,7 @@ import { InterruptibleSleep } from '@aztec/foundation/sleep';
|
|
|
16
11
|
import { Timer } from '@aztec/foundation/timer';
|
|
17
12
|
import { RollupAbi } from '@aztec/l1-artifacts';
|
|
18
13
|
import type { PublisherConfig, TxSenderConfig } from '@aztec/sequencer-client';
|
|
14
|
+
import { CommitteeAttestation, CommitteeAttestationsAndSigners } from '@aztec/stdlib/block';
|
|
19
15
|
import type { Proof } from '@aztec/stdlib/proofs';
|
|
20
16
|
import type { FeeRecipient, RootRollupPublicInputs } from '@aztec/stdlib/rollup';
|
|
21
17
|
import type { L1PublishProofStats } from '@aztec/stdlib/stats';
|
|
@@ -290,7 +286,9 @@ export class ProverNodePublisher {
|
|
|
290
286
|
end: argsArray[1],
|
|
291
287
|
args: argsArray[2],
|
|
292
288
|
fees: argsArray[3],
|
|
293
|
-
attestations:
|
|
289
|
+
attestations: new CommitteeAttestationsAndSigners(
|
|
290
|
+
args.attestations.map(a => CommitteeAttestation.fromViem(a)),
|
|
291
|
+
).getPackedAttestations(),
|
|
294
292
|
blobInputs: argsArray[4],
|
|
295
293
|
proof: proofHex,
|
|
296
294
|
};
|