@lodestar/beacon-node 1.34.0-dev.27285cdee9 → 1.34.0-dev.2ac5250665
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/lib/api/impl/beacon/blocks/index.js +35 -34
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/pool/index.js +3 -3
- package/lib/api/impl/beacon/pool/index.js.map +1 -1
- package/lib/api/impl/beacon/state/index.js +15 -16
- package/lib/api/impl/beacon/state/index.js.map +1 -1
- package/lib/api/impl/debug/index.js +2 -2
- package/lib/api/impl/debug/index.js.map +1 -1
- package/lib/api/impl/validator/index.js +37 -26
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/api/impl/validator/utils.d.ts +3 -3
- package/lib/api/impl/validator/utils.js +2 -2
- package/lib/api/impl/validator/utils.js.map +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.js +19 -20
- package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
- package/lib/chain/blocks/utils/zebraBanner.d.ts +2 -0
- package/lib/chain/blocks/utils/zebraBanner.js +45 -0
- package/lib/chain/blocks/utils/zebraBanner.js.map +1 -0
- package/lib/chain/blocks/verifyBlock.js +18 -5
- package/lib/chain/blocks/verifyBlock.js.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.js +7 -34
- package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
- package/lib/chain/chain.d.ts +8 -80
- package/lib/chain/chain.js +51 -76
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/interface.d.ts +3 -10
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js +13 -3
- package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
- package/lib/chain/prepareNextSlot.js +2 -1
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +30 -18
- package/lib/chain/produceBlock/produceBlockBody.js +27 -32
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts +6 -4
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js +21 -23
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
- package/lib/chain/validation/dataColumnSidecar.d.ts +2 -1
- package/lib/chain/validation/dataColumnSidecar.js +17 -8
- package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
- package/lib/db/beacon.d.ts +3 -3
- package/lib/db/beacon.js +3 -3
- package/lib/db/beacon.js.map +1 -1
- package/lib/db/interface.d.ts +3 -3
- package/lib/db/repositories/dataColumnSidecar.d.ts +26 -0
- package/lib/db/repositories/dataColumnSidecar.js +39 -0
- package/lib/db/repositories/dataColumnSidecar.js.map +1 -0
- package/lib/db/repositories/dataColumnSidecarArchive.d.ts +24 -0
- package/lib/db/repositories/dataColumnSidecarArchive.js +39 -0
- package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -0
- package/lib/db/repositories/index.d.ts +2 -2
- package/lib/db/repositories/index.js +2 -2
- package/lib/db/repositories/index.js.map +1 -1
- package/lib/execution/builder/http.d.ts +20 -4
- package/lib/execution/builder/http.js +30 -11
- package/lib/execution/builder/http.js.map +1 -1
- package/lib/execution/builder/interface.d.ts +5 -4
- package/lib/execution/engine/http.d.ts +2 -2
- package/lib/execution/engine/http.js +10 -5
- package/lib/execution/engine/http.js.map +1 -1
- package/lib/execution/engine/interface.d.ts +2 -11
- package/lib/execution/engine/mock.d.ts +4 -1
- package/lib/execution/engine/mock.js +54 -16
- package/lib/execution/engine/mock.js.map +1 -1
- package/lib/execution/engine/types.d.ts +5 -5
- package/lib/execution/engine/types.js +2 -2
- package/lib/execution/engine/types.js.map +1 -1
- package/lib/metrics/metrics/beacon.d.ts +2 -5
- package/lib/metrics/metrics/beacon.js +9 -14
- package/lib/metrics/metrics/beacon.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +5 -0
- package/lib/metrics/metrics/lodestar.js +14 -0
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/network/core/networkCore.js +11 -6
- package/lib/network/core/networkCore.js.map +1 -1
- package/lib/network/gossip/topic.d.ts +579 -51
- package/lib/network/interface.d.ts +3 -3
- package/lib/network/network.d.ts +3 -3
- package/lib/network/network.js +1 -1
- package/lib/network/network.js.map +1 -1
- package/lib/network/options.js +2 -2
- package/lib/network/peers/discover.js +1 -1
- package/lib/network/peers/discover.js.map +1 -1
- package/lib/network/peers/peerManager.js +5 -5
- package/lib/network/peers/peerManager.js.map +1 -1
- package/lib/network/peers/utils/prioritizePeers.d.ts +2 -1
- package/lib/network/peers/utils/prioritizePeers.js +5 -5
- package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
- package/lib/network/processor/gossipHandlers.js +9 -6
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +6 -3
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +45 -17
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +7 -2
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +7 -7
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js +3 -3
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts +2 -2
- package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts +2 -2
- package/lib/network/reqresp/handlers/blobSidecarsByRange.js +2 -3
- package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts +3 -3
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +27 -46
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts +2 -2
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +7 -21
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/index.js +4 -3
- package/lib/network/reqresp/handlers/index.js.map +1 -1
- package/lib/network/reqresp/rateLimit.js +11 -5
- package/lib/network/reqresp/rateLimit.js.map +1 -1
- package/lib/network/reqresp/types.d.ts +3 -3
- package/lib/network/reqresp/types.js +3 -3
- package/lib/network/reqresp/types.js.map +1 -1
- package/lib/sync/range/chain.d.ts +1 -1
- package/lib/sync/range/chain.js +2 -2
- package/lib/sync/range/chain.js.map +1 -1
- package/lib/sync/range/range.js +2 -2
- package/lib/sync/range/range.js.map +1 -1
- package/lib/sync/range/utils/peerBalancer.d.ts +3 -1
- package/lib/sync/range/utils/peerBalancer.js +20 -1
- package/lib/sync/range/utils/peerBalancer.js.map +1 -1
- package/lib/sync/unknownBlock.d.ts +46 -4
- package/lib/sync/unknownBlock.js +305 -201
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/util/blobs.d.ts +3 -13
- package/lib/util/blobs.js +9 -47
- package/lib/util/blobs.js.map +1 -1
- package/lib/util/dataColumns.d.ts +7 -5
- package/lib/util/dataColumns.js +36 -27
- package/lib/util/dataColumns.js.map +1 -1
- package/lib/util/types.d.ts +7 -0
- package/lib/util/types.js +3 -0
- package/lib/util/types.js.map +1 -1
- package/package.json +16 -16
- package/lib/db/repositories/dataColumnSidecars.d.ts +0 -47
- package/lib/db/repositories/dataColumnSidecars.js +0 -40
- package/lib/db/repositories/dataColumnSidecars.js.map +0 -1
- package/lib/db/repositories/dataColumnSidecarsArchive.d.ts +0 -15
- package/lib/db/repositories/dataColumnSidecarsArchive.js +0 -23
- package/lib/db/repositories/dataColumnSidecarsArchive.js.map +0 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ChainForkConfig } from "@lodestar/config";
|
|
2
|
+
import { Db, PrefixedRepository } from "@lodestar/db";
|
|
3
|
+
import { ColumnIndex, Slot, fulu } from "@lodestar/types";
|
|
4
|
+
/**
|
|
5
|
+
* DataColumnSidecarsRepository
|
|
6
|
+
* Used to store `finalized` DataColumnSidecars
|
|
7
|
+
*
|
|
8
|
+
* Indexed data by `slot` + `columnIndex`
|
|
9
|
+
*/
|
|
10
|
+
export declare class DataColumnSidecarArchiveRepository extends PrefixedRepository<Slot, ColumnIndex, fulu.DataColumnSidecar> {
|
|
11
|
+
constructor(config: ChainForkConfig, db: Db);
|
|
12
|
+
/**
|
|
13
|
+
* Id is hashTreeRoot of unsigned BeaconBlock
|
|
14
|
+
*/
|
|
15
|
+
getId(value: fulu.DataColumnSidecar): ColumnIndex;
|
|
16
|
+
encodeKeyRaw(prefix: Slot, id: ColumnIndex): Uint8Array;
|
|
17
|
+
decodeKeyRaw(raw: Uint8Array): {
|
|
18
|
+
prefix: Slot;
|
|
19
|
+
id: ColumnIndex;
|
|
20
|
+
};
|
|
21
|
+
getMaxKeyRaw(prefix: Slot): Uint8Array;
|
|
22
|
+
getMinKeyRaw(prefix: Slot): Uint8Array;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=dataColumnSidecarArchive.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { PrefixedRepository } from "@lodestar/db";
|
|
2
|
+
import { NUMBER_OF_COLUMNS } from "@lodestar/params";
|
|
3
|
+
import { ssz } from "@lodestar/types";
|
|
4
|
+
import { bytesToInt, intToBytes } from "@lodestar/utils";
|
|
5
|
+
import { Bucket, getBucketNameByValue } from "../buckets.js";
|
|
6
|
+
/**
|
|
7
|
+
* DataColumnSidecarsRepository
|
|
8
|
+
* Used to store `finalized` DataColumnSidecars
|
|
9
|
+
*
|
|
10
|
+
* Indexed data by `slot` + `columnIndex`
|
|
11
|
+
*/
|
|
12
|
+
export class DataColumnSidecarArchiveRepository extends PrefixedRepository {
|
|
13
|
+
constructor(config, db) {
|
|
14
|
+
const bucket = Bucket.allForks_dataColumnSidecars;
|
|
15
|
+
super(config, db, bucket, ssz.fulu.DataColumnSidecar, getBucketNameByValue(bucket));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Id is hashTreeRoot of unsigned BeaconBlock
|
|
19
|
+
*/
|
|
20
|
+
getId(value) {
|
|
21
|
+
return value.index;
|
|
22
|
+
}
|
|
23
|
+
encodeKeyRaw(prefix, id) {
|
|
24
|
+
return Buffer.concat([intToBytes(prefix, 4), intToBytes(id, 4)]);
|
|
25
|
+
}
|
|
26
|
+
decodeKeyRaw(raw) {
|
|
27
|
+
return {
|
|
28
|
+
prefix: bytesToInt(raw.slice(0, 4)),
|
|
29
|
+
id: bytesToInt(raw.slice(4, 8)),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
getMaxKeyRaw(prefix) {
|
|
33
|
+
return Buffer.concat([intToBytes(prefix, 4), intToBytes(NUMBER_OF_COLUMNS, 4)]);
|
|
34
|
+
}
|
|
35
|
+
getMinKeyRaw(prefix) {
|
|
36
|
+
return Buffer.concat([intToBytes(prefix, 4), intToBytes(0, 4)]);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=dataColumnSidecarArchive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataColumnSidecarArchive.js","sourceRoot":"","sources":["../../../src/db/repositories/dataColumnSidecarArchive.ts"],"names":[],"mappings":"AACA,OAAO,EAAK,kBAAkB,EAAC,MAAM,cAAc,CAAC;AACpD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAA0B,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,OAAO,kCAAmC,SAAQ,kBAA6D;IACnH,YAAY,MAAuB,EAAE,EAAM;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,2BAA2B,CAAC;QAClD,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAA6B;QACjC,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,YAAY,CAAC,MAAY,EAAE,EAAe;QACxC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,GAAe;QAC1B,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAS;YAC3C,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAgB;SAC/C,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAY;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,YAAY,CAAC,MAAY;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { BlobSidecarsRepository } from "./blobSidecars.js";
|
|
2
2
|
export { BlobSidecarsArchiveRepository } from "./blobSidecarsArchive.js";
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
3
|
+
export { DataColumnSidecarRepository } from "./dataColumnSidecar.js";
|
|
4
|
+
export { DataColumnSidecarArchiveRepository } from "./dataColumnSidecarArchive.js";
|
|
5
5
|
export { BlockRepository } from "./block.js";
|
|
6
6
|
export { BlockArchiveRepository } from "./blockArchive.js";
|
|
7
7
|
export type { BlockArchiveBatchPutBinaryItem, BlockFilterOptions } from "./blockArchive.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { BlobSidecarsRepository } from "./blobSidecars.js";
|
|
2
2
|
export { BlobSidecarsArchiveRepository } from "./blobSidecarsArchive.js";
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
3
|
+
export { DataColumnSidecarRepository } from "./dataColumnSidecar.js";
|
|
4
|
+
export { DataColumnSidecarArchiveRepository } from "./dataColumnSidecarArchive.js";
|
|
5
5
|
export { BlockRepository } from "./block.js";
|
|
6
6
|
export { BlockArchiveRepository } from "./blockArchive.js";
|
|
7
7
|
export { StateArchiveRepository } from "./stateArchive.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,6BAA6B,EAAC,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,6BAA6B,EAAC,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAC,2BAA2B,EAAC,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAC,kCAAkC,EAAC,MAAM,+BAA+B,CAAC;AAEjF,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAC,0BAA0B,EAAC,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAC,0BAA0B,EAAC,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAC,uBAAuB,EAAC,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAC,+BAA+B,EAAC,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAC,0BAA0B,EAAC,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAC,uBAAuB,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,8BAA8B,EAAC,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,8BAA8B,EAAC,MAAM,2BAA2B,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { ApiClient as BuilderApi } from "@lodestar/api/builder";
|
|
|
2
2
|
import { ChainForkConfig } from "@lodestar/config";
|
|
3
3
|
import { Logger } from "@lodestar/logger";
|
|
4
4
|
import { ForkPostBellatrix } from "@lodestar/params";
|
|
5
|
-
import { BLSPubkey, Epoch, ExecutionPayloadHeader, Root,
|
|
5
|
+
import { BLSPubkey, Epoch, ExecutionPayloadHeader, Root, SignedBlindedBeaconBlock, SignedBlockContents, Slot, Wei, WithOptionalBytes, bellatrix, deneb, electra } from "@lodestar/types";
|
|
6
6
|
import { Metrics } from "../../metrics/metrics.js";
|
|
7
7
|
import { ValidatorRegistration, ValidatorRegistrationCache } from "./cache.js";
|
|
8
8
|
import { IExecutionBuilder } from "./interface.js";
|
|
@@ -16,6 +16,22 @@ export type ExecutionBuilderHttpOpts = {
|
|
|
16
16
|
userAgent?: string;
|
|
17
17
|
};
|
|
18
18
|
export declare const defaultExecutionBuilderHttpOpts: ExecutionBuilderHttpOpts;
|
|
19
|
+
export declare enum BuilderStatus {
|
|
20
|
+
/**
|
|
21
|
+
* Builder is enabled and operational
|
|
22
|
+
*/
|
|
23
|
+
enabled = "enabled",
|
|
24
|
+
/**
|
|
25
|
+
* Builder is disabled due to failed status check
|
|
26
|
+
*/
|
|
27
|
+
disabled = "disabled",
|
|
28
|
+
/**
|
|
29
|
+
* Circuit breaker condition that is triggered when the node determines the chain is unhealthy.
|
|
30
|
+
* When the circuit breaker is fired, proposers **MUST** not utilize the external builder
|
|
31
|
+
* network and exclusively build locally.
|
|
32
|
+
*/
|
|
33
|
+
circuitBreaker = "circuit_breaker"
|
|
34
|
+
}
|
|
19
35
|
/**
|
|
20
36
|
* Expected error if builder does not provide a bid. Most of the time, this
|
|
21
37
|
* is due to `min-bid` setting on the mev-boost side but in rare cases could
|
|
@@ -29,7 +45,7 @@ export declare class ExecutionBuilderHttp implements IExecutionBuilder {
|
|
|
29
45
|
readonly config: ChainForkConfig;
|
|
30
46
|
readonly registrations: ValidatorRegistrationCache;
|
|
31
47
|
readonly issueLocalFcUWithFeeRecipient?: string;
|
|
32
|
-
status:
|
|
48
|
+
status: BuilderStatus;
|
|
33
49
|
faultInspectionWindow: number;
|
|
34
50
|
allowedFaults: number;
|
|
35
51
|
/**
|
|
@@ -39,7 +55,7 @@ export declare class ExecutionBuilderHttp implements IExecutionBuilder {
|
|
|
39
55
|
*/
|
|
40
56
|
private sszSupported;
|
|
41
57
|
constructor(opts: ExecutionBuilderHttpOpts, config: ChainForkConfig, metrics?: Metrics | null, logger?: Logger);
|
|
42
|
-
updateStatus(
|
|
58
|
+
updateStatus(status: BuilderStatus): void;
|
|
43
59
|
checkStatus(): Promise<void>;
|
|
44
60
|
registerValidator(epoch: Epoch, registrations: bellatrix.SignedValidatorRegistrationV1[]): Promise<void>;
|
|
45
61
|
getValidatorRegistration(pubkey: BLSPubkey): ValidatorRegistration | undefined;
|
|
@@ -49,7 +65,7 @@ export declare class ExecutionBuilderHttp implements IExecutionBuilder {
|
|
|
49
65
|
blobKzgCommitments?: deneb.BlobKzgCommitments;
|
|
50
66
|
executionRequests?: electra.ExecutionRequests;
|
|
51
67
|
}>;
|
|
52
|
-
submitBlindedBlock(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<
|
|
68
|
+
submitBlindedBlock(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<SignedBlockContents>;
|
|
53
69
|
submitBlindedBlockNoResponse(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<void>;
|
|
54
70
|
}
|
|
55
71
|
//# sourceMappingURL=http.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WireFormat } from "@lodestar/api";
|
|
2
2
|
import { getClient } from "@lodestar/api/builder";
|
|
3
3
|
import { SLOTS_PER_EPOCH } from "@lodestar/params";
|
|
4
|
-
import { parseExecutionPayloadAndBlobsBundle,
|
|
4
|
+
import { parseExecutionPayloadAndBlobsBundle, reconstructSignedBlockContents } from "@lodestar/state-transition";
|
|
5
5
|
import { toPrintableUrl } from "@lodestar/utils";
|
|
6
6
|
import { ValidatorRegistrationCache } from "./cache.js";
|
|
7
7
|
export const defaultExecutionBuilderHttpOpts = {
|
|
@@ -9,6 +9,23 @@ export const defaultExecutionBuilderHttpOpts = {
|
|
|
9
9
|
url: "http://localhost:8661",
|
|
10
10
|
timeout: 12000,
|
|
11
11
|
};
|
|
12
|
+
export var BuilderStatus;
|
|
13
|
+
(function (BuilderStatus) {
|
|
14
|
+
/**
|
|
15
|
+
* Builder is enabled and operational
|
|
16
|
+
*/
|
|
17
|
+
BuilderStatus["enabled"] = "enabled";
|
|
18
|
+
/**
|
|
19
|
+
* Builder is disabled due to failed status check
|
|
20
|
+
*/
|
|
21
|
+
BuilderStatus["disabled"] = "disabled";
|
|
22
|
+
/**
|
|
23
|
+
* Circuit breaker condition that is triggered when the node determines the chain is unhealthy.
|
|
24
|
+
* When the circuit breaker is fired, proposers **MUST** not utilize the external builder
|
|
25
|
+
* network and exclusively build locally.
|
|
26
|
+
*/
|
|
27
|
+
BuilderStatus["circuitBreaker"] = "circuit_breaker";
|
|
28
|
+
})(BuilderStatus || (BuilderStatus = {}));
|
|
12
29
|
/**
|
|
13
30
|
* Expected error if builder does not provide a bid. Most of the time, this
|
|
14
31
|
* is due to `min-bid` setting on the mev-boost side but in rare cases could
|
|
@@ -32,7 +49,7 @@ const BUILDER_PROPOSAL_DELAY_TOLERANCE = 1000 + EVENT_LOOP_LAG_BUFFER;
|
|
|
32
49
|
export class ExecutionBuilderHttp {
|
|
33
50
|
constructor(opts, config, metrics = null, logger) {
|
|
34
51
|
// Builder needs to be explicity enabled using updateStatus
|
|
35
|
-
this.status =
|
|
52
|
+
this.status = BuilderStatus.disabled;
|
|
36
53
|
/**
|
|
37
54
|
* Determine if SSZ is supported by requesting an SSZ encoded response in the `getHeader` request.
|
|
38
55
|
* The builder responding with a SSZ serialized `SignedBuilderBid` indicates support to handle the
|
|
@@ -57,24 +74,26 @@ export class ExecutionBuilderHttp {
|
|
|
57
74
|
* Beacon clients select randomized values from the following ranges when initializing
|
|
58
75
|
* the circuit breaker (so at boot time and once for each unique boot).
|
|
59
76
|
*
|
|
60
|
-
* ALLOWED_FAULTS: between 1 and SLOTS_PER_EPOCH //
|
|
77
|
+
* ALLOWED_FAULTS: between 1 and SLOTS_PER_EPOCH // 4
|
|
61
78
|
* FAULT_INSPECTION_WINDOW: between SLOTS_PER_EPOCH and 2 * SLOTS_PER_EPOCH
|
|
62
79
|
*
|
|
63
80
|
*/
|
|
64
81
|
this.faultInspectionWindow = Math.max(opts.faultInspectionWindow ?? SLOTS_PER_EPOCH + Math.floor(Math.random() * SLOTS_PER_EPOCH), SLOTS_PER_EPOCH);
|
|
65
|
-
// allowedFaults should be < faultInspectionWindow, limiting them to faultInspectionWindow/
|
|
66
|
-
this.allowedFaults = Math.min(opts.allowedFaults ?? Math.floor(this.faultInspectionWindow /
|
|
82
|
+
// allowedFaults should be < faultInspectionWindow, limiting them to faultInspectionWindow/4
|
|
83
|
+
this.allowedFaults = Math.min(opts.allowedFaults ?? Math.floor(this.faultInspectionWindow / 4), Math.floor(this.faultInspectionWindow / 4));
|
|
67
84
|
}
|
|
68
|
-
updateStatus(
|
|
69
|
-
this.status =
|
|
85
|
+
updateStatus(status) {
|
|
86
|
+
this.status = status;
|
|
70
87
|
}
|
|
71
88
|
async checkStatus() {
|
|
72
89
|
try {
|
|
73
90
|
(await this.api.status()).assertOk();
|
|
74
91
|
}
|
|
75
92
|
catch (e) {
|
|
76
|
-
|
|
77
|
-
|
|
93
|
+
if (this.status === BuilderStatus.enabled) {
|
|
94
|
+
// Disable if the status was enabled
|
|
95
|
+
this.status = BuilderStatus.disabled;
|
|
96
|
+
}
|
|
78
97
|
throw e;
|
|
79
98
|
}
|
|
80
99
|
}
|
|
@@ -108,8 +127,8 @@ export class ExecutionBuilderHttp {
|
|
|
108
127
|
// invalid signature, but there is no recourse to this anyway so lets just proceed and will
|
|
109
128
|
// probably need diagonis if this block turns out to be invalid because of some bug
|
|
110
129
|
//
|
|
111
|
-
const
|
|
112
|
-
return
|
|
130
|
+
const fork = this.config.getForkName(signedBlindedBlock.data.message.slot);
|
|
131
|
+
return reconstructSignedBlockContents(fork, signedBlindedBlock.data, executionPayload, blobsBundle);
|
|
113
132
|
}
|
|
114
133
|
async submitBlindedBlockNoResponse(signedBlindedBlock) {
|
|
115
134
|
(await this.api.submitBlindedBlockV2({ signedBlindedBlock }, { retries: 2, requestWireFormat: this.sszSupported ? WireFormat.ssz : WireFormat.json })).assertOk();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/execution/builder/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAA0B,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAGzE,OAAO,EAAoB,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAC,mCAAmC,EAAE,8BAA8B,EAAC,MAAM,4BAA4B,CAAC;AAe/G,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAwB,0BAA0B,EAAC,MAAM,YAAY,CAAC;AAgB7E,MAAM,CAAC,MAAM,+BAA+B,GAA6B;IACvE,OAAO,EAAE,KAAK;IACd,GAAG,EAAE,uBAAuB;IAC5B,OAAO,EAAE,KAAK;CACf,CAAC;AAEF;;;;GAIG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC;QACE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC3B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC;;;GAGG;AACH,MAAM,gCAAgC,GAAG,IAAI,GAAG,qBAAqB,CAAC;AAEtE,MAAM,OAAO,oBAAoB;IAiB/B,YACE,IAA8B,EAC9B,MAAuB,EACvB,UAA0B,IAAI,EAC9B,MAAe;QAhBjB,2DAA2D;QAC3D,WAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/execution/builder/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ForkPostBellatrix } from "@lodestar/params";
|
|
2
|
-
import { BLSPubkey, Epoch, ExecutionPayloadHeader, Root,
|
|
2
|
+
import { BLSPubkey, Epoch, ExecutionPayloadHeader, Root, SignedBlindedBeaconBlock, SignedBlockContents, Slot, Wei, WithOptionalBytes, bellatrix, deneb, electra } from "@lodestar/types";
|
|
3
3
|
import { ValidatorRegistration } from "./cache.js";
|
|
4
|
+
import { BuilderStatus } from "./http.js";
|
|
4
5
|
export interface IExecutionBuilder {
|
|
5
6
|
/**
|
|
6
7
|
* This param is only to for testing scripts using merge-mock which need
|
|
@@ -8,12 +9,12 @@ export interface IExecutionBuilder {
|
|
|
8
9
|
* fetch
|
|
9
10
|
*/
|
|
10
11
|
readonly issueLocalFcUWithFeeRecipient?: string;
|
|
11
|
-
status:
|
|
12
|
+
status: BuilderStatus;
|
|
12
13
|
/** Window to inspect missed slots for enabling/disabling builder circuit breaker */
|
|
13
14
|
faultInspectionWindow: number;
|
|
14
15
|
/** Number of missed slots allowed in the faultInspectionWindow for builder circuit*/
|
|
15
16
|
allowedFaults: number;
|
|
16
|
-
updateStatus(
|
|
17
|
+
updateStatus(status: BuilderStatus): void;
|
|
17
18
|
checkStatus(): Promise<void>;
|
|
18
19
|
registerValidator(epoch: Epoch, registrations: bellatrix.SignedValidatorRegistrationV1[]): Promise<void>;
|
|
19
20
|
getValidatorRegistration(pubkey: BLSPubkey): ValidatorRegistration | undefined;
|
|
@@ -23,7 +24,7 @@ export interface IExecutionBuilder {
|
|
|
23
24
|
blobKzgCommitments?: deneb.BlobKzgCommitments;
|
|
24
25
|
executionRequests?: electra.ExecutionRequests;
|
|
25
26
|
}>;
|
|
26
|
-
submitBlindedBlock(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<
|
|
27
|
+
submitBlindedBlock(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<SignedBlockContents>;
|
|
27
28
|
submitBlindedBlockNoResponse(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<void>;
|
|
28
29
|
}
|
|
29
30
|
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Logger } from "@lodestar/logger";
|
|
2
2
|
import { ForkName, ForkPostFulu, ForkPreFulu } from "@lodestar/params";
|
|
3
|
-
import { ExecutionPayload, ExecutionRequests, Root, RootHex, Wei } from "@lodestar/types";
|
|
3
|
+
import { BlobsBundle, ExecutionPayload, ExecutionRequests, Root, RootHex, Wei } from "@lodestar/types";
|
|
4
4
|
import { BlobAndProof } from "@lodestar/types/deneb";
|
|
5
5
|
import { BlobAndProofV2 } from "@lodestar/types/fulu";
|
|
6
6
|
import { IJsonRpcHttpClient } from "../../eth1/provider/jsonRpcHttpClient.js";
|
|
7
7
|
import { Metrics } from "../../metrics/index.js";
|
|
8
|
-
import {
|
|
8
|
+
import { ClientVersion, ExecutePayloadResponse, ExecutionEngineState, IExecutionEngine, PayloadAttributes, PayloadId, VersionedHashes } from "./interface.js";
|
|
9
9
|
import { PayloadIdCache } from "./payloadIdCache.js";
|
|
10
10
|
import { ExecutionPayloadBody } from "./types.js";
|
|
11
11
|
export type ExecutionEngineModules = {
|
|
@@ -35,6 +35,11 @@ const MAX_VERSIONED_HASHES = 128;
|
|
|
35
35
|
const notifyNewPayloadOpts = { routeId: "notifyNewPayload" };
|
|
36
36
|
const forkchoiceUpdatedV1Opts = { routeId: "forkchoiceUpdated" };
|
|
37
37
|
const getPayloadOpts = { routeId: "getPayload" };
|
|
38
|
+
const getPayloadBodiesByHashOpts = { routeId: "getPayloadBodiesByHash" };
|
|
39
|
+
const getPayloadBodiesByRangeOpts = { routeId: "getPayloadBodiesByRange" };
|
|
40
|
+
const getBlobsV1Opts = { routeId: "getBlobsV1" };
|
|
41
|
+
const getBlobsV2Opts = { routeId: "getBlobsV2" };
|
|
42
|
+
const getClientVersionOpts = { routeId: "getClientVersion" };
|
|
38
43
|
/**
|
|
39
44
|
* based on Ethereum JSON-RPC API and inherits the following properties of this standard:
|
|
40
45
|
* - Supported communication protocols (HTTP and WebSocket)
|
|
@@ -294,7 +299,7 @@ export class ExecutionEngineHttp {
|
|
|
294
299
|
async getPayloadBodiesByHash(_fork, blockHashes) {
|
|
295
300
|
const method = "engine_getPayloadBodiesByHashV1";
|
|
296
301
|
assertReqSizeLimit(blockHashes.length, 32);
|
|
297
|
-
const response = await this.rpc.fetchWithRetries({ method, params: [blockHashes] });
|
|
302
|
+
const response = await this.rpc.fetchWithRetries({ method, params: [blockHashes] }, getPayloadBodiesByHashOpts);
|
|
298
303
|
return response.map(deserializeExecutionPayloadBody);
|
|
299
304
|
}
|
|
300
305
|
async getPayloadBodiesByRange(_fork, startBlockNumber, blockCount) {
|
|
@@ -302,7 +307,7 @@ export class ExecutionEngineHttp {
|
|
|
302
307
|
assertReqSizeLimit(blockCount, 32);
|
|
303
308
|
const start = numToQuantity(startBlockNumber);
|
|
304
309
|
const count = numToQuantity(blockCount);
|
|
305
|
-
const response = await this.rpc.fetchWithRetries({ method, params: [start, count] });
|
|
310
|
+
const response = await this.rpc.fetchWithRetries({ method, params: [start, count] }, getPayloadBodiesByRangeOpts);
|
|
306
311
|
return response.map(deserializeExecutionPayloadBody);
|
|
307
312
|
}
|
|
308
313
|
async getBlobs(fork, versionedHashes) {
|
|
@@ -317,7 +322,7 @@ export class ExecutionEngineHttp {
|
|
|
317
322
|
const response = await this.rpc.fetchWithRetries({
|
|
318
323
|
method: "engine_getBlobsV1",
|
|
319
324
|
params: [versionedHashesHex],
|
|
320
|
-
});
|
|
325
|
+
}, getBlobsV1Opts);
|
|
321
326
|
const invalidLength = response.length !== versionedHashesHex.length;
|
|
322
327
|
if (invalidLength) {
|
|
323
328
|
const error = `Invalid engine_getBlobsV1 response length=${response.length} versionedHashes=${versionedHashesHex.length}`;
|
|
@@ -330,7 +335,7 @@ export class ExecutionEngineHttp {
|
|
|
330
335
|
const response = await this.rpc.fetchWithRetries({
|
|
331
336
|
method: "engine_getBlobsV2",
|
|
332
337
|
params: [versionedHashesHex],
|
|
333
|
-
});
|
|
338
|
+
}, getBlobsV2Opts);
|
|
334
339
|
// engine_getBlobsV2 does not return partial responses. It returns null if any blob is not found
|
|
335
340
|
const invalidLength = !!response && response.length !== versionedHashesHex.length;
|
|
336
341
|
if (invalidLength) {
|
|
@@ -342,7 +347,7 @@ export class ExecutionEngineHttp {
|
|
|
342
347
|
}
|
|
343
348
|
async getClientVersion(clientVersion) {
|
|
344
349
|
const method = "engine_getClientVersionV1";
|
|
345
|
-
const response = await this.rpc.fetchWithRetries({ method, params: [{ ...clientVersion, commit: `0x${clientVersion.commit}` }] });
|
|
350
|
+
const response = await this.rpc.fetchWithRetries({ method, params: [{ ...clientVersion, commit: `0x${clientVersion.commit}` }] }, getClientVersionOpts);
|
|
346
351
|
const clientVersions = response.map((cv) => {
|
|
347
352
|
const code = cv.code in ClientCode ? ClientCode[cv.code] : ClientCode.XX;
|
|
348
353
|
return { code, name: cv.name, version: cv.version, commit: strip0xPrefix(cv.commit) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/execution/engine/http.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/execution/engine/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CONSOLIDATION_REQUEST_TYPE, DEPOSIT_REQUEST_TYPE, ForkName, ForkPostFulu, ForkPreFulu, WITHDRAWAL_REQUEST_TYPE } from "@lodestar/params";
|
|
2
|
-
import { ExecutionPayload, ExecutionRequests, Root, RootHex, Wei, capella } from "@lodestar/types";
|
|
3
|
-
import {
|
|
2
|
+
import { BlobsBundle, ExecutionPayload, ExecutionRequests, Root, RootHex, Wei, capella } from "@lodestar/types";
|
|
3
|
+
import { BlobAndProof } from "@lodestar/types/deneb";
|
|
4
4
|
import { BlobAndProofV2 } from "@lodestar/types/fulu";
|
|
5
5
|
import { DATA } from "../../eth1/provider/utils.js";
|
|
6
6
|
import { PayloadId, PayloadIdCache, WithdrawalV1 } from "./payloadIdCache.js";
|
|
@@ -80,15 +80,6 @@ export type PayloadAttributes = {
|
|
|
80
80
|
withdrawals?: capella.Withdrawal[];
|
|
81
81
|
parentBeaconBlockRoot?: Uint8Array;
|
|
82
82
|
};
|
|
83
|
-
export type BlobsBundle = {
|
|
84
|
-
/**
|
|
85
|
-
* Execution payload `blockHash` for the caller to sanity-check the consistency with the `engine_getPayload` call
|
|
86
|
-
* https://github.com/protolambda/execution-apis/blob/bf44a8d08ab34b861ef97fa9ef5c5e7806194547/src/engine/blob-extension.md?plain=1#L49
|
|
87
|
-
*/
|
|
88
|
-
commitments: KZGCommitment[];
|
|
89
|
-
blobs: Blob[];
|
|
90
|
-
proofs: KZGProof[];
|
|
91
|
-
};
|
|
92
83
|
export type ClientVersion = {
|
|
93
84
|
code: ClientCode;
|
|
94
85
|
name: string;
|
|
@@ -4,10 +4,12 @@ import { EngineApiRpcParamTypes, EngineApiRpcReturnTypes, PayloadStatus } from "
|
|
|
4
4
|
import { JsonRpcBackend } from "./utils.js";
|
|
5
5
|
export type ExecutionEngineMockOpts = {
|
|
6
6
|
genesisBlockHash: string;
|
|
7
|
+
eth1BlockHash?: string;
|
|
7
8
|
onlyPredefinedResponses?: boolean;
|
|
8
9
|
capellaForkTimestamp?: number;
|
|
9
10
|
denebForkTimestamp?: number;
|
|
10
11
|
electraForkTimestamp?: number;
|
|
12
|
+
fuluForkTimestamp?: number;
|
|
11
13
|
};
|
|
12
14
|
/**
|
|
13
15
|
* Mock ExecutionEngine for fast prototyping and unit testing
|
|
@@ -54,7 +56,8 @@ export declare class ExecutionEngineMockBackend implements JsonRpcBackend {
|
|
|
54
56
|
* 2. The call MUST be responded with 5: Unavailable payload error if the building process identified by the payloadId doesn't exist.
|
|
55
57
|
* 3. Client software MAY stop the corresponding building process after serving this call.
|
|
56
58
|
*/
|
|
57
|
-
private
|
|
59
|
+
private getPayloadV1;
|
|
60
|
+
private getPayloadV5;
|
|
58
61
|
private getClientVersionV1;
|
|
59
62
|
private getBlobs;
|
|
60
63
|
private getBlobsV2;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import crypto from "node:crypto";
|
|
2
2
|
import { BLOB_TX_TYPE, BYTES_PER_FIELD_ELEMENT, FIELD_ELEMENTS_PER_BLOB, ForkName, ForkSeq, } from "@lodestar/params";
|
|
3
3
|
import { ssz } from "@lodestar/types";
|
|
4
|
-
import { fromHex, toHex } from "@lodestar/utils";
|
|
4
|
+
import { fromHex, toHex, toRootHex } from "@lodestar/utils";
|
|
5
5
|
import { ZERO_HASH_HEX } from "../../constants/index.js";
|
|
6
6
|
import { quantityToNum } from "../../eth1/provider/utils.js";
|
|
7
|
+
import { INTEROP_BLOCK_HASH } from "../../node/utils/interop/state.js";
|
|
7
8
|
import { kzgCommitmentToVersionedHash } from "../../util/blobs.js";
|
|
8
9
|
import { kzg } from "../../util/kzg.js";
|
|
9
10
|
import { ClientCode, ExecutionPayloadStatus, PayloadIdCache } from "./interface.js";
|
|
10
|
-
import { deserializePayloadAttributes, serializeBlobsBundle, serializeExecutionPayload, } from "./types.js";
|
|
11
|
+
import { deserializePayloadAttributes, serializeBlobsBundle, serializeExecutionPayload, serializeExecutionRequests, } from "./types.js";
|
|
11
12
|
const INTEROP_GAS_LIMIT = 30e6;
|
|
12
13
|
const PRUNE_PAYLOAD_ID_AFTER_MS = 5000;
|
|
13
14
|
const TX_TYPE_EIP1559 = 2;
|
|
@@ -35,6 +36,13 @@ export class ExecutionEngineMockBackend {
|
|
|
35
36
|
timestamp: 0,
|
|
36
37
|
blockNumber: 0,
|
|
37
38
|
});
|
|
39
|
+
const eth1BlockHash = opts.eth1BlockHash ?? toRootHex(INTEROP_BLOCK_HASH);
|
|
40
|
+
this.validBlocks.set(eth1BlockHash, {
|
|
41
|
+
parentHash: ZERO_HASH_HEX,
|
|
42
|
+
blockHash: eth1BlockHash,
|
|
43
|
+
timestamp: 0,
|
|
44
|
+
blockNumber: 1,
|
|
45
|
+
});
|
|
38
46
|
this.handlers = {
|
|
39
47
|
engine_newPayloadV1: this.notifyNewPayload.bind(this),
|
|
40
48
|
engine_newPayloadV2: this.notifyNewPayload.bind(this),
|
|
@@ -43,11 +51,11 @@ export class ExecutionEngineMockBackend {
|
|
|
43
51
|
engine_forkchoiceUpdatedV1: this.notifyForkchoiceUpdate.bind(this),
|
|
44
52
|
engine_forkchoiceUpdatedV2: this.notifyForkchoiceUpdate.bind(this),
|
|
45
53
|
engine_forkchoiceUpdatedV3: this.notifyForkchoiceUpdate.bind(this),
|
|
46
|
-
engine_getPayloadV1: this.
|
|
47
|
-
engine_getPayloadV2: this.
|
|
48
|
-
engine_getPayloadV3: this.
|
|
49
|
-
engine_getPayloadV4: this.
|
|
50
|
-
engine_getPayloadV5: this.
|
|
54
|
+
engine_getPayloadV1: this.getPayloadV1.bind(this),
|
|
55
|
+
engine_getPayloadV2: this.getPayloadV5.bind(this),
|
|
56
|
+
engine_getPayloadV3: this.getPayloadV5.bind(this),
|
|
57
|
+
engine_getPayloadV4: this.getPayloadV5.bind(this),
|
|
58
|
+
engine_getPayloadV5: this.getPayloadV5.bind(this),
|
|
51
59
|
engine_getPayloadBodiesByHashV1: this.getPayloadBodiesByHash.bind(this),
|
|
52
60
|
engine_getPayloadBodiesByRangeV1: this.getPayloadBodiesByRange.bind(this),
|
|
53
61
|
engine_getClientVersionV1: this.getClientVersionV1.bind(this),
|
|
@@ -174,7 +182,6 @@ export class ExecutionEngineMockBackend {
|
|
|
174
182
|
// IF references an unknown payload or a payload that can't be validated because requisite data is missing
|
|
175
183
|
// RETURN {payloadStatus: {status: SYNCING, latestValidHash: null, validationError: null}, payloadId: null}
|
|
176
184
|
//
|
|
177
|
-
// > TODO: Implement
|
|
178
185
|
return {
|
|
179
186
|
payloadStatus: { status: ExecutionPayloadStatus.SYNCING, latestValidHash: null, validationError: null },
|
|
180
187
|
payloadId: null,
|
|
@@ -229,9 +236,22 @@ export class ExecutionEngineMockBackend {
|
|
|
229
236
|
const commitments = [];
|
|
230
237
|
const blobs = [];
|
|
231
238
|
const proofs = [];
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
const
|
|
239
|
+
if (ForkSeq[fork] >= ForkSeq.fulu) {
|
|
240
|
+
// if post fulu, add between 0 and 3 data column transactions based on slot with BlobsBundleV2
|
|
241
|
+
const fuluTxCount = executionPayload.blockNumber % 4;
|
|
242
|
+
for (let i = 0; i < fuluTxCount; i++) {
|
|
243
|
+
const blob = generateRandomBlob();
|
|
244
|
+
const commitment = kzg.blobToKzgCommitment(blob);
|
|
245
|
+
const { proofs: cellProofs } = kzg.computeCellsAndKzgProofs(blob);
|
|
246
|
+
executionPayload.transactions.push(transactionForKzgCommitment(commitment));
|
|
247
|
+
commitments.push(commitment);
|
|
248
|
+
blobs.push(blob);
|
|
249
|
+
proofs.push(...cellProofs);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
else if (ForkSeq[fork] >= ForkSeq.deneb && ForkSeq[fork] < ForkSeq.fulu) {
|
|
253
|
+
// if post deneb, add between 0 and 2 blob transactions
|
|
254
|
+
const denebTxCount = executionPayload.blockNumber % 3;
|
|
235
255
|
for (let i = 0; i < denebTxCount; i++) {
|
|
236
256
|
const blob = generateRandomBlob();
|
|
237
257
|
const commitment = kzg.blobToKzgCommitment(blob);
|
|
@@ -242,6 +262,9 @@ export class ExecutionEngineMockBackend {
|
|
|
242
262
|
proofs.push(proof);
|
|
243
263
|
}
|
|
244
264
|
}
|
|
265
|
+
if (ForkSeq[fork] >= ForkSeq.capella) {
|
|
266
|
+
executionPayload.withdrawals = ssz.capella.Withdrawals.defaultValue();
|
|
267
|
+
}
|
|
245
268
|
this.preparingPayloads.set(payloadId, {
|
|
246
269
|
executionPayload: serializeExecutionPayload(fork, executionPayload),
|
|
247
270
|
blobsBundle: serializeBlobsBundle({
|
|
@@ -249,6 +272,11 @@ export class ExecutionEngineMockBackend {
|
|
|
249
272
|
blobs,
|
|
250
273
|
proofs,
|
|
251
274
|
}),
|
|
275
|
+
executionRequests: serializeExecutionRequests({
|
|
276
|
+
deposits: ssz.electra.DepositRequests.defaultValue(),
|
|
277
|
+
withdrawals: ssz.electra.WithdrawalRequests.defaultValue(),
|
|
278
|
+
consolidations: ssz.electra.ConsolidationRequests.defaultValue(),
|
|
279
|
+
}),
|
|
252
280
|
});
|
|
253
281
|
// IF the payload is deemed VALID and the build process has begun
|
|
254
282
|
// {payloadStatus: {status: VALID, latestValidHash: forkchoiceState.headBlockHash, validationError: null}, payloadId: buildProcessId}
|
|
@@ -272,7 +300,10 @@ export class ExecutionEngineMockBackend {
|
|
|
272
300
|
* 2. The call MUST be responded with 5: Unavailable payload error if the building process identified by the payloadId doesn't exist.
|
|
273
301
|
* 3. Client software MAY stop the corresponding building process after serving this call.
|
|
274
302
|
*/
|
|
275
|
-
|
|
303
|
+
getPayloadV1(payloadId) {
|
|
304
|
+
return this.getPayloadV5(payloadId).executionPayload;
|
|
305
|
+
}
|
|
306
|
+
getPayloadV5(payloadId) {
|
|
276
307
|
// 1. Given the payloadId client software MUST return the most recent version of the payload that is available in
|
|
277
308
|
// the corresponding build process at the time of receiving the call.
|
|
278
309
|
const payloadIdNbr = Number(payloadId);
|
|
@@ -292,7 +323,12 @@ export class ExecutionEngineMockBackend {
|
|
|
292
323
|
}
|
|
293
324
|
}
|
|
294
325
|
this.payloadsForDeletion.set(payloadIdNbr, now);
|
|
295
|
-
return
|
|
326
|
+
return {
|
|
327
|
+
executionPayload: payload.executionPayload,
|
|
328
|
+
blockValue: String(1e9),
|
|
329
|
+
blobsBundle: payload.blobsBundle,
|
|
330
|
+
executionRequests: payload.executionRequests,
|
|
331
|
+
};
|
|
296
332
|
}
|
|
297
333
|
getClientVersionV1(_clientVersion) {
|
|
298
334
|
return [{ code: ClientCode.XX, name: "mock", version: "", commit: "" }];
|
|
@@ -304,11 +340,13 @@ export class ExecutionEngineMockBackend {
|
|
|
304
340
|
return null;
|
|
305
341
|
}
|
|
306
342
|
timestampToFork(timestamp) {
|
|
307
|
-
if (timestamp
|
|
343
|
+
if (timestamp >= (this.opts.fuluForkTimestamp ?? Infinity))
|
|
344
|
+
return ForkName.fulu;
|
|
345
|
+
if (timestamp >= (this.opts.electraForkTimestamp ?? Infinity))
|
|
308
346
|
return ForkName.electra;
|
|
309
|
-
if (timestamp
|
|
347
|
+
if (timestamp >= (this.opts.denebForkTimestamp ?? Infinity))
|
|
310
348
|
return ForkName.deneb;
|
|
311
|
-
if (timestamp
|
|
349
|
+
if (timestamp >= (this.opts.capellaForkTimestamp ?? Infinity))
|
|
312
350
|
return ForkName.capella;
|
|
313
351
|
return ForkName.bellatrix;
|
|
314
352
|
}
|