@aztec/aztec-node 3.0.0-devnet.2 → 3.0.0-devnet.2-patch.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/aztec-node/config.d.ts +7 -2
- package/dest/aztec-node/config.d.ts.map +1 -1
- package/dest/aztec-node/config.js +12 -1
- package/dest/aztec-node/node_metrics.d.ts +5 -1
- package/dest/aztec-node/node_metrics.d.ts.map +1 -1
- package/dest/aztec-node/node_metrics.js +21 -0
- package/dest/aztec-node/server.d.ts +30 -36
- package/dest/aztec-node/server.d.ts.map +1 -1
- package/dest/aztec-node/server.js +64 -44
- package/dest/bin/index.d.ts +1 -1
- package/dest/index.d.ts +1 -1
- package/dest/sentinel/config.d.ts +1 -1
- package/dest/sentinel/factory.d.ts +1 -1
- package/dest/sentinel/index.d.ts +1 -1
- package/dest/sentinel/sentinel.d.ts +20 -19
- package/dest/sentinel/sentinel.d.ts.map +1 -1
- package/dest/sentinel/sentinel.js +24 -17
- package/dest/sentinel/store.d.ts +6 -5
- package/dest/sentinel/store.d.ts.map +1 -1
- package/dest/sentinel/store.js +3 -2
- package/dest/test/index.d.ts +1 -1
- package/package.json +28 -27
- package/src/aztec-node/config.ts +17 -6
- package/src/aztec-node/node_metrics.ts +28 -0
- package/src/aztec-node/server.ts +118 -93
- package/src/sentinel/sentinel.ts +48 -36
- package/src/sentinel/store.ts +11 -10
package/dest/sentinel/store.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
3
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
3
4
|
import type { ValidatorStatusHistory, ValidatorStatusInSlot, ValidatorsEpochPerformance } from '@aztec/stdlib/validators';
|
|
4
5
|
export declare class SentinelStore {
|
|
5
6
|
private store;
|
|
6
7
|
private config;
|
|
7
|
-
static readonly SCHEMA_VERSION
|
|
8
|
+
static readonly SCHEMA_VERSION: number;
|
|
8
9
|
private readonly historyMap;
|
|
9
10
|
private readonly provenMap;
|
|
10
11
|
constructor(store: AztecAsyncKVStore, config: {
|
|
@@ -13,14 +14,14 @@ export declare class SentinelStore {
|
|
|
13
14
|
});
|
|
14
15
|
getHistoryLength(): number;
|
|
15
16
|
getHistoricProvenPerformanceLength(): number;
|
|
16
|
-
updateProvenPerformance(epoch:
|
|
17
|
+
updateProvenPerformance(epoch: EpochNumber, performance: ValidatorsEpochPerformance): Promise<void>;
|
|
17
18
|
getProvenPerformance(who: EthAddress): Promise<{
|
|
18
19
|
missed: number;
|
|
19
20
|
total: number;
|
|
20
|
-
epoch:
|
|
21
|
+
epoch: EpochNumber;
|
|
21
22
|
}[]>;
|
|
22
23
|
private pushValidatorProvenPerformanceForEpoch;
|
|
23
|
-
updateValidators(slot:
|
|
24
|
+
updateValidators(slot: SlotNumber, statuses: Record<`0x${string}`, ValidatorStatusInSlot | undefined>): Promise<void>;
|
|
24
25
|
private pushValidatorStatusForSlot;
|
|
25
26
|
getHistories(): Promise<Record<`0x${string}`, ValidatorStatusHistory>>;
|
|
26
27
|
getHistory(address: EthAddress): Promise<ValidatorStatusHistory | undefined>;
|
|
@@ -31,4 +32,4 @@ export declare class SentinelStore {
|
|
|
31
32
|
private statusToNumber;
|
|
32
33
|
private statusFromNumber;
|
|
33
34
|
}
|
|
34
|
-
//# sourceMappingURL=
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZW50aW5lbC9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFDVixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLDBCQUEwQixFQUMzQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLHFCQUFhLGFBQWE7SUFXdEIsT0FBTyxDQUFDLEtBQUs7SUFDYixPQUFPLENBQUMsTUFBTTtJQVhoQixnQkFBdUIsY0FBYyxTQUFLO0lBRzFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUF1QztJQUlsRSxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBdUM7SUFFakUsWUFDVSxLQUFLLEVBQUUsaUJBQWlCLEVBQ3hCLE1BQU0sRUFBRTtRQUFFLGFBQWEsRUFBRSxNQUFNLENBQUM7UUFBQywrQkFBK0IsRUFBRSxNQUFNLENBQUE7S0FBRSxFQUluRjtJQUVNLGdCQUFnQixXQUV0QjtJQUVNLGtDQUFrQyxXQUV4QztJQUVZLHVCQUF1QixDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixpQkFNL0Y7SUFFWSxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQztRQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQTtLQUFFLEVBQUUsQ0FBQyxDQUduSDtZQUVhLHNDQUFzQztJQTZCdkMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEtBQUssTUFBTSxFQUFFLEVBQUUscUJBQXFCLEdBQUcsU0FBUyxDQUFDLGlCQVFqSDtZQUVhLDBCQUEwQjtJQVkzQixZQUFZLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLE1BQU0sRUFBRSxFQUFFLHNCQUFzQixDQUFDLENBQUMsQ0FNbEY7SUFFWSxVQUFVLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsc0JBQXNCLEdBQUcsU0FBUyxDQUFDLENBR3hGO0lBRUQsT0FBTyxDQUFDLG9CQUFvQjtJQU01QixPQUFPLENBQUMsc0JBQXNCO0lBYTlCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFNeEIsT0FBTyxDQUFDLGtCQUFrQjtJQVcxQixPQUFPLENBQUMsY0FBYztJQW1CdEIsT0FBTyxDQUFDLGdCQUFnQjtDQWdCekIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/sentinel/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,0BAA0B,CAAC;AAElC,qBAAa,aAAa;IAWtB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IAXhB,gBAAuB,cAAc,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/sentinel/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,0BAA0B,CAAC;AAElC,qBAAa,aAAa;IAWtB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IAXhB,gBAAuB,cAAc,SAAK;IAG1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuC;IAIlE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IAEjE,YACU,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,+BAA+B,EAAE,MAAM,CAAA;KAAE,EAInF;IAEM,gBAAgB,WAEtB;IAEM,kCAAkC,WAExC;IAEY,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,0BAA0B,iBAM/F;IAEY,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,EAAE,CAAC,CAGnH;YAEa,sCAAsC;IA6BvC,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE,qBAAqB,GAAG,SAAS,CAAC,iBAQjH;YAEa,0BAA0B;IAY3B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAMlF;IAEY,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAGxF;IAED,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,gBAAgB;CAgBzB"}
|
package/dest/sentinel/store.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
3
|
import { BufferReader, numToUInt8, numToUInt32BE, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
4
|
export class SentinelStore {
|
|
@@ -105,7 +106,7 @@ export class SentinelStore {
|
|
|
105
106
|
const performance = [];
|
|
106
107
|
while(!reader.isEmpty()){
|
|
107
108
|
performance.push({
|
|
108
|
-
epoch:
|
|
109
|
+
epoch: EpochNumber(reader.readNumber()),
|
|
109
110
|
missed: reader.readNumber(),
|
|
110
111
|
total: reader.readNumber()
|
|
111
112
|
});
|
|
@@ -122,7 +123,7 @@ export class SentinelStore {
|
|
|
122
123
|
const reader = new BufferReader(buffer);
|
|
123
124
|
const history = [];
|
|
124
125
|
while(!reader.isEmpty()){
|
|
125
|
-
const slot =
|
|
126
|
+
const slot = SlotNumber(reader.readNumber());
|
|
126
127
|
const status = this.statusFromNumber(reader.readUInt8());
|
|
127
128
|
history.push({
|
|
128
129
|
slot,
|
package/dest/test/index.d.ts
CHANGED
|
@@ -28,4 +28,4 @@ export declare class TestAztecNodeService extends AztecNodeService {
|
|
|
28
28
|
epochCache: EpochCacheInterface;
|
|
29
29
|
packageVersion: string;
|
|
30
30
|
}
|
|
31
|
-
//# sourceMappingURL=
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JHLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUscUJBQXFCLElBQUksOEJBQThCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRyxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkQsTUFBTSxDQUFDLE9BQU8sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFDakQsTUFBTSxFQUFFLGVBQWUsQ0FBQztJQUN4QixTQUFTLEVBQUUsR0FBRyxDQUFDO0lBQ2YsV0FBVyxFQUFFLGFBQWEsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUMsVUFBVSxFQUFFLFlBQVksQ0FBQztJQUN6QixrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQztJQUN2QyxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBQztJQUN6QyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQztJQUMvQyxTQUFTLEVBQUUsZUFBZSxHQUFHLFNBQVMsQ0FBQztJQUN2QyxhQUFhLEVBQUUsc0JBQXNCLEdBQUcsU0FBUyxDQUFDO0lBQ2xELGtCQUFrQixFQUFFLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFDekMsaUJBQWlCLEVBQUUsaUJBQWlCLEdBQUcsU0FBUyxDQUFDO0lBQ2pELFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQixxQkFBcUIsRUFBRSw4QkFBOEIsQ0FBQztJQUN0RCxVQUFVLEVBQUUsbUJBQW1CLENBQUM7SUFDaEMsY0FBYyxFQUFFLE1BQU0sQ0FBQztDQUN2QyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/aztec-node",
|
|
3
|
-
"version": "3.0.0-devnet.2",
|
|
3
|
+
"version": "3.0.0-devnet.2-patch.1",
|
|
4
4
|
"main": "dest/index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"scripts": {
|
|
21
21
|
"start": "node --no-warnings ./dest/bin",
|
|
22
22
|
"start:debug": "node --no-warnings --inspect ./dest/bin",
|
|
23
|
-
"build": "yarn clean && tsc
|
|
24
|
-
"build:dev": "tsc
|
|
23
|
+
"build": "yarn clean && ../scripts/tsc.sh",
|
|
24
|
+
"build:dev": "../scripts/tsc.sh --watch",
|
|
25
25
|
"clean": "rm -rf ./dest .tsbuildinfo",
|
|
26
26
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
27
27
|
},
|
|
@@ -66,38 +66,39 @@
|
|
|
66
66
|
]
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@aztec/archiver": "3.0.0-devnet.2",
|
|
70
|
-
"@aztec/bb-prover": "3.0.0-devnet.2",
|
|
71
|
-
"@aztec/blob-sink": "3.0.0-devnet.2",
|
|
72
|
-
"@aztec/constants": "3.0.0-devnet.2",
|
|
73
|
-
"@aztec/epoch-cache": "3.0.0-devnet.2",
|
|
74
|
-
"@aztec/ethereum": "3.0.0-devnet.2",
|
|
75
|
-
"@aztec/foundation": "3.0.0-devnet.2",
|
|
76
|
-
"@aztec/kv-store": "3.0.0-devnet.2",
|
|
77
|
-
"@aztec/l1-artifacts": "3.0.0-devnet.2",
|
|
78
|
-
"@aztec/merkle-tree": "3.0.0-devnet.2",
|
|
79
|
-
"@aztec/node-keystore": "3.0.0-devnet.2",
|
|
80
|
-
"@aztec/node-lib": "3.0.0-devnet.2",
|
|
81
|
-
"@aztec/noir-protocol-circuits-types": "3.0.0-devnet.2",
|
|
82
|
-
"@aztec/p2p": "3.0.0-devnet.2",
|
|
83
|
-
"@aztec/protocol-contracts": "3.0.0-devnet.2",
|
|
84
|
-
"@aztec/prover-client": "3.0.0-devnet.2",
|
|
85
|
-
"@aztec/sequencer-client": "3.0.0-devnet.2",
|
|
86
|
-
"@aztec/simulator": "3.0.0-devnet.2",
|
|
87
|
-
"@aztec/slasher": "3.0.0-devnet.2",
|
|
88
|
-
"@aztec/stdlib": "3.0.0-devnet.2",
|
|
89
|
-
"@aztec/telemetry-client": "3.0.0-devnet.2",
|
|
90
|
-
"@aztec/validator-client": "3.0.0-devnet.2",
|
|
91
|
-
"@aztec/world-state": "3.0.0-devnet.2",
|
|
69
|
+
"@aztec/archiver": "3.0.0-devnet.2-patch.1",
|
|
70
|
+
"@aztec/bb-prover": "3.0.0-devnet.2-patch.1",
|
|
71
|
+
"@aztec/blob-sink": "3.0.0-devnet.2-patch.1",
|
|
72
|
+
"@aztec/constants": "3.0.0-devnet.2-patch.1",
|
|
73
|
+
"@aztec/epoch-cache": "3.0.0-devnet.2-patch.1",
|
|
74
|
+
"@aztec/ethereum": "3.0.0-devnet.2-patch.1",
|
|
75
|
+
"@aztec/foundation": "3.0.0-devnet.2-patch.1",
|
|
76
|
+
"@aztec/kv-store": "3.0.0-devnet.2-patch.1",
|
|
77
|
+
"@aztec/l1-artifacts": "3.0.0-devnet.2-patch.1",
|
|
78
|
+
"@aztec/merkle-tree": "3.0.0-devnet.2-patch.1",
|
|
79
|
+
"@aztec/node-keystore": "3.0.0-devnet.2-patch.1",
|
|
80
|
+
"@aztec/node-lib": "3.0.0-devnet.2-patch.1",
|
|
81
|
+
"@aztec/noir-protocol-circuits-types": "3.0.0-devnet.2-patch.1",
|
|
82
|
+
"@aztec/p2p": "3.0.0-devnet.2-patch.1",
|
|
83
|
+
"@aztec/protocol-contracts": "3.0.0-devnet.2-patch.1",
|
|
84
|
+
"@aztec/prover-client": "3.0.0-devnet.2-patch.1",
|
|
85
|
+
"@aztec/sequencer-client": "3.0.0-devnet.2-patch.1",
|
|
86
|
+
"@aztec/simulator": "3.0.0-devnet.2-patch.1",
|
|
87
|
+
"@aztec/slasher": "3.0.0-devnet.2-patch.1",
|
|
88
|
+
"@aztec/stdlib": "3.0.0-devnet.2-patch.1",
|
|
89
|
+
"@aztec/telemetry-client": "3.0.0-devnet.2-patch.1",
|
|
90
|
+
"@aztec/validator-client": "3.0.0-devnet.2-patch.1",
|
|
91
|
+
"@aztec/world-state": "3.0.0-devnet.2-patch.1",
|
|
92
92
|
"koa": "^2.16.1",
|
|
93
93
|
"koa-router": "^13.1.1",
|
|
94
94
|
"tslib": "^2.4.0",
|
|
95
|
-
"viem": "npm:@
|
|
95
|
+
"viem": "npm:@aztec/viem@2.38.2"
|
|
96
96
|
},
|
|
97
97
|
"devDependencies": {
|
|
98
98
|
"@jest/globals": "^30.0.0",
|
|
99
99
|
"@types/jest": "^30.0.0",
|
|
100
100
|
"@types/node": "^22.15.17",
|
|
101
|
+
"@typescript/native-preview": "7.0.0-dev.20251126.1",
|
|
101
102
|
"jest": "^30.0.0",
|
|
102
103
|
"jest-mock-extended": "^4.0.0",
|
|
103
104
|
"ts-node": "^10.9.1",
|
package/src/aztec-node/config.ts
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { type ArchiverConfig, archiverConfigMappings } from '@aztec/archiver/config';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
type L1ContractAddresses,
|
|
5
|
-
genesisStateConfigMappings,
|
|
6
|
-
l1ContractAddressesMapping,
|
|
7
|
-
} from '@aztec/ethereum';
|
|
2
|
+
import { type GenesisStateConfig, genesisStateConfigMappings } from '@aztec/ethereum/config';
|
|
3
|
+
import { type L1ContractAddresses, l1ContractAddressesMapping } from '@aztec/ethereum/l1-contract-addresses';
|
|
8
4
|
import { type ConfigMappingsType, booleanConfigHelper, getConfigFromMappings } from '@aztec/foundation/config';
|
|
9
5
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
10
6
|
import { type DataStoreConfig, dataConfigMappings } from '@aztec/kv-store/config';
|
|
@@ -55,6 +51,11 @@ export type AztecNodeConfig = ArchiverConfig &
|
|
|
55
51
|
l1Contracts: L1ContractAddresses;
|
|
56
52
|
/** Whether the validator is disabled for this node */
|
|
57
53
|
disableValidator: boolean;
|
|
54
|
+
/** Whether to skip waiting for the archiver to be fully synced before starting other services */
|
|
55
|
+
skipArchiverInitialSync: boolean;
|
|
56
|
+
|
|
57
|
+
/** A flag to force verification of tx Chonk proofs. Only used for testnet */
|
|
58
|
+
debugForceTxProofVerification: boolean;
|
|
58
59
|
};
|
|
59
60
|
|
|
60
61
|
export const aztecNodeConfigMappings: ConfigMappingsType<AztecNodeConfig> = {
|
|
@@ -80,6 +81,16 @@ export const aztecNodeConfigMappings: ConfigMappingsType<AztecNodeConfig> = {
|
|
|
80
81
|
description: 'Whether the validator is disabled for this node.',
|
|
81
82
|
...booleanConfigHelper(),
|
|
82
83
|
},
|
|
84
|
+
skipArchiverInitialSync: {
|
|
85
|
+
env: 'SKIP_ARCHIVER_INITIAL_SYNC',
|
|
86
|
+
description: 'Whether to skip waiting for the archiver to be fully synced before starting other services.',
|
|
87
|
+
...booleanConfigHelper(false),
|
|
88
|
+
},
|
|
89
|
+
debugForceTxProofVerification: {
|
|
90
|
+
env: 'DEBUG_FORCE_TX_PROOF_VERIFICATION',
|
|
91
|
+
description: 'Whether to skip waiting for the archiver to be fully synced before starting other services.',
|
|
92
|
+
...booleanConfigHelper(false),
|
|
93
|
+
},
|
|
83
94
|
};
|
|
84
95
|
|
|
85
96
|
/**
|
|
@@ -11,6 +11,9 @@ export class NodeMetrics {
|
|
|
11
11
|
private receiveTxCount: UpDownCounter;
|
|
12
12
|
private receiveTxDuration: Histogram;
|
|
13
13
|
|
|
14
|
+
private snapshotErrorCount: UpDownCounter;
|
|
15
|
+
private snapshotDuration: Histogram;
|
|
16
|
+
|
|
14
17
|
constructor(client: TelemetryClient, name = 'AztecNode') {
|
|
15
18
|
const meter = client.getMeter(name);
|
|
16
19
|
this.receiveTxCount = meter.createUpDownCounter(Metrics.NODE_RECEIVE_TX_COUNT, {});
|
|
@@ -19,6 +22,19 @@ export class NodeMetrics {
|
|
|
19
22
|
unit: 'ms',
|
|
20
23
|
valueType: ValueType.INT,
|
|
21
24
|
});
|
|
25
|
+
|
|
26
|
+
this.snapshotDuration = meter.createHistogram(Metrics.NODE_SNAPSHOT_DURATION, {
|
|
27
|
+
description: 'How long taking a snapshot takes',
|
|
28
|
+
unit: 'ms',
|
|
29
|
+
valueType: ValueType.INT,
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
this.snapshotErrorCount = meter.createUpDownCounter(Metrics.NODE_SNAPSHOT_ERROR_COUNT, {
|
|
33
|
+
description: 'How many snapshot errors have happened',
|
|
34
|
+
valueType: ValueType.INT,
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
this.snapshotErrorCount.add(0);
|
|
22
38
|
}
|
|
23
39
|
|
|
24
40
|
receivedTx(durationMs: number, isAccepted: boolean) {
|
|
@@ -29,4 +45,16 @@ export class NodeMetrics {
|
|
|
29
45
|
[Attributes.OK]: isAccepted,
|
|
30
46
|
});
|
|
31
47
|
}
|
|
48
|
+
|
|
49
|
+
recordSnapshot(durationMs: number) {
|
|
50
|
+
if (isNaN(durationMs)) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
this.snapshotDuration.record(Math.ceil(durationMs));
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
recordSnapshotError() {
|
|
58
|
+
this.snapshotErrorCount.add(1);
|
|
59
|
+
}
|
|
32
60
|
}
|