@aztec/aztec-node 3.0.0-devnet.2 → 3.0.0-devnet.20251212

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.
@@ -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 = 2;
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: bigint, performance: ValidatorsEpochPerformance): Promise<void>;
17
+ updateProvenPerformance(epoch: EpochNumber, performance: ValidatorsEpochPerformance): Promise<void>;
17
18
  getProvenPerformance(who: EthAddress): Promise<{
18
19
  missed: number;
19
20
  total: number;
20
- epoch: bigint;
21
+ epoch: EpochNumber;
21
22
  }[]>;
22
23
  private pushValidatorProvenPerformanceForEpoch;
23
- updateValidators(slot: bigint, statuses: Record<`0x${string}`, ValidatorStatusInSlot | undefined>): Promise<void>;
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=store.d.ts.map
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,KAAK;IAG1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuC;IAIlE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;gBAGvD,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,+BAA+B,EAAE,MAAM,CAAA;KAAE;IAM7E,gBAAgB;IAIhB,kCAAkC;IAI5B,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,0BAA0B;IAQ9E,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;YAKjG,sCAAsC;IA6BvC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE,qBAAqB,GAAG,SAAS,CAAC;YAUhG,0BAA0B;IAY3B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC;IAQtE,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAKzF,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,gBAAgB;CAgBzB"}
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"}
@@ -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: BigInt(reader.readNumber()),
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 = BigInt(reader.readNumber());
126
+ const slot = SlotNumber(reader.readNumber());
126
127
  const status = this.statusFromNumber(reader.readUInt8());
127
128
  history.push({
128
129
  slot,
@@ -28,4 +28,4 @@ export declare class TestAztecNodeService extends AztecNodeService {
28
28
  epochCache: EpochCacheInterface;
29
29
  packageVersion: string;
30
30
  }
31
- //# sourceMappingURL=index.d.ts.map
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.20251212",
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 -b",
24
- "build:dev": "tsc -b --watch",
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.20251212",
70
+ "@aztec/bb-prover": "3.0.0-devnet.20251212",
71
+ "@aztec/blob-sink": "3.0.0-devnet.20251212",
72
+ "@aztec/constants": "3.0.0-devnet.20251212",
73
+ "@aztec/epoch-cache": "3.0.0-devnet.20251212",
74
+ "@aztec/ethereum": "3.0.0-devnet.20251212",
75
+ "@aztec/foundation": "3.0.0-devnet.20251212",
76
+ "@aztec/kv-store": "3.0.0-devnet.20251212",
77
+ "@aztec/l1-artifacts": "3.0.0-devnet.20251212",
78
+ "@aztec/merkle-tree": "3.0.0-devnet.20251212",
79
+ "@aztec/node-keystore": "3.0.0-devnet.20251212",
80
+ "@aztec/node-lib": "3.0.0-devnet.20251212",
81
+ "@aztec/noir-protocol-circuits-types": "3.0.0-devnet.20251212",
82
+ "@aztec/p2p": "3.0.0-devnet.20251212",
83
+ "@aztec/protocol-contracts": "3.0.0-devnet.20251212",
84
+ "@aztec/prover-client": "3.0.0-devnet.20251212",
85
+ "@aztec/sequencer-client": "3.0.0-devnet.20251212",
86
+ "@aztec/simulator": "3.0.0-devnet.20251212",
87
+ "@aztec/slasher": "3.0.0-devnet.20251212",
88
+ "@aztec/stdlib": "3.0.0-devnet.20251212",
89
+ "@aztec/telemetry-client": "3.0.0-devnet.20251212",
90
+ "@aztec/validator-client": "3.0.0-devnet.20251212",
91
+ "@aztec/world-state": "3.0.0-devnet.20251212",
92
92
  "koa": "^2.16.1",
93
93
  "koa-router": "^13.1.1",
94
94
  "tslib": "^2.4.0",
95
- "viem": "npm:@spalladino/viem@2.38.2-eip7594.0"
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",
@@ -1,10 +1,6 @@
1
1
  import { type ArchiverConfig, archiverConfigMappings } from '@aztec/archiver/config';
2
- import {
3
- type GenesisStateConfig,
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
  }