@aztec/validator-client 6.0.0-nightly.20260724 → 6.0.0-nightly.20260726
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/checkpoint_builder.d.ts +12 -4
- package/dest/checkpoint_builder.d.ts.map +1 -1
- package/dest/checkpoint_builder.js +10 -1
- package/dest/proposal_handler.d.ts +2 -2
- package/dest/proposal_handler.d.ts.map +1 -1
- package/dest/proposal_handler.js +48 -2
- package/package.json +19 -19
- package/src/checkpoint_builder.ts +12 -3
- package/src/proposal_handler.ts +47 -3
|
@@ -4,7 +4,7 @@ import { type LoggerBindings } from '@aztec/foundation/log';
|
|
|
4
4
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
5
5
|
import { LightweightCheckpointBuilder } from '@aztec/prover-client/light';
|
|
6
6
|
import { type AvmSimulator, PublicContractsDB, PublicProcessor } from '@aztec/simulator/server';
|
|
7
|
-
import { L2Block } from '@aztec/stdlib/block';
|
|
7
|
+
import { type BlockHash, L2Block } from '@aztec/stdlib/block';
|
|
8
8
|
import { Checkpoint } from '@aztec/stdlib/checkpoint';
|
|
9
9
|
import type { ContractDataSource } from '@aztec/stdlib/contract';
|
|
10
10
|
import type { L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
@@ -75,7 +75,15 @@ export declare class FullNodeCheckpointsBuilder implements ICheckpointsBuilder {
|
|
|
75
75
|
* Opens a checkpoint, either starting fresh or resuming from existing blocks.
|
|
76
76
|
*/
|
|
77
77
|
openCheckpoint(checkpointNumber: CheckpointNumber, constants: CheckpointGlobalVariables, feeAssetPriceModifier: bigint, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], fork: MerkleTreeWriteOperations, existingBlocks?: L2Block[], bindings?: LoggerBindings): Promise<CheckpointBuilder>;
|
|
78
|
-
/**
|
|
79
|
-
|
|
78
|
+
/**
|
|
79
|
+
* Syncs world state to the given block number and returns a fork of it at that block.
|
|
80
|
+
*
|
|
81
|
+
* Syncing first is required: the block source (archiver) can already hold a block while world state
|
|
82
|
+
* still trails it, and forking a not-yet-applied block throws a raw "initialize from future block"
|
|
83
|
+
* tree error. syncImmediate blocks until world state reaches the block, or throws a typed error if it
|
|
84
|
+
* genuinely cannot. When `blockHash` is provided it is verified against the synced block, triggering a
|
|
85
|
+
* resync on mismatch (reorg detection).
|
|
86
|
+
*/
|
|
87
|
+
getFork(blockNumber: BlockNumber, blockHash?: BlockHash): Promise<MerkleTreeWriteOperations>;
|
|
80
88
|
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9idWlsZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2hlY2twb2ludF9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVoRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFlLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRXZGLE9BQU8sRUFBRSxZQUFZLEVBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsS0FBSyxZQUFZLEVBRWpCLGlCQUFpQixFQUNqQixlQUFlLEVBRWhCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFckUsT0FBTyxFQUNMLEtBQUssbUJBQW1CLEVBQ3hCLEtBQUssNEJBQTRCLEVBQ2pDLEtBQUssMEJBQTBCLEVBRS9CLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssbUJBQW1CLEVBRXhCLEtBQUsseUJBQXlCLEVBQzlCLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssc0JBQXNCLEVBQzVCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLEtBQUssYUFBYSxFQUFxQixNQUFNLG9CQUFvQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxLQUFLLHlCQUF5QixFQUFFLGVBQWUs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint_builder.d.ts","sourceRoot":"","sources":["../src/checkpoint_builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEhF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAEvF,OAAO,EAAE,YAAY,EAAW,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EACL,KAAK,YAAY,EAEjB,iBAAiB,EACjB,eAAe,EAEhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"checkpoint_builder.d.ts","sourceRoot":"","sources":["../src/checkpoint_builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEhF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAEvF,OAAO,EAAE,YAAY,EAAW,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EACL,KAAK,YAAY,EAEjB,iBAAiB,EACjB,eAAe,EAEhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,SAAS,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAE/B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAExB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,KAAK,yBAAyB,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAInF,YAAY,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAEpF;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,uBAAuB;IAO7D,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,aAAa;IAdvB,OAAO,CAAC,GAAG,CAAS;IAEpB,2EAA2E;IAC3E,SAAS,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAEzC,YACU,iBAAiB,EAAE,4BAA4B,EAC/C,IAAI,EAAE,yBAAyB,EAC/B,MAAM,EAAE,0BAA0B,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAClC,QAAQ,CAAC,EAAE,cAAc,EACjB,aAAa,GAAE,aAAuC,EAO/D;IAED,eAAe,IAAI,yBAAyB,CAE3C;IAED;;;OAGG;IACG,UAAU,CACd,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,EAC5C,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,mBAAmB,GAAG;QAAE,gBAAgB,CAAC,EAAE,cAAc,CAAA;KAAE,GAChE,OAAO,CAAC,4BAA4B,CAAC,CA6EvC;IAED,+CAA+C;IACzC,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CAU9C;IAED,iDAAiD;IACjD,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,CAEnC;IAED;;;;;OAKG;IACH,SAAS,CAAC,4BAA4B,CACpC,IAAI,EAAE,mBAAmB,GACxB,IAAI,CAAC,qBAAqB,EAAE,aAAa,GAAG,eAAe,GAAG,iBAAiB,CAAC,CAgDlF;IAED,UAAgB,oBAAoB,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,yBAAyB;;;OA8CrG;CACF;AAED,gDAAgD;AAChD,qBAAa,0BAA2B,YAAW,mBAAmB;IAIlE,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,aAAa;IATvB,OAAO,CAAC,GAAG,CAAS;IAEpB,YACU,MAAM,EAAE,0BAA0B,GAAG,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,CAAC,EAC9F,UAAU,EAAE,sBAAsB,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,eAAe,GAAE,eAAsC,EACvD,aAAa,GAAE,aAAuC,EAG/D;IAEM,SAAS,IAAI,0BAA0B,CAE7C;IAEM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,0BAA0B,CAAC,QAE9D;IAED;;OAEG;IACG,eAAe,CACnB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,yBAAyB,EACpC,qBAAqB,EAAE,MAAM,EAC7B,cAAc,EAAE,EAAE,EAAE,EACpB,2BAA2B,EAAE,EAAE,EAAE,EACjC,IAAI,EAAE,yBAAyB,EAC/B,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAkC5B;IAED;;OAEG;IACG,cAAc,CAClB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,yBAAyB,EACpC,qBAAqB,EAAE,MAAM,EAC7B,cAAc,EAAE,EAAE,EAAE,EACpB,2BAA2B,EAAE,EAAE,EAAE,EACjC,IAAI,EAAE,yBAAyB,EAC/B,cAAc,GAAE,OAAO,EAAO,EAC9B,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAgD5B;IAED;;;;;;;;OAQG;IACG,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAGjG;CACF"}
|
|
@@ -253,7 +253,16 @@ import { ForkCheckpoint } from '@aztec/world-state';
|
|
|
253
253
|
const lightweightBuilder = await LightweightCheckpointBuilder.resumeCheckpoint(checkpointNumber, constants, feeAssetPriceModifier, l1ToL2Messages, previousCheckpointOutHashes, fork, existingBlocks, bindings);
|
|
254
254
|
return new CheckpointBuilder(lightweightBuilder, fork, this.config, this.contractDataSource, this.dateProvider, this.telemetryClient, this.avmSimulator, bindings, this.debugLogStore);
|
|
255
255
|
}
|
|
256
|
-
/**
|
|
256
|
+
/**
|
|
257
|
+
* Syncs world state to the given block number and returns a fork of it at that block.
|
|
258
|
+
*
|
|
259
|
+
* Syncing first is required: the block source (archiver) can already hold a block while world state
|
|
260
|
+
* still trails it, and forking a not-yet-applied block throws a raw "initialize from future block"
|
|
261
|
+
* tree error. syncImmediate blocks until world state reaches the block, or throws a typed error if it
|
|
262
|
+
* genuinely cannot. When `blockHash` is provided it is verified against the synced block, triggering a
|
|
263
|
+
* resync on mismatch (reorg detection).
|
|
264
|
+
*/ async getFork(blockNumber, blockHash) {
|
|
265
|
+
await this.worldState.syncImmediate(blockNumber, blockHash);
|
|
257
266
|
return this.worldState.fork(blockNumber);
|
|
258
267
|
}
|
|
259
268
|
}
|
|
@@ -36,7 +36,7 @@ export type BlockProposalValidationFailureResult = {
|
|
|
36
36
|
reexecutionResult?: ReexecuteTransactionsResult;
|
|
37
37
|
};
|
|
38
38
|
export type BlockProposalValidationResult = BlockProposalValidationSuccessResult | BlockProposalValidationFailureResult;
|
|
39
|
-
export type CheckpointProposalValidationFailureReason = 'invalid_signature' | 'invalid_fee_asset_price_modifier' | 'last_block_not_found' | 'block_fetch_error' | 'checkpoint_already_published' | 'no_blocks_for_slot' | 'last_block_archive_mismatch' | 'too_many_blocks_in_checkpoint' | 'checkpoint_header_mismatch' | 'archive_mismatch' | 'out_hash_mismatch' | 'checkpoint_validation_failed';
|
|
39
|
+
export type CheckpointProposalValidationFailureReason = 'invalid_signature' | 'invalid_fee_asset_price_modifier' | 'last_block_not_found' | 'block_fetch_error' | 'world_state_not_synced' | 'checkpoint_already_published' | 'no_blocks_for_slot' | 'last_block_archive_mismatch' | 'too_many_blocks_in_checkpoint' | 'initial_archive_mismatch' | 'checkpoint_header_mismatch' | 'archive_mismatch' | 'out_hash_mismatch' | 'checkpoint_validation_failed';
|
|
40
40
|
export type CheckpointProposalValidationSuccessResult = {
|
|
41
41
|
isValid: true;
|
|
42
42
|
checkpointNumber: CheckpointNumber;
|
|
@@ -162,4 +162,4 @@ export declare class ProposalHandler {
|
|
|
162
162
|
private setProposedCheckpoint;
|
|
163
163
|
}
|
|
164
164
|
export {};
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcG9zYWxfaGFuZGxlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Byb3Bvc2FsX2hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUdyRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQ0wsV0FBVyxFQUNYLGdCQUFnQixFQUVoQixVQUFVLEVBQ1gsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHckQsT0FBTyxFQUFFLFlBQVksRUFBUyxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQWEsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRixPQUFPLEtBQUssRUFBRSw0QkFBNEIsRUFBc0IsTUFBTSwwQkFBMEIsQ0FBQztBQUlqRyxPQUFPLEtBQUssRUFDVixXQUFXLEVBRVgseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN2QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxLQUFLLG1CQUFtQixFQUd6QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBeUIsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RyxPQUFPLEtBQUssRUFBRSxrQkFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposal_handler.d.ts","sourceRoot":"","sources":["../src/proposal_handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EACL,WAAW,EACX,gBAAgB,EAEhB,UAAU,EACX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAS,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAa,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,KAAK,EAAE,4BAA4B,EAAsB,MAAM,0BAA0B,CAAC;AAIjG,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"proposal_handler.d.ts","sourceRoot":"","sources":["../src/proposal_handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EACL,WAAW,EACX,gBAAgB,EAEhB,UAAU,EACX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAS,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAa,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,KAAK,EAAE,4BAA4B,EAAsB,MAAM,0BAA0B,CAAC;AAIjG,OAAO,KAAK,EACV,WAAW,EAEX,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,mBAAmB,EAGzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAyB,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACtG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EAA6B,QAAQ,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAQhF,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,MAAM,EAAsB,MAAM,yBAAyB,CAAC;AAEhG,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,MAAM,oCAAoC,GAC5C,mBAAmB,GACnB,kBAAkB,GAClB,wBAAwB,GACxB,yBAAyB,GACzB,kBAAkB,GAClB,2BAA2B,GAC3B,6BAA6B,GAC7B,mBAAmB,GACnB,gBAAgB,GAChB,YAAY,GACZ,wBAAwB,GACxB,SAAS,GACT,kCAAkC,GAClC,kCAAkC,GAClC,eAAe,CAAC;AAEpB,KAAK,2BAA2B,GAAG;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IACjD,OAAO,EAAE,IAAI,CAAC;IACd,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IACjD,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,oCAAoC,CAAC;IAC7C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,oCAAoC,GAAG,oCAAoC,CAAC;AAExH,MAAM,MAAM,yCAAyC,GACjD,mBAAmB,GACnB,kCAAkC,GAClC,sBAAsB,GACtB,mBAAmB,GACnB,wBAAwB,GACxB,8BAA8B,GAC9B,oBAAoB,GACpB,6BAA6B,GAC7B,+BAA+B,GAC/B,0BAA0B,GAC1B,4BAA4B,GAC5B,kBAAkB,GAClB,mBAAmB,GACnB,8BAA8B,CAAC;AA4BnC,MAAM,MAAM,yCAAyC,GAAG;IACtD,OAAO,EAAE,IAAI,CAAC;IACd,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,yCAAyC,GAAG;IACtD,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,yCAAyC,CAAC;IAClD,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAC1C,yCAAyC,GACzC,yCAAyC,CAAC;AAE9C,MAAM,MAAM,2CAA2C,GAAG,CACxD,QAAQ,EAAE,sBAAsB,EAChC,MAAM,EAAE,yCAAyC,EACjD,YAAY,EAAE,OAAO,KAClB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAY1B,4FAA4F;AAC5F,eAAO,MAAM,0CAA0C,EAAE,oCAAoC,EAO5F,CAAC;AAEF,sGAAsG;AACtG,eAAO,MAAM,+CAA+C,EAAE,MAAM,CAClE,yCAAyC,EACzC,OAAO,CAsBR,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,eAAe;IA6BxB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,OAAO,CAAC;IAChB,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,GAAG;IA1Cb,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B;;qGAEiG;IACjG,OAAO,CAAC,8BAA8B,CAAC,CAGrC;IAEF,4FAA4F;IAC5F,OAAO,CAAC,QAAQ,CAAC,CAAwE;IAEzF,0FAA0F;IAC1F,OAAO,CAAC,wBAAwB,CAAC,CAAiB;IAElD,sGAAsG;IACtG,OAAO,CAAC,SAAS,CAAC,CAAmC;IAErD,OAAO,CAAC,2CAA2C,CAAC,CAA8C;IAElG,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAqE;IAE/G,6GAA6G;IAC7G,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAqE;IAEnH,YACU,kBAAkB,EAAE,0BAA0B,EAC9C,UAAU,EAAE,sBAAsB,EAClC,WAAW,EAAE,aAAa,GAAG,WAAW,EACxC,mBAAmB,EAAE,mBAAmB,EACxC,UAAU,EAAE,WAAW,EACvB,sBAAsB,EAAE,sBAAsB,EAC9C,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,yBAAyB,EACjC,UAAU,EAAE,mBAAmB,EAC/B,kBAAkB,EAAE,4BAA4B,EAChD,OAAO,CAAC,8BAAkB,EAC1B,YAAY,GAAE,YAAiC,EACvD,SAAS,GAAE,eAAsC,EACzC,GAAG,yCAA6C,EAMzD;IAEM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAEpE;IAEM,8CAA8C,CAAC,QAAQ,CAAC,EAAE,2CAA2C,GAAG,IAAI,CAElH;IAED;;;;;;;;;;OAUG;IACI,kCAAkC,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAEjH;IAED,2HAA2H;IACpH,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAE1D;IAED,kGAAkG;IAC3F,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAE9D;IAED,gHAAgH;IACzG,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAE3D;IAED,gHAAgH;IACzG,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAE5D;IAED;;;;;;;OAOG;IACH,QAAQ,CACN,SAAS,EAAE,GAAG,EACd,eAAe,EAAE,OAAO,EACxB,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,uBAAuB,GAAG,2BAA2B,CAAC,EAChF,wBAAwB,CAAC,EAAE,MAAM,MAAM,EAAE,GACxC,eAAe,CA2HjB;IAEK,mBAAmB,CACvB,QAAQ,EAAE,aAAa,EACvB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,OAAO,GACvB,OAAO,CAAC,6BAA6B,CAAC,CAyKxC;YAEa,sBAAsB;YAoBtB,cAAc;YA2Cd,4BAA4B;IAgD1C,OAAO,CAAC,uBAAuB;IA0C/B;;;;OAIG;IACH,OAAO,CAAC,iCAAiC;IA4EzC;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,yBAAyB;IAgB3B,qBAAqB,CACzB,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,EAAE,EAAE,EACT,cAAc,EAAE,EAAE,EAAE,EACpB,2BAA2B,EAAE,EAAE,EAAE,GAChC,OAAO,CAAC,2BAA2B,CAAC,CAmHtC;IAED;;;;OAIG;IACG,wBAAwB,CAC5B,QAAQ,EAAE,sBAAsB,EAChC,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,kCAAkC,CAAC,CAiD7C;IAED;;;OAGG;IACG,0BAA0B,CAC9B,QAAQ,EAAE,sBAAsB,EAChC,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,kCAAkC,CAAC,CAoN7C;IAED,yDAAyD;IACzD,OAAO,CAAC,0BAA0B;IAalC,6FAA6F;IAC7F,SAAS,CAAC,2BAA2B,CAAC,QAAQ,EAAE,sBAAsB,EAAE,YAAY,EAAE,OAAO,GAAG,IAAI,CAInG;IAED,uDAAuD;IACvD,UAAgB,wBAAwB,CAAC,QAAQ,EAAE,sBAAsB,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB/G;YAOa,qBAAqB;CAsBpC"}
|
package/dest/proposal_handler.js
CHANGED
|
@@ -91,6 +91,8 @@ import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
|
91
91
|
checkpoint_already_published: undefined,
|
|
92
92
|
last_block_not_found: 'unvalidated',
|
|
93
93
|
block_fetch_error: 'unvalidated',
|
|
94
|
+
world_state_not_synced: 'unvalidated',
|
|
95
|
+
initial_archive_mismatch: 'unvalidated',
|
|
94
96
|
no_blocks_for_slot: 'unvalidated',
|
|
95
97
|
last_block_archive_mismatch: 'invalid',
|
|
96
98
|
too_many_blocks_in_checkpoint: 'invalid',
|
|
@@ -124,6 +126,9 @@ const MAX_TRACKED_INVALID_PROPOSAL_SLOTS = 1000;
|
|
|
124
126
|
['invalid_signature']: false,
|
|
125
127
|
['last_block_not_found']: false,
|
|
126
128
|
['block_fetch_error']: false,
|
|
129
|
+
['world_state_not_synced']: false,
|
|
130
|
+
// A reorg / divergent local chain, not a proposer offense (mirrors the block path's initial_state_mismatch).
|
|
131
|
+
['initial_archive_mismatch']: false,
|
|
127
132
|
['checkpoint_already_published']: false
|
|
128
133
|
};
|
|
129
134
|
/**
|
|
@@ -1049,9 +1054,50 @@ const MAX_TRACKED_INVALID_PROPOSAL_SLOTS = 1000;
|
|
|
1049
1054
|
pipeliningEnabled: true,
|
|
1050
1055
|
log: this.log
|
|
1051
1056
|
});
|
|
1052
|
-
// Fork world state at the block before the first block
|
|
1057
|
+
// Fork world state at the block before the first block. getFork syncs world state to the parent block
|
|
1058
|
+
// first (see its doc): the block source (archiver) can already hold the block while world state still
|
|
1059
|
+
// trails it by one, and forking a not-yet-applied block throws a raw tree error that would otherwise
|
|
1060
|
+
// escape as an uncaught gossipsub error. We pass the parent's expected block hash so the sync detects a
|
|
1061
|
+
// world-state reorg (undefined for the genesis parent, where no block exists to pin). On failure we map
|
|
1062
|
+
// to a clean validation result rather than letting it escape.
|
|
1053
1063
|
const parentBlockNumber = BlockNumber(firstBlock.number - 1);
|
|
1054
|
-
|
|
1064
|
+
let forkResult;
|
|
1065
|
+
try {
|
|
1066
|
+
const parentBlockHash = (await this.blockSource.getBlockData({
|
|
1067
|
+
number: parentBlockNumber
|
|
1068
|
+
}))?.blockHash;
|
|
1069
|
+
forkResult = await this.checkpointsBuilder.getFork(parentBlockNumber, parentBlockHash);
|
|
1070
|
+
} catch (err) {
|
|
1071
|
+
this.log.warn(`Failed to fork world state at block ${parentBlockNumber} for checkpoint proposal`, {
|
|
1072
|
+
...proposalInfo,
|
|
1073
|
+
parentBlockNumber,
|
|
1074
|
+
err
|
|
1075
|
+
});
|
|
1076
|
+
return {
|
|
1077
|
+
isValid: false,
|
|
1078
|
+
reason: 'world_state_not_synced',
|
|
1079
|
+
checkpointNumber
|
|
1080
|
+
};
|
|
1081
|
+
}
|
|
1082
|
+
const fork = _ts_add_disposable_resource(env, forkResult, true);
|
|
1083
|
+
// Verify the fork's archive root matches the checkpoint's expected starting archive (the archive after
|
|
1084
|
+
// the parent block). A mismatch means world state forked from a different chain than the proposal was
|
|
1085
|
+
// built on (e.g. a reorg), so recomputing the checkpoint against it would be meaningless. This mirrors
|
|
1086
|
+
// the block-proposal re-execution check and fails fast with a clean, non-slashable result instead of a
|
|
1087
|
+
// confusing downstream mismatch.
|
|
1088
|
+
const forkArchiveRoot = new Fr((await fork.getTreeInfo(MerkleTreeId.ARCHIVE)).root);
|
|
1089
|
+
if (!forkArchiveRoot.equals(proposal.checkpointHeader.lastArchiveRoot)) {
|
|
1090
|
+
this.log.warn(`Fork archive root does not match checkpoint proposal's last archive`, {
|
|
1091
|
+
...proposalInfo,
|
|
1092
|
+
forkArchiveRoot: forkArchiveRoot.toString(),
|
|
1093
|
+
expectedLastArchiveRoot: proposal.checkpointHeader.lastArchiveRoot.toString()
|
|
1094
|
+
});
|
|
1095
|
+
return {
|
|
1096
|
+
isValid: false,
|
|
1097
|
+
reason: 'initial_archive_mismatch',
|
|
1098
|
+
checkpointNumber
|
|
1099
|
+
};
|
|
1100
|
+
}
|
|
1055
1101
|
// Create checkpoint builder with all existing blocks
|
|
1056
1102
|
const checkpointBuilder = await this.checkpointsBuilder.openCheckpoint(checkpointNumber, constants, proposal.feeAssetPriceModifier, l1ToL2Messages, previousCheckpointOutHashes, fork, blocks, this.log.getBindings());
|
|
1057
1103
|
// Complete the checkpoint to get computed values
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/validator-client",
|
|
3
|
-
"version": "6.0.0-nightly.
|
|
3
|
+
"version": "6.0.0-nightly.20260726",
|
|
4
4
|
"main": "dest/index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -64,30 +64,30 @@
|
|
|
64
64
|
]
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@aztec/blob-client": "6.0.0-nightly.
|
|
68
|
-
"@aztec/blob-lib": "6.0.0-nightly.
|
|
69
|
-
"@aztec/constants": "6.0.0-nightly.
|
|
70
|
-
"@aztec/epoch-cache": "6.0.0-nightly.
|
|
71
|
-
"@aztec/ethereum": "6.0.0-nightly.
|
|
72
|
-
"@aztec/foundation": "6.0.0-nightly.
|
|
73
|
-
"@aztec/node-keystore": "6.0.0-nightly.
|
|
74
|
-
"@aztec/noir-protocol-circuits-types": "6.0.0-nightly.
|
|
75
|
-
"@aztec/p2p": "6.0.0-nightly.
|
|
76
|
-
"@aztec/protocol-contracts": "6.0.0-nightly.
|
|
77
|
-
"@aztec/prover-client": "6.0.0-nightly.
|
|
78
|
-
"@aztec/simulator": "6.0.0-nightly.
|
|
79
|
-
"@aztec/slasher": "6.0.0-nightly.
|
|
80
|
-
"@aztec/stdlib": "6.0.0-nightly.
|
|
81
|
-
"@aztec/telemetry-client": "6.0.0-nightly.
|
|
82
|
-
"@aztec/validator-ha-signer": "6.0.0-nightly.
|
|
67
|
+
"@aztec/blob-client": "6.0.0-nightly.20260726",
|
|
68
|
+
"@aztec/blob-lib": "6.0.0-nightly.20260726",
|
|
69
|
+
"@aztec/constants": "6.0.0-nightly.20260726",
|
|
70
|
+
"@aztec/epoch-cache": "6.0.0-nightly.20260726",
|
|
71
|
+
"@aztec/ethereum": "6.0.0-nightly.20260726",
|
|
72
|
+
"@aztec/foundation": "6.0.0-nightly.20260726",
|
|
73
|
+
"@aztec/node-keystore": "6.0.0-nightly.20260726",
|
|
74
|
+
"@aztec/noir-protocol-circuits-types": "6.0.0-nightly.20260726",
|
|
75
|
+
"@aztec/p2p": "6.0.0-nightly.20260726",
|
|
76
|
+
"@aztec/protocol-contracts": "6.0.0-nightly.20260726",
|
|
77
|
+
"@aztec/prover-client": "6.0.0-nightly.20260726",
|
|
78
|
+
"@aztec/simulator": "6.0.0-nightly.20260726",
|
|
79
|
+
"@aztec/slasher": "6.0.0-nightly.20260726",
|
|
80
|
+
"@aztec/stdlib": "6.0.0-nightly.20260726",
|
|
81
|
+
"@aztec/telemetry-client": "6.0.0-nightly.20260726",
|
|
82
|
+
"@aztec/validator-ha-signer": "6.0.0-nightly.20260726",
|
|
83
83
|
"koa": "^2.16.1",
|
|
84
84
|
"koa-router": "^13.1.1",
|
|
85
85
|
"tslib": "^2.4.0",
|
|
86
86
|
"viem": "npm:@aztec/viem@2.38.2"
|
|
87
87
|
},
|
|
88
88
|
"devDependencies": {
|
|
89
|
-
"@aztec/archiver": "6.0.0-nightly.
|
|
90
|
-
"@aztec/world-state": "6.0.0-nightly.
|
|
89
|
+
"@aztec/archiver": "6.0.0-nightly.20260726",
|
|
90
|
+
"@aztec/world-state": "6.0.0-nightly.20260726",
|
|
91
91
|
"@electric-sql/pglite": "^0.3.14",
|
|
92
92
|
"@jest/globals": "^30.0.0",
|
|
93
93
|
"@types/jest": "^30.0.0",
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
PublicProcessor,
|
|
16
16
|
createPublicTxSimulatorForBlockBuilding,
|
|
17
17
|
} from '@aztec/simulator/server';
|
|
18
|
-
import { L2Block } from '@aztec/stdlib/block';
|
|
18
|
+
import { type BlockHash, L2Block } from '@aztec/stdlib/block';
|
|
19
19
|
import { Checkpoint } from '@aztec/stdlib/checkpoint';
|
|
20
20
|
import type { ContractDataSource } from '@aztec/stdlib/contract';
|
|
21
21
|
import type { L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
@@ -419,8 +419,17 @@ export class FullNodeCheckpointsBuilder implements ICheckpointsBuilder {
|
|
|
419
419
|
);
|
|
420
420
|
}
|
|
421
421
|
|
|
422
|
-
/**
|
|
423
|
-
|
|
422
|
+
/**
|
|
423
|
+
* Syncs world state to the given block number and returns a fork of it at that block.
|
|
424
|
+
*
|
|
425
|
+
* Syncing first is required: the block source (archiver) can already hold a block while world state
|
|
426
|
+
* still trails it, and forking a not-yet-applied block throws a raw "initialize from future block"
|
|
427
|
+
* tree error. syncImmediate blocks until world state reaches the block, or throws a typed error if it
|
|
428
|
+
* genuinely cannot. When `blockHash` is provided it is verified against the synced block, triggering a
|
|
429
|
+
* resync on mismatch (reorg detection).
|
|
430
|
+
*/
|
|
431
|
+
async getFork(blockNumber: BlockNumber, blockHash?: BlockHash): Promise<MerkleTreeWriteOperations> {
|
|
432
|
+
await this.worldState.syncImmediate(blockNumber, blockHash);
|
|
424
433
|
return this.worldState.fork(blockNumber);
|
|
425
434
|
}
|
|
426
435
|
}
|
package/src/proposal_handler.ts
CHANGED
|
@@ -25,7 +25,12 @@ import type { CheckpointReexecutionTracker, ReexecutionOutcome } from '@aztec/st
|
|
|
25
25
|
import { getPreviousCheckpointOutHashes, validateCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
26
26
|
import { getEpochAtSlot } from '@aztec/stdlib/epoch-helpers';
|
|
27
27
|
import { Gas } from '@aztec/stdlib/gas';
|
|
28
|
-
import type {
|
|
28
|
+
import type {
|
|
29
|
+
ITxProvider,
|
|
30
|
+
MerkleTreeWriteOperations,
|
|
31
|
+
ValidatorClientFullConfig,
|
|
32
|
+
WorldStateSynchronizer,
|
|
33
|
+
} from '@aztec/stdlib/interfaces/server';
|
|
29
34
|
import {
|
|
30
35
|
type L1ToL2MessageSource,
|
|
31
36
|
accumulateCheckpointOutHashes,
|
|
@@ -91,10 +96,12 @@ export type CheckpointProposalValidationFailureReason =
|
|
|
91
96
|
| 'invalid_fee_asset_price_modifier'
|
|
92
97
|
| 'last_block_not_found'
|
|
93
98
|
| 'block_fetch_error'
|
|
99
|
+
| 'world_state_not_synced'
|
|
94
100
|
| 'checkpoint_already_published'
|
|
95
101
|
| 'no_blocks_for_slot'
|
|
96
102
|
| 'last_block_archive_mismatch'
|
|
97
103
|
| 'too_many_blocks_in_checkpoint'
|
|
104
|
+
| 'initial_archive_mismatch'
|
|
98
105
|
| 'checkpoint_header_mismatch'
|
|
99
106
|
| 'archive_mismatch'
|
|
100
107
|
| 'out_hash_mismatch'
|
|
@@ -115,6 +122,8 @@ const CHECKPOINT_VALIDATION_REASON_TO_OUTCOME: Record<
|
|
|
115
122
|
checkpoint_already_published: undefined,
|
|
116
123
|
last_block_not_found: 'unvalidated',
|
|
117
124
|
block_fetch_error: 'unvalidated',
|
|
125
|
+
world_state_not_synced: 'unvalidated',
|
|
126
|
+
initial_archive_mismatch: 'unvalidated',
|
|
118
127
|
no_blocks_for_slot: 'unvalidated',
|
|
119
128
|
last_block_archive_mismatch: 'invalid',
|
|
120
129
|
too_many_blocks_in_checkpoint: 'invalid',
|
|
@@ -186,6 +195,9 @@ export const SLASHABLE_CHECKPOINT_PROPOSAL_VALIDATION_RESULT: Record<
|
|
|
186
195
|
['invalid_signature']: false,
|
|
187
196
|
['last_block_not_found']: false,
|
|
188
197
|
['block_fetch_error']: false,
|
|
198
|
+
['world_state_not_synced']: false,
|
|
199
|
+
// A reorg / divergent local chain, not a proposer offense (mirrors the block path's initial_state_mismatch).
|
|
200
|
+
['initial_archive_mismatch']: false,
|
|
189
201
|
['checkpoint_already_published']: false,
|
|
190
202
|
};
|
|
191
203
|
|
|
@@ -1161,9 +1173,41 @@ export class ProposalHandler {
|
|
|
1161
1173
|
log: this.log,
|
|
1162
1174
|
});
|
|
1163
1175
|
|
|
1164
|
-
// Fork world state at the block before the first block
|
|
1176
|
+
// Fork world state at the block before the first block. getFork syncs world state to the parent block
|
|
1177
|
+
// first (see its doc): the block source (archiver) can already hold the block while world state still
|
|
1178
|
+
// trails it by one, and forking a not-yet-applied block throws a raw tree error that would otherwise
|
|
1179
|
+
// escape as an uncaught gossipsub error. We pass the parent's expected block hash so the sync detects a
|
|
1180
|
+
// world-state reorg (undefined for the genesis parent, where no block exists to pin). On failure we map
|
|
1181
|
+
// to a clean validation result rather than letting it escape.
|
|
1165
1182
|
const parentBlockNumber = BlockNumber(firstBlock.number - 1);
|
|
1166
|
-
|
|
1183
|
+
let forkResult: MerkleTreeWriteOperations;
|
|
1184
|
+
try {
|
|
1185
|
+
const parentBlockHash = (await this.blockSource.getBlockData({ number: parentBlockNumber }))?.blockHash;
|
|
1186
|
+
forkResult = await this.checkpointsBuilder.getFork(parentBlockNumber, parentBlockHash);
|
|
1187
|
+
} catch (err) {
|
|
1188
|
+
this.log.warn(`Failed to fork world state at block ${parentBlockNumber} for checkpoint proposal`, {
|
|
1189
|
+
...proposalInfo,
|
|
1190
|
+
parentBlockNumber,
|
|
1191
|
+
err,
|
|
1192
|
+
});
|
|
1193
|
+
return { isValid: false, reason: 'world_state_not_synced', checkpointNumber };
|
|
1194
|
+
}
|
|
1195
|
+
await using fork = forkResult;
|
|
1196
|
+
|
|
1197
|
+
// Verify the fork's archive root matches the checkpoint's expected starting archive (the archive after
|
|
1198
|
+
// the parent block). A mismatch means world state forked from a different chain than the proposal was
|
|
1199
|
+
// built on (e.g. a reorg), so recomputing the checkpoint against it would be meaningless. This mirrors
|
|
1200
|
+
// the block-proposal re-execution check and fails fast with a clean, non-slashable result instead of a
|
|
1201
|
+
// confusing downstream mismatch.
|
|
1202
|
+
const forkArchiveRoot = new Fr((await fork.getTreeInfo(MerkleTreeId.ARCHIVE)).root);
|
|
1203
|
+
if (!forkArchiveRoot.equals(proposal.checkpointHeader.lastArchiveRoot)) {
|
|
1204
|
+
this.log.warn(`Fork archive root does not match checkpoint proposal's last archive`, {
|
|
1205
|
+
...proposalInfo,
|
|
1206
|
+
forkArchiveRoot: forkArchiveRoot.toString(),
|
|
1207
|
+
expectedLastArchiveRoot: proposal.checkpointHeader.lastArchiveRoot.toString(),
|
|
1208
|
+
});
|
|
1209
|
+
return { isValid: false, reason: 'initial_archive_mismatch', checkpointNumber };
|
|
1210
|
+
}
|
|
1167
1211
|
|
|
1168
1212
|
// Create checkpoint builder with all existing blocks
|
|
1169
1213
|
const checkpointBuilder = await this.checkpointsBuilder.openCheckpoint(
|