@lodestar/beacon-node 1.42.0 → 1.43.0-dev.aef3645690
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.d.ts.map +1 -1
- package/lib/api/impl/beacon/blocks/index.js +20 -0
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
- package/lib/api/impl/beacon/pool/index.js +4 -0
- package/lib/api/impl/beacon/pool/index.js.map +1 -1
- package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
- package/lib/api/impl/beacon/state/index.js +13 -10
- package/lib/api/impl/beacon/state/index.js.map +1 -1
- package/lib/api/impl/lodestar/attesterSlashing.d.ts +8 -0
- package/lib/api/impl/lodestar/attesterSlashing.d.ts.map +1 -0
- package/lib/api/impl/lodestar/attesterSlashing.js +29 -0
- package/lib/api/impl/lodestar/attesterSlashing.js.map +1 -0
- package/lib/api/impl/lodestar/index.d.ts.map +1 -1
- package/lib/api/impl/lodestar/index.js +39 -0
- package/lib/api/impl/lodestar/index.js.map +1 -1
- package/lib/api/impl/validator/index.d.ts.map +1 -1
- package/lib/api/impl/validator/index.js +9 -3
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/chain/blocks/importBlock.d.ts.map +1 -1
- package/lib/chain/blocks/importBlock.js +6 -4
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
- package/lib/chain/blocks/importExecutionPayload.js +14 -5
- package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
- package/lib/chain/blocks/index.js +1 -1
- package/lib/chain/blocks/index.js.map +1 -1
- package/lib/chain/blocks/types.d.ts +3 -3
- package/lib/chain/blocks/types.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +3 -2
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlocksSignatures.js +4 -2
- package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
- package/lib/chain/chain.d.ts +2 -1
- package/lib/chain/chain.d.ts.map +1 -1
- package/lib/chain/chain.js +22 -8
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/errors/blockError.d.ts +11 -1
- package/lib/chain/errors/blockError.d.ts.map +1 -1
- package/lib/chain/errors/blockError.js +4 -0
- package/lib/chain/errors/blockError.js.map +1 -1
- package/lib/chain/forkChoice/index.d.ts.map +1 -1
- package/lib/chain/forkChoice/index.js +10 -8
- package/lib/chain/forkChoice/index.js.map +1 -1
- package/lib/chain/interface.d.ts +2 -1
- package/lib/chain/interface.d.ts.map +1 -1
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/lightClient/index.d.ts +2 -2
- package/lib/chain/lightClient/index.d.ts.map +1 -1
- package/lib/chain/lightClient/index.js +7 -0
- package/lib/chain/lightClient/index.js.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js +5 -2
- package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
- package/lib/chain/opPools/executionPayloadBidPool.d.ts +2 -2
- package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -1
- package/lib/chain/opPools/executionPayloadBidPool.js +2 -2
- package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -1
- package/lib/chain/prepareNextSlot.d.ts.map +1 -1
- package/lib/chain/prepareNextSlot.js +7 -1
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/computeNewStateRoot.d.ts +3 -3
- package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
- package/lib/chain/produceBlock/computeNewStateRoot.js +8 -8
- package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +5 -5
- package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +23 -4
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/validation/block.d.ts.map +1 -1
- package/lib/chain/validation/block.js +27 -5
- package/lib/chain/validation/block.js.map +1 -1
- package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
- package/lib/chain/validation/executionPayloadBid.js +7 -4
- package/lib/chain/validation/executionPayloadBid.js.map +1 -1
- package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
- package/lib/chain/validation/executionPayloadEnvelope.js +6 -1
- package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
- package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
- package/lib/chain/validation/payloadAttestationMessage.js +4 -1
- package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
- package/lib/chain/validation/syncCommittee.d.ts.map +1 -1
- package/lib/chain/validation/syncCommittee.js +4 -0
- package/lib/chain/validation/syncCommittee.js.map +1 -1
- package/lib/chain/validation/syncCommitteeContributionAndProof.js +4 -1
- package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
- package/lib/chain/validatorMonitor.d.ts.map +1 -1
- package/lib/chain/validatorMonitor.js +3 -3
- package/lib/chain/validatorMonitor.js.map +1 -1
- package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
- package/lib/network/processor/gossipHandlers.js +4 -0
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js +2 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRoot.js +2 -0
- 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.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRange.js +7 -3
- package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +6 -0
- package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts +2 -2
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +7 -3
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js +2 -1
- package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js +3 -8
- package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js.map +1 -1
- package/lib/node/nodejs.d.ts.map +1 -1
- package/lib/node/nodejs.js +4 -1
- package/lib/node/nodejs.js.map +1 -1
- package/lib/node/notifier.d.ts.map +1 -1
- package/lib/node/notifier.js +2 -2
- package/lib/node/notifier.js.map +1 -1
- package/package.json +15 -15
- package/src/api/impl/beacon/blocks/index.ts +29 -0
- package/src/api/impl/beacon/pool/index.ts +4 -0
- package/src/api/impl/beacon/state/index.ts +15 -15
- package/src/api/impl/lodestar/attesterSlashing.ts +43 -0
- package/src/api/impl/lodestar/index.ts +51 -1
- package/src/api/impl/validator/index.ts +9 -2
- package/src/chain/blocks/importBlock.ts +11 -7
- package/src/chain/blocks/importExecutionPayload.ts +15 -5
- package/src/chain/blocks/index.ts +1 -1
- package/src/chain/blocks/types.ts +3 -3
- package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +2 -1
- package/src/chain/blocks/verifyBlocksSignatures.ts +9 -2
- package/src/chain/chain.ts +30 -8
- package/src/chain/errors/blockError.ts +7 -1
- package/src/chain/forkChoice/index.ts +11 -8
- package/src/chain/interface.ts +5 -0
- package/src/chain/lightClient/index.ts +15 -3
- package/src/chain/opPools/aggregatedAttestationPool.ts +6 -1
- package/src/chain/opPools/executionPayloadBidPool.ts +3 -3
- package/src/chain/prepareNextSlot.ts +8 -0
- package/src/chain/produceBlock/computeNewStateRoot.ts +11 -10
- package/src/chain/produceBlock/produceBlockBody.ts +40 -10
- package/src/chain/validation/block.ts +30 -7
- package/src/chain/validation/executionPayloadBid.ts +7 -3
- package/src/chain/validation/executionPayloadEnvelope.ts +10 -1
- package/src/chain/validation/payloadAttestationMessage.ts +4 -0
- package/src/chain/validation/syncCommittee.ts +5 -1
- package/src/chain/validation/syncCommitteeContributionAndProof.ts +5 -1
- package/src/chain/validatorMonitor.ts +3 -2
- package/src/network/processor/gossipHandlers.ts +5 -0
- package/src/network/reqresp/handlers/beaconBlocksByRange.ts +3 -1
- package/src/network/reqresp/handlers/beaconBlocksByRoot.ts +3 -0
- package/src/network/reqresp/handlers/blobSidecarsByRange.ts +15 -3
- package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +11 -0
- package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +19 -3
- package/src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts +3 -1
- package/src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts +3 -12
- package/src/node/nodejs.ts +5 -2
- package/src/node/notifier.ts +7 -2
|
@@ -6,7 +6,7 @@ import { prettyPrintPeerId } from "../../util.js";
|
|
|
6
6
|
import { handleColumnSidecarUnavailability, validateRequestedDataColumns, } from "../utils/dataColumnResponseValidation.js";
|
|
7
7
|
export async function* onDataColumnSidecarsByRange(request, chain, db, peerId, peerClient) {
|
|
8
8
|
// Non-finalized range of columns
|
|
9
|
-
const { startSlot, count, columns: requestedColumns } = validateDataColumnSidecarsByRangeRequest(chain.config, request);
|
|
9
|
+
const { startSlot, count, columns: requestedColumns, } = validateDataColumnSidecarsByRangeRequest(chain.config, chain.clock.currentEpoch, request);
|
|
10
10
|
const availableColumns = validateRequestedDataColumns(chain, requestedColumns);
|
|
11
11
|
const endSlot = startSlot + count;
|
|
12
12
|
if (availableColumns.length === 0) {
|
|
@@ -103,16 +103,20 @@ export async function* onDataColumnSidecarsByRange(request, chain, db, peerId, p
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
|
-
export function validateDataColumnSidecarsByRangeRequest(config, request) {
|
|
106
|
+
export function validateDataColumnSidecarsByRangeRequest(config, currentEpoch, request) {
|
|
107
107
|
const { startSlot, columns } = request;
|
|
108
108
|
let { count } = request;
|
|
109
109
|
if (count < 1) {
|
|
110
110
|
throw new ResponseError(RespStatus.INVALID_REQUEST, "count < 1");
|
|
111
111
|
}
|
|
112
|
-
// TODO: validate against MIN_EPOCHS_FOR_BLOCK_REQUESTS
|
|
113
112
|
if (startSlot < GENESIS_SLOT) {
|
|
114
113
|
throw new ResponseError(RespStatus.INVALID_REQUEST, "startSlot < genesis");
|
|
115
114
|
}
|
|
115
|
+
// Spec: [max(current_epoch - MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS, FULU_FORK_EPOCH), current_epoch]
|
|
116
|
+
const minimumRequestEpoch = Math.max(currentEpoch - config.MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS, config.FULU_FORK_EPOCH);
|
|
117
|
+
if (computeEpochAtSlot(startSlot) < minimumRequestEpoch) {
|
|
118
|
+
throw new ResponseError(RespStatus.RESOURCE_UNAVAILABLE, "startSlot is before MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS");
|
|
119
|
+
}
|
|
116
120
|
if (count > config.MAX_REQUEST_BLOCKS_DENEB) {
|
|
117
121
|
count = config.MAX_REQUEST_BLOCKS_DENEB;
|
|
118
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataColumnSidecarsByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/dataColumnSidecarsByRange.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,UAAU,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAC,OAAO,EAAC,MAAM,iBAAiB,CAAC;AAGxC,OAAO,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,iCAAiC,EACjC,4BAA4B,GAC7B,MAAM,0CAA0C,CAAC;AAElD,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,2BAA2B,CAChD,OAA8C,EAC9C,KAAmB,EACnB,EAAa,EACb,MAAc,EACd,UAAkB,EACe;IACjC,iCAAiC;IACjC,MAAM,
|
|
1
|
+
{"version":3,"file":"dataColumnSidecarsByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/dataColumnSidecarsByRange.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executionPayloadEnvelopesByRange.d.ts","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAA4B,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAE/C,wBAAuB,kCAAkC,CACvD,OAAO,EAAE,KAAK,CAAC,uCAAuC,EACtD,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,SAAS,GACZ,aAAa,CAAC,gBAAgB,CAAC,CA0DjC;AAED,wBAAgB,+CAA+C,CAC7D,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,KAAK,CAAC,uCAAuC,GACrD,KAAK,CAAC,uCAAuC,
|
|
1
|
+
{"version":3,"file":"executionPayloadEnvelopesByRange.d.ts","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAA4B,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAE/C,wBAAuB,kCAAkC,CACvD,OAAO,EAAE,KAAK,CAAC,uCAAuC,EACtD,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,SAAS,GACZ,aAAa,CAAC,gBAAgB,CAAC,CA0DjC;AAED,wBAAgB,+CAA+C,CAC7D,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,KAAK,CAAC,uCAAuC,GACrD,KAAK,CAAC,uCAAuC,CAmB/C"}
|
|
@@ -57,10 +57,11 @@ export function validateExecutionPayloadEnvelopesByRangeRequest(config, request)
|
|
|
57
57
|
if (count < 1) {
|
|
58
58
|
throw new ResponseError(RespStatus.INVALID_REQUEST, "count < 1");
|
|
59
59
|
}
|
|
60
|
-
// TODO: validate against MIN_EPOCHS_FOR_BLOCK_REQUESTS
|
|
61
60
|
if (startSlot < GENESIS_SLOT) {
|
|
62
61
|
throw new ResponseError(RespStatus.INVALID_REQUEST, "startSlot < genesis");
|
|
63
62
|
}
|
|
63
|
+
// The gloas req/resp spec uses MIN_EPOCHS_FOR_BLOCK_REQUESTS to define the minimum range peers MUST serve.
|
|
64
|
+
// Archival nodes may still serve older retained payloads to allow genesis sync.
|
|
64
65
|
if (count > config.MAX_REQUEST_BLOCKS_DENEB) {
|
|
65
66
|
count = config.MAX_REQUEST_BLOCKS_DENEB;
|
|
66
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executionPayloadEnvelopesByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"executionPayloadEnvelopesByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executionPayloadEnvelopesByRoot.d.ts","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAC,sCAAsC,EAAC,MAAM,wBAAwB,CAAC;AAE9E,wBAAuB,iCAAiC,CACtD,WAAW,EAAE,sCAAsC,EACnD,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,SAAS,GACZ,aAAa,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"executionPayloadEnvelopesByRoot.d.ts","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAC,sCAAsC,EAAC,MAAM,wBAAwB,CAAC;AAE9E,wBAAuB,iCAAiC,CACtD,WAAW,EAAE,sCAAsC,EACnD,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,SAAS,GACZ,aAAa,CAAC,gBAAgB,CAAC,CAsBjC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { computeEpochAtSlot } from "@lodestar/state-transition";
|
|
2
2
|
import { toRootHex } from "@lodestar/utils";
|
|
3
3
|
export async function* onExecutionPayloadEnvelopesByRoot(requestBody, chain, db) {
|
|
4
|
-
//
|
|
5
|
-
|
|
6
|
-
const minimumRequestEpoch = Math.max(currentEpoch - chain.config.MIN_EPOCHS_FOR_BLOCK_REQUESTS, chain.config.GLOAS_FORK_EPOCH);
|
|
4
|
+
// The gloas req/resp spec uses MIN_EPOCHS_FOR_BLOCK_REQUESTS to define the minimum range peers MUST serve.
|
|
5
|
+
// Archival nodes may still serve older retained payloads to allow genesis sync.
|
|
7
6
|
for (const root of requestBody) {
|
|
8
7
|
const rootHex = toRootHex(root);
|
|
9
8
|
const block = chain.forkChoice.getBlockHexDefaultStatus(rootHex);
|
|
@@ -12,15 +11,11 @@ export async function* onExecutionPayloadEnvelopesByRoot(requestBody, chain, db)
|
|
|
12
11
|
if (slot === null) {
|
|
13
12
|
continue;
|
|
14
13
|
}
|
|
15
|
-
const requestedEpoch = computeEpochAtSlot(slot);
|
|
16
|
-
if (requestedEpoch < minimumRequestEpoch) {
|
|
17
|
-
continue;
|
|
18
|
-
}
|
|
19
14
|
const envelopeBytes = await chain.getSerializedExecutionPayloadEnvelope(slot, rootHex);
|
|
20
15
|
if (envelopeBytes) {
|
|
21
16
|
yield {
|
|
22
17
|
data: envelopeBytes,
|
|
23
|
-
boundary: chain.config.getForkBoundaryAtEpoch(
|
|
18
|
+
boundary: chain.config.getForkBoundaryAtEpoch(computeEpochAtSlot(slot)),
|
|
24
19
|
};
|
|
25
20
|
}
|
|
26
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executionPayloadEnvelopesByRoot.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAK1C,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,iCAAiC,CACtD,WAAmD,EACnD,KAAmB,EACnB,EAAa,EACoB;IACjC,
|
|
1
|
+
{"version":3,"file":"executionPayloadEnvelopesByRoot.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAK1C,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,iCAAiC,CACtD,WAAmD,EACnD,KAAmB,EACnB,EAAa,EACoB;IACjC,2GAA2G;IAC3G,gFAAgF;IAEhF,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACjE,qGAAqG;QACrG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE5E,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,qCAAqC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvF,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM;gBACJ,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;aACxE,CAAC;QACJ,CAAC;IACH,CAAC;AAAA,CACF"}
|
package/lib/node/nodejs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodejs.d.ts","sourceRoot":"","sources":["../../src/node/nodejs.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAErC,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAC,gBAAgB,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"nodejs.d.ts","sourceRoot":"","sources":["../../src/node/nodejs.ts"],"names":[],"mappings":"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"}
|
package/lib/node/nodejs.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { setMaxListeners } from "node:events";
|
|
2
2
|
import { hasher } from "@chainsafe/persistent-merkle-tree";
|
|
3
3
|
import { ZERO_HASH_HEX } from "@lodestar/params";
|
|
4
|
+
import { isStatePostBellatrix } from "@lodestar/state-transition";
|
|
4
5
|
import { sleep, toRootHex } from "@lodestar/utils";
|
|
5
6
|
import { BeaconRestApiServer, getApi } from "../api/index.js";
|
|
6
7
|
import { BeaconChain, initBeaconMetrics } from "../chain/index.js";
|
|
@@ -122,7 +123,9 @@ export class BeaconNode {
|
|
|
122
123
|
: null;
|
|
123
124
|
let executionEngineOpts = opts.executionEngine;
|
|
124
125
|
if (opts.executionEngine.mode === "mock") {
|
|
125
|
-
const eth1BlockHash = anchorState
|
|
126
|
+
const eth1BlockHash = isStatePostBellatrix(anchorState) && anchorState.isExecutionStateType
|
|
127
|
+
? toRootHex(anchorState.latestBlockHash)
|
|
128
|
+
: undefined;
|
|
126
129
|
executionEngineOpts = {
|
|
127
130
|
...opts.executionEngine,
|
|
128
131
|
genesisBlockHash: ZERO_HASH_HEX,
|
package/lib/node/nodejs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodejs.js","sourceRoot":"","sources":["../../src/node/nodejs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAIzD,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"nodejs.js","sourceRoot":"","sources":["../../src/node/nodejs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifier.d.ts","sourceRoot":"","sources":["../../src/node/notifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"notifier.d.ts","sourceRoot":"","sources":["../../src/node/notifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAU9C,OAAO,EAAe,MAAM,EAAuC,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAC,WAAW,EAAY,MAAM,kBAAkB,CAAC;AAOxD,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,QAAQ,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0GjF"}
|
package/lib/node/notifier.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ExecutionStatus } from "@lodestar/fork-choice";
|
|
2
2
|
import { EPOCHS_PER_SYNC_COMMITTEE_PERIOD, SLOTS_PER_EPOCH } from "@lodestar/params";
|
|
3
|
-
import { computeEpochAtSlot, computeStartSlotAtEpoch } from "@lodestar/state-transition";
|
|
3
|
+
import { computeEpochAtSlot, computeStartSlotAtEpoch, isStatePostBellatrix, } from "@lodestar/state-transition";
|
|
4
4
|
import { ErrorAborted, prettyBytes, prettyBytesShort, sleep } from "@lodestar/utils";
|
|
5
5
|
import { ExecutionEngineState } from "../execution/index.js";
|
|
6
6
|
import { SyncState } from "../sync/index.js";
|
|
@@ -127,7 +127,7 @@ function getHeadExecutionInfo(config, clockEpoch, headState, headInfo) {
|
|
|
127
127
|
}
|
|
128
128
|
const executionStatusStr = headInfo.executionStatus.toLowerCase();
|
|
129
129
|
// Add execution status to notifier only if head is on/post bellatrix
|
|
130
|
-
if (headState.isExecutionStateType) {
|
|
130
|
+
if (isStatePostBellatrix(headState) && headState.isExecutionStateType) {
|
|
131
131
|
if (headState.isMergeTransitionComplete) {
|
|
132
132
|
const executionPayloadHashInfo = headInfo.executionStatus !== ExecutionStatus.PreMerge ? headInfo.executionPayloadBlockHash : "empty";
|
|
133
133
|
const executionPayloadNumberInfo = headInfo.executionStatus !== ExecutionStatus.PreMerge ? headInfo.executionPayloadNumber : NaN;
|
package/lib/node/notifier.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifier.js","sourceRoot":"","sources":["../../src/node/notifier.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAa,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAC,gCAAgC,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACnF,OAAO,
|
|
1
|
+
{"version":3,"file":"notifier.js","sourceRoot":"","sources":["../../src/node/notifier.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.
|
|
14
|
+
"version": "1.43.0-dev.aef3645690",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -135,18 +135,18 @@
|
|
|
135
135
|
"@libp2p/peer-id": "^6.0.4",
|
|
136
136
|
"@libp2p/prometheus-metrics": "^5.0.14",
|
|
137
137
|
"@libp2p/tcp": "^11.0.13",
|
|
138
|
-
"@lodestar/api": "^1.
|
|
139
|
-
"@lodestar/config": "^1.
|
|
140
|
-
"@lodestar/db": "^1.
|
|
141
|
-
"@lodestar/fork-choice": "^1.
|
|
142
|
-
"@lodestar/light-client": "^1.
|
|
143
|
-
"@lodestar/logger": "^1.
|
|
144
|
-
"@lodestar/params": "^1.
|
|
145
|
-
"@lodestar/reqresp": "^1.
|
|
146
|
-
"@lodestar/state-transition": "^1.
|
|
147
|
-
"@lodestar/types": "^1.
|
|
148
|
-
"@lodestar/utils": "^1.
|
|
149
|
-
"@lodestar/validator": "^1.
|
|
138
|
+
"@lodestar/api": "^1.43.0-dev.aef3645690",
|
|
139
|
+
"@lodestar/config": "^1.43.0-dev.aef3645690",
|
|
140
|
+
"@lodestar/db": "^1.43.0-dev.aef3645690",
|
|
141
|
+
"@lodestar/fork-choice": "^1.43.0-dev.aef3645690",
|
|
142
|
+
"@lodestar/light-client": "^1.43.0-dev.aef3645690",
|
|
143
|
+
"@lodestar/logger": "^1.43.0-dev.aef3645690",
|
|
144
|
+
"@lodestar/params": "^1.43.0-dev.aef3645690",
|
|
145
|
+
"@lodestar/reqresp": "^1.43.0-dev.aef3645690",
|
|
146
|
+
"@lodestar/state-transition": "^1.43.0-dev.aef3645690",
|
|
147
|
+
"@lodestar/types": "^1.43.0-dev.aef3645690",
|
|
148
|
+
"@lodestar/utils": "^1.43.0-dev.aef3645690",
|
|
149
|
+
"@lodestar/validator": "^1.43.0-dev.aef3645690",
|
|
150
150
|
"@multiformats/multiaddr": "^13.0.1",
|
|
151
151
|
"datastore-core": "^11.0.2",
|
|
152
152
|
"datastore-fs": "^11.0.2",
|
|
@@ -169,7 +169,7 @@
|
|
|
169
169
|
"@libp2p/interface-internal": "^3.0.13",
|
|
170
170
|
"@libp2p/logger": "^6.2.2",
|
|
171
171
|
"@libp2p/utils": "^7.0.13",
|
|
172
|
-
"@lodestar/spec-test-util": "^1.
|
|
172
|
+
"@lodestar/spec-test-util": "^1.43.0-dev.aef3645690",
|
|
173
173
|
"@types/js-yaml": "^4.0.5",
|
|
174
174
|
"@types/qs": "^6.9.7",
|
|
175
175
|
"@types/tmp": "^0.2.3",
|
|
@@ -186,5 +186,5 @@
|
|
|
186
186
|
"beacon",
|
|
187
187
|
"blockchain"
|
|
188
188
|
],
|
|
189
|
-
"gitHead": "
|
|
189
|
+
"gitHead": "ffc9f7818d18273a196890cbaf9814f62d9d04db"
|
|
190
190
|
}
|
|
@@ -812,6 +812,35 @@ export function getBeaconBlockApi({
|
|
|
812
812
|
});
|
|
813
813
|
},
|
|
814
814
|
|
|
815
|
+
async getSignedExecutionPayloadEnvelope({blockId}, context) {
|
|
816
|
+
const {block, executionOptimistic, finalized} = await getBlockResponse(chain, blockId);
|
|
817
|
+
const slot = block.message.slot;
|
|
818
|
+
const fork = config.getForkName(slot);
|
|
819
|
+
|
|
820
|
+
if (!isForkPostGloas(fork)) {
|
|
821
|
+
throw new ApiError(
|
|
822
|
+
400,
|
|
823
|
+
`Execution payload envelopes are not available for pre-gloas fork=${fork}, slot=${slot}`
|
|
824
|
+
);
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
const blockRoot = config.getForkTypes(slot).BeaconBlock.hashTreeRoot(block.message);
|
|
828
|
+
const blockRootHex = toRootHex(blockRoot);
|
|
829
|
+
|
|
830
|
+
const data = context?.returnBytes
|
|
831
|
+
? await chain.getSerializedExecutionPayloadEnvelope(slot, blockRootHex)
|
|
832
|
+
: await chain.getExecutionPayloadEnvelope(slot, blockRootHex);
|
|
833
|
+
|
|
834
|
+
if (!data) {
|
|
835
|
+
throw new ApiError(404, `Execution payload envelope not found for slot=${slot}, blockRoot=${blockRootHex}`);
|
|
836
|
+
}
|
|
837
|
+
|
|
838
|
+
return {
|
|
839
|
+
data,
|
|
840
|
+
meta: {executionOptimistic, finalized, version: fork},
|
|
841
|
+
};
|
|
842
|
+
},
|
|
843
|
+
|
|
815
844
|
async getBlobSidecars({blockId, indices}) {
|
|
816
845
|
assertUniqueItems(indices, "Duplicate indices provided");
|
|
817
846
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {routes} from "@lodestar/api";
|
|
2
2
|
import {ApplicationMethods} from "@lodestar/api/server";
|
|
3
3
|
import {ForkPostElectra, ForkPreElectra, SYNC_COMMITTEE_SUBNET_SIZE, isForkPostElectra} from "@lodestar/params";
|
|
4
|
+
import {isStatePostAltair} from "@lodestar/state-transition";
|
|
4
5
|
import {Attestation, Epoch, SingleAttestation, isElectraAttestation, ssz, sszTypesFor} from "@lodestar/types";
|
|
5
6
|
import {
|
|
6
7
|
AttestationError,
|
|
@@ -249,6 +250,9 @@ export function getBeaconPoolApi({
|
|
|
249
250
|
|
|
250
251
|
// TODO: Fetch states at signature slots
|
|
251
252
|
const state = chain.getHeadState();
|
|
253
|
+
if (!isStatePostAltair(state)) {
|
|
254
|
+
throw new ApiError(400, "Sync committee pool is not supported before Altair");
|
|
255
|
+
}
|
|
252
256
|
|
|
253
257
|
const failures: FailureList = [];
|
|
254
258
|
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import {routes} from "@lodestar/api";
|
|
2
2
|
import {ApplicationMethods} from "@lodestar/api/server";
|
|
3
|
-
import {
|
|
4
|
-
EPOCHS_PER_HISTORICAL_VECTOR,
|
|
5
|
-
SLOTS_PER_EPOCH,
|
|
6
|
-
SYNC_COMMITTEE_SUBNET_SIZE,
|
|
7
|
-
isForkPostElectra,
|
|
8
|
-
isForkPostFulu,
|
|
9
|
-
} from "@lodestar/params";
|
|
3
|
+
import {EPOCHS_PER_HISTORICAL_VECTOR, SLOTS_PER_EPOCH, SYNC_COMMITTEE_SUBNET_SIZE} from "@lodestar/params";
|
|
10
4
|
import {
|
|
11
5
|
IBeaconStateView,
|
|
12
6
|
computeEpochAtSlot,
|
|
13
7
|
computeStartSlotAtEpoch,
|
|
14
8
|
getCurrentEpoch,
|
|
9
|
+
isStatePostAltair,
|
|
10
|
+
isStatePostElectra,
|
|
11
|
+
isStatePostFulu,
|
|
15
12
|
} from "@lodestar/state-transition";
|
|
16
13
|
import {ValidatorIndex, getValidatorStatus, ssz} from "@lodestar/types";
|
|
17
14
|
import {ApiError} from "../../errors.js";
|
|
@@ -303,6 +300,9 @@ export function getBeaconStateApi({
|
|
|
303
300
|
if (stateEpoch < config.ALTAIR_FORK_EPOCH) {
|
|
304
301
|
throw new ApiError(400, "Requested state before ALTAIR_FORK_EPOCH");
|
|
305
302
|
}
|
|
303
|
+
if (!isStatePostAltair(state)) {
|
|
304
|
+
throw new Error("Expected Altair state for sync committee lookup");
|
|
305
|
+
}
|
|
306
306
|
|
|
307
307
|
const syncCommitteeCache = state.getIndexedSyncCommitteeAtEpoch(epoch ?? stateEpoch);
|
|
308
308
|
const validatorIndices = new Array<ValidatorIndex>(...syncCommitteeCache.validatorIndices);
|
|
@@ -324,9 +324,9 @@ export function getBeaconStateApi({
|
|
|
324
324
|
|
|
325
325
|
async getPendingDeposits({stateId}, context) {
|
|
326
326
|
const {state, executionOptimistic, finalized} = await getState(stateId);
|
|
327
|
-
const fork =
|
|
327
|
+
const fork = state.forkName;
|
|
328
328
|
|
|
329
|
-
if (!
|
|
329
|
+
if (!isStatePostElectra(state)) {
|
|
330
330
|
throw new ApiError(400, `Cannot retrieve pending deposits for pre-electra state fork=${fork}`);
|
|
331
331
|
}
|
|
332
332
|
|
|
@@ -340,9 +340,9 @@ export function getBeaconStateApi({
|
|
|
340
340
|
|
|
341
341
|
async getPendingPartialWithdrawals({stateId}, context) {
|
|
342
342
|
const {state, executionOptimistic, finalized} = await getState(stateId);
|
|
343
|
-
const fork =
|
|
343
|
+
const fork = state.forkName;
|
|
344
344
|
|
|
345
|
-
if (!
|
|
345
|
+
if (!isStatePostElectra(state)) {
|
|
346
346
|
throw new ApiError(400, `Cannot retrieve pending partial withdrawals for pre-electra state fork=${fork}`);
|
|
347
347
|
}
|
|
348
348
|
|
|
@@ -358,9 +358,9 @@ export function getBeaconStateApi({
|
|
|
358
358
|
|
|
359
359
|
async getPendingConsolidations({stateId}, context) {
|
|
360
360
|
const {state, executionOptimistic, finalized} = await getState(stateId);
|
|
361
|
-
const fork =
|
|
361
|
+
const fork = state.forkName;
|
|
362
362
|
|
|
363
|
-
if (!
|
|
363
|
+
if (!isStatePostElectra(state)) {
|
|
364
364
|
throw new ApiError(400, `Cannot retrieve pending consolidations for pre-electra state fork=${fork}`);
|
|
365
365
|
}
|
|
366
366
|
|
|
@@ -376,9 +376,9 @@ export function getBeaconStateApi({
|
|
|
376
376
|
|
|
377
377
|
async getProposerLookahead({stateId}, context) {
|
|
378
378
|
const {state, executionOptimistic, finalized} = await getState(stateId);
|
|
379
|
-
const fork =
|
|
379
|
+
const fork = state.forkName;
|
|
380
380
|
|
|
381
|
-
if (!
|
|
381
|
+
if (!isStatePostFulu(state)) {
|
|
382
382
|
throw new ApiError(400, `Cannot retrieve proposer lookahead for pre-fulu state fork=${fork}`);
|
|
383
383
|
}
|
|
384
384
|
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import {ForkSeq} from "@lodestar/params";
|
|
2
|
+
import {
|
|
3
|
+
getIntersectingIndices,
|
|
4
|
+
isSlashableAttestationData,
|
|
5
|
+
toIndexedAttestationBigint,
|
|
6
|
+
} from "@lodestar/state-transition";
|
|
7
|
+
import {AttesterSlashing, IndexedAttestation} from "@lodestar/types";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Find all slashable pairs within a list of IndexedAttestations and
|
|
11
|
+
* construct AttesterSlashing objects for each.
|
|
12
|
+
*/
|
|
13
|
+
export function getAttesterSlashingsFromIndexedAttestations(
|
|
14
|
+
fork: ForkSeq,
|
|
15
|
+
indexedAttestations: IndexedAttestation[]
|
|
16
|
+
): AttesterSlashing[] {
|
|
17
|
+
const slashings: AttesterSlashing[] = [];
|
|
18
|
+
|
|
19
|
+
for (let i = 0; i < indexedAttestations.length; i++) {
|
|
20
|
+
for (let j = i + 1; j < indexedAttestations.length; j++) {
|
|
21
|
+
// Order by source epoch so the surrounding attestation is always first,
|
|
22
|
+
// matching what isSlashableAttestationData expects (one-directional check).
|
|
23
|
+
const [first, second] =
|
|
24
|
+
indexedAttestations[j].data.source.epoch < indexedAttestations[i].data.source.epoch
|
|
25
|
+
? [indexedAttestations[j], indexedAttestations[i]]
|
|
26
|
+
: [indexedAttestations[i], indexedAttestations[j]];
|
|
27
|
+
|
|
28
|
+
if (getIntersectingIndices(first.attestingIndices, second.attestingIndices).length === 0) continue;
|
|
29
|
+
|
|
30
|
+
const firstBigint = toIndexedAttestationBigint(first, fork);
|
|
31
|
+
const secondBigint = toIndexedAttestationBigint(second, fork);
|
|
32
|
+
|
|
33
|
+
if (!isSlashableAttestationData(firstBigint.data, secondBigint.data)) continue;
|
|
34
|
+
|
|
35
|
+
slashings.push({
|
|
36
|
+
attestation1: firstBigint,
|
|
37
|
+
attestation2: secondBigint,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return slashings;
|
|
43
|
+
}
|
|
@@ -3,7 +3,13 @@ import {ApplicationMethods} from "@lodestar/api/server";
|
|
|
3
3
|
import {ChainForkConfig} from "@lodestar/config";
|
|
4
4
|
import {Repository} from "@lodestar/db";
|
|
5
5
|
import {ForkSeq, SLOTS_PER_EPOCH} from "@lodestar/params";
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
computeEpochAtSlot,
|
|
8
|
+
computeStartSlotAtEpoch,
|
|
9
|
+
getIndexedAttestation,
|
|
10
|
+
isStatePostCapella,
|
|
11
|
+
} from "@lodestar/state-transition";
|
|
12
|
+
import {Attestation, Epoch, IndexedAttestation, ssz} from "@lodestar/types";
|
|
7
13
|
import {Checkpoint} from "@lodestar/types/phase0";
|
|
8
14
|
import {fromHex, toHex, toRootHex} from "@lodestar/utils";
|
|
9
15
|
import {BeaconChain} from "../../../chain/index.js";
|
|
@@ -15,6 +21,7 @@ import {ProfileThread, profileThread, writeHeapSnapshot} from "../../../util/pro
|
|
|
15
21
|
import {getStateResponseWithRegen} from "../beacon/state/utils.js";
|
|
16
22
|
import {ApiError} from "../errors.js";
|
|
17
23
|
import {ApiModules} from "../types.js";
|
|
24
|
+
import {getAttesterSlashingsFromIndexedAttestations} from "./attesterSlashing.js";
|
|
18
25
|
|
|
19
26
|
export function getLodestarApi({
|
|
20
27
|
chain,
|
|
@@ -218,6 +225,9 @@ export function getLodestarApi({
|
|
|
218
225
|
if (ForkSeq[fork] < ForkSeq.capella) {
|
|
219
226
|
throw new Error("Historical summaries are not supported before Capella");
|
|
220
227
|
}
|
|
228
|
+
if (!isStatePostCapella(stateView)) {
|
|
229
|
+
throw new Error("Expected Capella state for historical summaries");
|
|
230
|
+
}
|
|
221
231
|
|
|
222
232
|
const {gindex} = ssz[fork].BeaconState.getPathInfo(["historicalSummaries"]);
|
|
223
233
|
const proof = stateView.getSingleProof(gindex);
|
|
@@ -269,6 +279,46 @@ export function getLodestarApi({
|
|
|
269
279
|
},
|
|
270
280
|
};
|
|
271
281
|
},
|
|
282
|
+
|
|
283
|
+
async getAttesterSlashingsFromBlocks({signedBlocks}) {
|
|
284
|
+
const attestations = new Map<Epoch, Attestation[]>();
|
|
285
|
+
|
|
286
|
+
for (const block of signedBlocks) {
|
|
287
|
+
const attestationsOfABlock = block.message.body.attestations;
|
|
288
|
+
for (const attestation of attestationsOfABlock) {
|
|
289
|
+
const epoch = computeEpochAtSlot(attestation.data.slot);
|
|
290
|
+
let attestationsPerEpoch = attestations.get(epoch);
|
|
291
|
+
if (!attestationsPerEpoch) {
|
|
292
|
+
attestationsPerEpoch = [];
|
|
293
|
+
attestations.set(epoch, attestationsPerEpoch);
|
|
294
|
+
}
|
|
295
|
+
attestationsPerEpoch.push(attestation);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
const indexedAttestations: IndexedAttestation[] = [];
|
|
300
|
+
// Assume all blocks are from the same fork
|
|
301
|
+
const forkSeq = config.getForkSeq(signedBlocks[0].message.slot);
|
|
302
|
+
|
|
303
|
+
for (const [epoch, attestationsPerEpoch] of attestations) {
|
|
304
|
+
const slot = computeStartSlotAtEpoch(epoch);
|
|
305
|
+
const {state} = await getStateResponseWithRegen(chain, slot);
|
|
306
|
+
const stateView = state instanceof Uint8Array ? chain.getHeadState().loadOtherState(state) : state;
|
|
307
|
+
const shuffling = stateView.getShufflingAtEpoch(epoch);
|
|
308
|
+
for (const attestation of attestationsPerEpoch) {
|
|
309
|
+
indexedAttestations.push(getIndexedAttestation(shuffling, forkSeq, attestation));
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
const result = getAttesterSlashingsFromIndexedAttestations(forkSeq, indexedAttestations);
|
|
314
|
+
|
|
315
|
+
return {
|
|
316
|
+
data: result,
|
|
317
|
+
meta: {
|
|
318
|
+
version: config.getForkName(signedBlocks[0].message.slot),
|
|
319
|
+
},
|
|
320
|
+
};
|
|
321
|
+
},
|
|
272
322
|
};
|
|
273
323
|
}
|
|
274
324
|
|
|
@@ -25,6 +25,7 @@ import {
|
|
|
25
25
|
computeStartSlotAtEpoch,
|
|
26
26
|
computeTimeAtSlot,
|
|
27
27
|
getCurrentSlot,
|
|
28
|
+
isStatePostAltair,
|
|
28
29
|
proposerShufflingDecisionRoot,
|
|
29
30
|
} from "@lodestar/state-transition";
|
|
30
31
|
import {
|
|
@@ -1282,6 +1283,9 @@ export function getValidatorApi(
|
|
|
1282
1283
|
if (indices.length === 0) {
|
|
1283
1284
|
throw new ApiError(400, "No validator to get attester duties");
|
|
1284
1285
|
}
|
|
1286
|
+
if (epoch < config.ALTAIR_FORK_EPOCH) {
|
|
1287
|
+
throw new ApiError(400, "Sync committee duties are not supported before Altair");
|
|
1288
|
+
}
|
|
1285
1289
|
|
|
1286
1290
|
// May request for an epoch that's in the future
|
|
1287
1291
|
await waitForNextClosestEpoch();
|
|
@@ -1291,6 +1295,9 @@ export function getValidatorApi(
|
|
|
1291
1295
|
// Note: does not support requesting past duties
|
|
1292
1296
|
const head = chain.forkChoice.getHead();
|
|
1293
1297
|
const state = chain.getHeadState();
|
|
1298
|
+
if (!isStatePostAltair(state)) {
|
|
1299
|
+
throw new ApiError(400, "Sync committee duties are not available before Altair");
|
|
1300
|
+
}
|
|
1294
1301
|
|
|
1295
1302
|
// Check that all validatorIndex belong to the state before calling getCommitteeAssignments()
|
|
1296
1303
|
const pubkeys = getPubkeysForIndices(state, indices);
|
|
@@ -1635,7 +1642,7 @@ export function getValidatorApi(
|
|
|
1635
1642
|
throw Error("Cached block production result is not full block");
|
|
1636
1643
|
}
|
|
1637
1644
|
|
|
1638
|
-
const {executionPayload, executionRequests,
|
|
1645
|
+
const {executionPayload, executionRequests, payloadEnvelopeStateRoot} = produceResult as ProduceFullGloas;
|
|
1639
1646
|
|
|
1640
1647
|
const envelope: gloas.ExecutionPayloadEnvelope = {
|
|
1641
1648
|
payload: executionPayload,
|
|
@@ -1643,7 +1650,7 @@ export function getValidatorApi(
|
|
|
1643
1650
|
builderIndex: BUILDER_INDEX_SELF_BUILD,
|
|
1644
1651
|
beaconBlockRoot,
|
|
1645
1652
|
slot,
|
|
1646
|
-
stateRoot:
|
|
1653
|
+
stateRoot: payloadEnvelopeStateRoot,
|
|
1647
1654
|
};
|
|
1648
1655
|
|
|
1649
1656
|
logger.info("Produced execution payload envelope", {
|