@lodestar/beacon-node 1.45.0-dev.9ed373bf56 → 1.45.0-dev.aadf7a7167
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/index.d.ts +1 -1
- package/lib/api/impl/beacon/index.d.ts.map +1 -1
- package/lib/api/impl/beacon/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 +1 -1
- package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
- package/lib/api/impl/beacon/state/index.js +2 -2
- package/lib/api/impl/beacon/state/index.js.map +1 -1
- package/lib/api/impl/beacon/state/utils.d.ts +2 -1
- package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
- package/lib/api/impl/beacon/state/utils.js +9 -1
- package/lib/api/impl/beacon/state/utils.js.map +1 -1
- package/lib/api/impl/debug/index.d.ts +1 -1
- package/lib/api/impl/debug/index.d.ts.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/lodestar/index.js +2 -2
- package/lib/api/impl/lodestar/index.js.map +1 -1
- package/lib/api/impl/proof/index.d.ts +1 -1
- package/lib/api/impl/proof/index.d.ts.map +1 -1
- package/lib/api/impl/proof/index.js +2 -2
- package/lib/api/impl/proof/index.js.map +1 -1
- package/lib/api/impl/utils.d.ts +23 -0
- package/lib/api/impl/utils.d.ts.map +1 -1
- package/lib/api/impl/utils.js +44 -1
- package/lib/api/impl/utils.js.map +1 -1
- package/lib/api/impl/validator/index.d.ts +0 -14
- package/lib/api/impl/validator/index.d.ts.map +1 -1
- package/lib/api/impl/validator/index.js +21 -56
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/api/rest/base.d.ts.map +1 -1
- package/lib/api/rest/base.js +8 -0
- package/lib/api/rest/base.js.map +1 -1
- package/lib/chain/blocks/importBlock.d.ts.map +1 -1
- package/lib/chain/blocks/importBlock.js +1 -4
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js +2 -2
- package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js.map +1 -1
- package/lib/chain/builderCircuitBreaker.d.ts +31 -0
- package/lib/chain/builderCircuitBreaker.d.ts.map +1 -0
- package/lib/chain/builderCircuitBreaker.js +59 -0
- package/lib/chain/builderCircuitBreaker.js.map +1 -0
- package/lib/chain/chain.d.ts +2 -0
- package/lib/chain/chain.d.ts.map +1 -1
- package/lib/chain/chain.js +3 -0
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/errors/blockError.d.ts +7 -0
- package/lib/chain/errors/blockError.d.ts.map +1 -1
- package/lib/chain/errors/blockError.js +2 -0
- package/lib/chain/errors/blockError.js.map +1 -1
- package/lib/chain/errors/executionPayloadEnvelope.d.ts +11 -0
- package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
- package/lib/chain/errors/executionPayloadEnvelope.js +2 -0
- package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
- package/lib/chain/interface.d.ts +2 -0
- package/lib/chain/interface.d.ts.map +1 -1
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/lightClient/index.d.ts.map +1 -1
- package/lib/chain/lightClient/index.js +11 -6
- package/lib/chain/lightClient/index.js.map +1 -1
- package/lib/chain/lightClient/proofs.d.ts.map +1 -1
- package/lib/chain/lightClient/proofs.js +28 -2
- package/lib/chain/lightClient/proofs.js.map +1 -1
- package/lib/chain/lightClient/types.d.ts +3 -1
- package/lib/chain/lightClient/types.d.ts.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
- package/lib/chain/options.d.ts +4 -0
- package/lib/chain/options.d.ts.map +1 -1
- package/lib/chain/options.js.map +1 -1
- package/lib/chain/prepareNextSlot.d.ts.map +1 -1
- package/lib/chain/prepareNextSlot.js +12 -7
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/validation/block.d.ts.map +1 -1
- package/lib/chain/validation/block.js +52 -1
- package/lib/chain/validation/block.js.map +1 -1
- package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
- package/lib/chain/validation/executionPayloadEnvelope.js +30 -0
- package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
- package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts.map +1 -1
- package/lib/chain/validation/signatureSets/aggregateAndProof.js +2 -3
- package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
- package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +1 -1
- package/lib/db/repositories/lightclientSyncCommitteeWitness.js +42 -7
- package/lib/db/repositories/lightclientSyncCommitteeWitness.js.map +1 -1
- package/lib/execution/builder/http.d.ts +18 -0
- package/lib/execution/builder/http.d.ts.map +1 -1
- package/lib/execution/builder/http.js +20 -11
- package/lib/execution/builder/http.js.map +1 -1
- package/lib/metrics/metrics/beacon.d.ts +6 -0
- package/lib/metrics/metrics/beacon.d.ts.map +1 -1
- package/lib/metrics/metrics/beacon.js +18 -0
- package/lib/metrics/metrics/beacon.js.map +1 -1
- package/lib/network/gossip/encoding.d.ts +2 -2
- package/lib/network/gossip/encoding.d.ts.map +1 -1
- package/lib/network/gossip/encoding.js +15 -9
- package/lib/network/gossip/encoding.js.map +1 -1
- package/lib/network/gossip/gossipsub.d.ts.map +1 -1
- package/lib/network/gossip/gossipsub.js +2 -2
- package/lib/network/gossip/gossipsub.js.map +1 -1
- package/lib/network/gossip/topic.d.ts +74 -231
- package/lib/network/gossip/topic.d.ts.map +1 -1
- package/lib/network/gossip/topic.js +24 -1
- package/lib/network/gossip/topic.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/package.json +19 -19
- package/src/api/impl/beacon/index.ts +1 -1
- package/src/api/impl/beacon/pool/index.ts +5 -0
- package/src/api/impl/beacon/state/index.ts +3 -2
- package/src/api/impl/beacon/state/utils.ts +11 -0
- package/src/api/impl/debug/index.ts +3 -2
- package/src/api/impl/lodestar/index.ts +2 -2
- package/src/api/impl/proof/index.ts +2 -2
- package/src/api/impl/utils.ts +51 -1
- package/src/api/impl/validator/index.ts +21 -62
- package/src/api/rest/base.ts +9 -0
- package/src/chain/blocks/importBlock.ts +1 -6
- package/src/chain/blocks/verifyExecutionPayloadEnvelope.ts +2 -2
- package/src/chain/builderCircuitBreaker.ts +84 -0
- package/src/chain/chain.ts +7 -0
- package/src/chain/errors/blockError.ts +3 -0
- package/src/chain/errors/executionPayloadEnvelope.ts +9 -0
- package/src/chain/interface.ts +2 -0
- package/src/chain/lightClient/index.ts +12 -7
- package/src/chain/lightClient/proofs.ts +36 -1
- package/src/chain/lightClient/types.ts +3 -1
- package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
- package/src/chain/options.ts +4 -0
- package/src/chain/prepareNextSlot.ts +11 -7
- package/src/chain/validation/block.ts +69 -1
- package/src/chain/validation/executionPayloadEnvelope.ts +39 -0
- package/src/chain/validation/signatureSets/aggregateAndProof.ts +3 -3
- package/src/db/repositories/lightclientSyncCommitteeWitness.ts +57 -9
- package/src/execution/builder/http.ts +30 -17
- package/src/metrics/metrics/beacon.ts +19 -0
- package/src/network/gossip/encoding.ts +13 -7
- package/src/network/gossip/gossipsub.ts +7 -2
- package/src/network/gossip/topic.ts +31 -0
- package/src/network/processor/gossipHandlers.ts +5 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { routes } from "@lodestar/api";
|
|
2
2
|
import { getSafeExecutionBlockHash } from "@lodestar/fork-choice";
|
|
3
|
-
import { ForkSeq, SLOTS_PER_EPOCH, isForkPostBellatrix } from "@lodestar/params";
|
|
3
|
+
import { ForkSeq, SLOTS_PER_EPOCH, isForkPostBellatrix, isForkPostGloas } from "@lodestar/params";
|
|
4
4
|
import { StateHashTreeRootSource, computeEpochAtSlot, computeTimeAtSlot, isStatePostBellatrix, isStatePostGloas, } from "@lodestar/state-transition";
|
|
5
5
|
import { fromHex, isErrorAborted, sleep } from "@lodestar/utils";
|
|
6
6
|
import { GENESIS_SLOT, ZERO_HASH_HEX } from "../constants/constants.js";
|
|
@@ -118,12 +118,17 @@ export class PrepareNextSlotScheduler {
|
|
|
118
118
|
{ dontTransferCache: !isEpochTransition }, RegenCaller.predictProposerHead);
|
|
119
119
|
updatedHead = proposerHead;
|
|
120
120
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
121
|
+
if (isForkPostGloas(fork)) {
|
|
122
|
+
this.chain.builderCircuitBreaker.update(clockSlot);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
// Update the builder status, if enabled shoot an api call to check status
|
|
126
|
+
this.chain.updateBuilderStatus(clockSlot);
|
|
127
|
+
if (this.chain.executionBuilder?.status === BuilderStatus.enabled) {
|
|
128
|
+
this.chain.executionBuilder.checkStatus().catch((e) => {
|
|
129
|
+
this.logger.error("Builder disabled as the check status api failed", { prepareSlot }, e);
|
|
130
|
+
});
|
|
131
|
+
}
|
|
127
132
|
}
|
|
128
133
|
}
|
|
129
134
|
if (!isStatePostBellatrix(updatedPrepareState)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareNextSlot.js","sourceRoot":"","sources":["../../src/chain/prepareNextSlot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAErC,OAAO,EAAC,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAoB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"prepareNextSlot.js","sourceRoot":"","sources":["../../src/chain/prepareNextSlot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,
|
|
1
|
+
{"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EACL,QAAQ,EAeT,MAAM,kBAAkB,CAAC;AAS1B,OAAO,EAAC,iBAAiB,EAAmC,MAAM,iBAAiB,CAAC;AAGpF,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAG7C,MAAM,MAAM,2BAA2B,GAAG;IACxC,4FAA4F;IAC5F,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,iBAAiB,EAC9B,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,2BAA2B,CAAC,CA8QtC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ExecutionStatus } from "@lodestar/fork-choice";
|
|
2
|
-
import { isForkPostBellatrix, isForkPostDeneb, isForkPostGloas } from "@lodestar/params";
|
|
2
|
+
import { MAX_ATTESTATIONS_ELECTRA, MAX_ATTESTER_SLASHINGS_ELECTRA, MAX_BLS_TO_EXECUTION_CHANGES, MAX_BUILDER_DEPOSIT_REQUESTS_PER_PAYLOAD, MAX_BUILDER_EXIT_REQUESTS_PER_PAYLOAD, MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD, MAX_DEPOSIT_REQUESTS_PER_PAYLOAD, MAX_PAYLOAD_ATTESTATIONS, MAX_PROPOSER_SLASHINGS, MAX_VOLUNTARY_EXITS, MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD, isForkPostBellatrix, isForkPostDeneb, isForkPostGloas, } from "@lodestar/params";
|
|
3
3
|
import { computeEpochAtSlot, computeStartSlotAtEpoch, computeTimeAtSlot, getBlockProposerSignatureSet, isExecutionBlockBodyType, isStatePostBellatrix, } from "@lodestar/state-transition";
|
|
4
4
|
import { isGloasBeaconBlock } from "@lodestar/types";
|
|
5
5
|
import { byteArrayEquals, sleep, toRootHex } from "@lodestar/utils";
|
|
@@ -129,6 +129,57 @@ export async function validateGossipBlock(config, chain, signedBlock, fork) {
|
|
|
129
129
|
blockParentRoot: parentRoot,
|
|
130
130
|
});
|
|
131
131
|
}
|
|
132
|
+
// [REJECT] The counts of `block.body.parent_execution_requests` are within
|
|
133
|
+
// their respective limits -- i.e. validate that
|
|
134
|
+
// `len(block.body.parent_execution_requests.deposits) <= MAX_DEPOSIT_REQUESTS_PER_PAYLOAD`,
|
|
135
|
+
// `len(block.body.parent_execution_requests.withdrawals) <= MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD`,
|
|
136
|
+
// `len(block.body.parent_execution_requests.consolidations) <= MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD`,
|
|
137
|
+
// `len(block.body.parent_execution_requests.builder_deposits) <= MAX_BUILDER_DEPOSIT_REQUESTS_PER_PAYLOAD`,
|
|
138
|
+
// and
|
|
139
|
+
// `len(block.body.parent_execution_requests.builder_exits) <= MAX_BUILDER_EXIT_REQUESTS_PER_PAYLOAD`.
|
|
140
|
+
// [REJECT] The counts of the block body operations are within their respective
|
|
141
|
+
// limits -- i.e. validate that
|
|
142
|
+
// `len(block.body.proposer_slashings) <= MAX_PROPOSER_SLASHINGS`,
|
|
143
|
+
// `len(block.body.attester_slashings) <= MAX_ATTESTER_SLASHINGS_ELECTRA`,
|
|
144
|
+
// `len(block.body.attestations) <= MAX_ATTESTATIONS_ELECTRA`,
|
|
145
|
+
// `len(block.body.deposits) == 0`,
|
|
146
|
+
// `len(block.body.voluntary_exits) <= MAX_VOLUNTARY_EXITS`,
|
|
147
|
+
// `len(block.body.bls_to_execution_changes) <= MAX_BLS_TO_EXECUTION_CHANGES`,
|
|
148
|
+
// and `len(block.body.payload_attestations) <= MAX_PAYLOAD_ATTESTATIONS`.
|
|
149
|
+
const body = block.body;
|
|
150
|
+
const requests = body.parentExecutionRequests;
|
|
151
|
+
const countLimits = [
|
|
152
|
+
["parentExecutionRequests.deposits", requests.deposits.length, MAX_DEPOSIT_REQUESTS_PER_PAYLOAD],
|
|
153
|
+
["parentExecutionRequests.withdrawals", requests.withdrawals.length, MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD],
|
|
154
|
+
[
|
|
155
|
+
"parentExecutionRequests.consolidations",
|
|
156
|
+
requests.consolidations.length,
|
|
157
|
+
MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD,
|
|
158
|
+
],
|
|
159
|
+
[
|
|
160
|
+
"parentExecutionRequests.builderDeposits",
|
|
161
|
+
requests.builderDeposits.length,
|
|
162
|
+
MAX_BUILDER_DEPOSIT_REQUESTS_PER_PAYLOAD,
|
|
163
|
+
],
|
|
164
|
+
["parentExecutionRequests.builderExits", requests.builderExits.length, MAX_BUILDER_EXIT_REQUESTS_PER_PAYLOAD],
|
|
165
|
+
["proposerSlashings", body.proposerSlashings.length, MAX_PROPOSER_SLASHINGS],
|
|
166
|
+
["attesterSlashings", body.attesterSlashings.length, MAX_ATTESTER_SLASHINGS_ELECTRA],
|
|
167
|
+
["attestations", body.attestations.length, MAX_ATTESTATIONS_ELECTRA],
|
|
168
|
+
["deposits", body.deposits.length, 0],
|
|
169
|
+
["voluntaryExits", body.voluntaryExits.length, MAX_VOLUNTARY_EXITS],
|
|
170
|
+
["blsToExecutionChanges", body.blsToExecutionChanges.length, MAX_BLS_TO_EXECUTION_CHANGES],
|
|
171
|
+
["payloadAttestations", body.payloadAttestations.length, MAX_PAYLOAD_ATTESTATIONS],
|
|
172
|
+
];
|
|
173
|
+
for (const [name, count, limit] of countLimits) {
|
|
174
|
+
if (count > limit) {
|
|
175
|
+
throw new BlockGossipError(GossipAction.REJECT, {
|
|
176
|
+
code: BlockErrorCode.TOO_MANY_BLOCK_OPERATIONS,
|
|
177
|
+
name,
|
|
178
|
+
count,
|
|
179
|
+
limit,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
132
183
|
// TODO GLOAS: [REJECT] The block's execution payload parent (defined by bid.parent_block_hash) passes all validation
|
|
133
184
|
// This requires execution engine integration to verify the parent block hash
|
|
134
185
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block.js","sourceRoot":"","sources":["../../../src/chain/validation/block.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"block.js","sourceRoot":"","sources":["../../../src/chain/validation/block.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executionPayloadEnvelope.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/executionPayloadEnvelope.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"executionPayloadEnvelope.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/executionPayloadEnvelope.ts"],"names":[],"mappings":"AAcA,OAAO,EAAC,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAG3C,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAGzC,wBAAsB,mCAAmC,CACvD,KAAK,EAAE,YAAY,EACnB,wBAAwB,EAAE,KAAK,CAAC,8BAA8B,GAC7D,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,sCAAsC,CAC1D,KAAK,EAAE,YAAY,EACnB,wBAAwB,EAAE,KAAK,CAAC,8BAA8B,GAC7D,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PayloadStatus } from "@lodestar/fork-choice";
|
|
2
|
+
import { MAX_BUILDER_DEPOSIT_REQUESTS_PER_PAYLOAD, MAX_BUILDER_EXIT_REQUESTS_PER_PAYLOAD, MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD, MAX_DEPOSIT_REQUESTS_PER_PAYLOAD, MAX_WITHDRAWALS_PER_PAYLOAD, MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD, } from "@lodestar/params";
|
|
2
3
|
import { computeStartSlotAtEpoch, getExecutionPayloadEnvelopeSignatureSet, isStatePostGloas, } from "@lodestar/state-transition";
|
|
3
4
|
import { ssz } from "@lodestar/types";
|
|
4
5
|
import { byteArrayEquals, toRootHex } from "@lodestar/utils";
|
|
@@ -88,6 +89,35 @@ async function validateExecutionPayloadEnvelope(chain, executionPayloadEnvelope)
|
|
|
88
89
|
bidRequestsRoot: toRootHex(payloadInput.getBid().executionRequestsRoot),
|
|
89
90
|
});
|
|
90
91
|
}
|
|
92
|
+
// [REJECT] The counts of `execution_requests` are within their respective limits.
|
|
93
|
+
// New in Gloas:EIP7688 — progressive lists are unbounded at the type level, so bounds
|
|
94
|
+
// are enforced here in gossip validation.
|
|
95
|
+
const { executionRequests } = envelope;
|
|
96
|
+
const requestCountLimits = [
|
|
97
|
+
["deposits", executionRequests.deposits.length, MAX_DEPOSIT_REQUESTS_PER_PAYLOAD],
|
|
98
|
+
["withdrawals", executionRequests.withdrawals.length, MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD],
|
|
99
|
+
["consolidations", executionRequests.consolidations.length, MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD],
|
|
100
|
+
["builderDeposits", executionRequests.builderDeposits.length, MAX_BUILDER_DEPOSIT_REQUESTS_PER_PAYLOAD],
|
|
101
|
+
["builderExits", executionRequests.builderExits.length, MAX_BUILDER_EXIT_REQUESTS_PER_PAYLOAD],
|
|
102
|
+
];
|
|
103
|
+
for (const [name, count, limit] of requestCountLimits) {
|
|
104
|
+
if (count > limit) {
|
|
105
|
+
throw new ExecutionPayloadEnvelopeError(GossipAction.REJECT, {
|
|
106
|
+
code: ExecutionPayloadEnvelopeErrorCode.EXECUTION_REQUESTS_COUNT_EXCEEDED,
|
|
107
|
+
name,
|
|
108
|
+
count,
|
|
109
|
+
limit,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// [REJECT] The number of withdrawals is within the limit.
|
|
114
|
+
if (payload.withdrawals.length > MAX_WITHDRAWALS_PER_PAYLOAD) {
|
|
115
|
+
throw new ExecutionPayloadEnvelopeError(GossipAction.REJECT, {
|
|
116
|
+
code: ExecutionPayloadEnvelopeErrorCode.WITHDRAWALS_COUNT_EXCEEDED,
|
|
117
|
+
count: payload.withdrawals.length,
|
|
118
|
+
limit: MAX_WITHDRAWALS_PER_PAYLOAD,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
91
121
|
// Get the block state to verify the builder's signature.
|
|
92
122
|
const blockState = await chain.regen
|
|
93
123
|
.getState(block.stateRoot, RegenCaller.validateGossipPayloadEnvelope)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executionPayloadEnvelope.js","sourceRoot":"","sources":["../../../src/chain/validation/executionPayloadEnvelope.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"executionPayloadEnvelope.js","sourceRoot":"","sources":["../../../src/chain/validation/executionPayloadEnvelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,EACL,wCAAwC,EACxC,qCAAqC,EACrC,sCAAsC,EACtC,gCAAgC,EAChC,2BAA2B,EAC3B,mCAAmC,GACpC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,uCAAuC,EACvC,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAQ,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,eAAe,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAC,6BAA6B,EAAE,iCAAiC,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAElH,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,KAAmB,EACnB,wBAA8D,EAC/C;IACf,OAAO,gCAAgC,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;AAAA,CAC1E;AAED,MAAM,CAAC,KAAK,UAAU,sCAAsC,CAC1D,KAAmB,EACnB,wBAA8D,EAC/C;IACf,OAAO,gCAAgC,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;AAAA,CAC1E;AAED,KAAK,UAAU,gCAAgC,CAC7C,KAAmB,EACnB,wBAA8D,EAC/C;IACf,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,CAAC;IAClD,MAAM,EAAC,OAAO,EAAC,GAAG,QAAQ,CAAC;IAC3B,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAEzD,qFAAqF;IACrF,gFAAgF;IAChF,2BAA2B;IAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC/E,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,6BAA6B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC3D,IAAI,EAAE,iCAAiC,CAAC,kBAAkB;YAC1D,SAAS,EAAE,YAAY;SACxB,CAAC,CAAC;IACL,CAAC;IAED,+CAA+C;IAC/C,0EAA0E;IAC1E,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACrF,MAAM,YAAY,GAAG,KAAK,CAAC,6BAA6B,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC3E,IAAI,aAAa,IAAI,YAAY,EAAE,kBAAkB,EAAE,EAAE,CAAC;QACxD,MAAM,IAAI,6BAA6B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC3D,IAAI,EAAE,iCAAiC,CAAC,sBAAsB;YAC9D,SAAS,EAAE,YAAY;YACvB,IAAI,EAAE,OAAO,CAAC,UAAU;SACzB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,oEAAoE;QACpE,MAAM,IAAI,6BAA6B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC3D,IAAI,EAAE,iCAAiC,CAAC,8BAA8B;YACtE,SAAS,EAAE,YAAY;SACxB,CAAC,CAAC;IACL,CAAC;IAED,sMAAsM;IACtM,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC;IACtE,MAAM,aAAa,GAAG,uBAAuB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACzE,IAAI,OAAO,CAAC,UAAU,GAAG,aAAa,EAAE,CAAC;QACvC,MAAM,IAAI,6BAA6B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC3D,IAAI,EAAE,iCAAiC,CAAC,yBAAyB;YACjE,YAAY,EAAE,OAAO,CAAC,UAAU;YAChC,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAED,sCAAsC;IACtC,yFAAyF;IACzF,2DAA2D;IAE3D,qDAAqD;IACrD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,6BAA6B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC3D,IAAI,EAAE,iCAAiC,CAAC,aAAa;YACrD,YAAY,EAAE,OAAO,CAAC,UAAU;YAChC,SAAS,EAAE,KAAK,CAAC,IAAI;SACtB,CAAC,CAAC;IACL,CAAC;IAED,yDAAyD;IACzD,IAAI,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC;QAC7D,MAAM,IAAI,6BAA6B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC3D,IAAI,EAAE,iCAAiC,CAAC,sBAAsB;YAC9D,oBAAoB,EAAE,QAAQ,CAAC,YAAY;YAC3C,eAAe,EAAE,YAAY,CAAC,eAAe,EAAE;SAChD,CAAC,CAAC;IACL,CAAC;IAED,kDAAkD;IAClD,IAAI,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC;QACpE,MAAM,IAAI,6BAA6B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC3D,IAAI,EAAE,iCAAiC,CAAC,mBAAmB;YAC3D,iBAAiB,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;YAC/C,YAAY,EAAE,YAAY,CAAC,eAAe,EAAE;SAC7C,CAAC,CAAC;IACL,CAAC;IAED,wFAAwF;IACxF,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC1F,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,6BAA6B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC3D,IAAI,EAAE,iCAAiC,CAAC,gCAAgC;YACxE,oBAAoB,EAAE,SAAS,CAAC,YAAY,CAAC;YAC7C,eAAe,EAAE,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,qBAAqB,CAAC;SACxE,CAAC,CAAC;IACL,CAAC;IAED,kFAAkF;IAClF,sFAAsF;IACtF,0CAA0C;IAC1C,MAAM,EAAC,iBAAiB,EAAC,GAAG,QAAQ,CAAC;IACrC,MAAM,kBAAkB,GAA+B;QACrD,CAAC,UAAU,EAAE,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,gCAAgC,CAAC;QACjF,CAAC,aAAa,EAAE,iBAAiB,CAAC,WAAW,CAAC,MAAM,EAAE,mCAAmC,CAAC;QAC1F,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,cAAc,CAAC,MAAM,EAAE,sCAAsC,CAAC;QACnG,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,CAAC,MAAM,EAAE,wCAAwC,CAAC;QACvG,CAAC,cAAc,EAAE,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAE,qCAAqC,CAAC;KAC/F,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACtD,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,6BAA6B,CAAC,YAAY,CAAC,MAAM,EAAE;gBAC3D,IAAI,EAAE,iCAAiC,CAAC,iCAAiC;gBACzE,IAAI;gBACJ,KAAK;gBACL,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,2BAA2B,EAAE,CAAC;QAC7D,MAAM,IAAI,6BAA6B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC3D,IAAI,EAAE,iCAAiC,CAAC,0BAA0B;YAClE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM;YACjC,KAAK,EAAE,2BAA2B;SACnC,CAAC,CAAC;IACL,CAAC;IAED,yDAAyD;IACzD,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,KAAK;SACjC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,6BAA6B,CAAC;SACpE,KAAK,CAAC,GAAG,EAAE,CAAC;QACX,MAAM,IAAI,6BAA6B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC3D,IAAI,EAAE,iCAAiC,CAAC,mBAAmB;YAC3D,SAAS,EAAE,YAAY;YACvB,IAAI,EAAE,OAAO,CAAC,UAAU;SACzB,CAAC,CAAC;IAAA,CACJ,CAAC,CAAC;IACL,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,6EAA6E,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtH,CAAC;IAED,8EAA8E;IAC9E,oDAAoD;IACpD,MAAM,YAAY,GAAG,uCAAuC,CAC1D,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,WAAW,EACjB,UAAU,EACV,wBAAwB,EACxB,YAAY,CAAC,aAAa,CAC3B,CAAC;IAEF,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,EAAE,EAAC,kBAAkB,EAAE,IAAI,EAAC,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,IAAI,6BAA6B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC3D,IAAI,EAAE,iCAAiC,CAAC,iBAAiB;SAC1D,CAAC,CAAC;IACL,CAAC;AAAA,CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregateAndProof.d.ts","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/aggregateAndProof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,aAAa,EAAgE,MAAM,4BAA4B,CAAC;AACxH,OAAO,EAAC,KAAK,EAAE,uBAAuB,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"aggregateAndProof.d.ts","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/aggregateAndProof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,aAAa,EAAgE,MAAM,4BAA4B,CAAC;AACxH,OAAO,EAAC,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAE/E,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,uBAAuB,GACzC,UAAU,CASZ;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,cAAc,EAC/B,iBAAiB,EAAE,uBAAuB,GACzC,aAAa,CAOf"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { DOMAIN_AGGREGATE_AND_PROOF
|
|
1
|
+
import { DOMAIN_AGGREGATE_AND_PROOF } from "@lodestar/params";
|
|
2
2
|
import { SignatureSetType, computeSigningRoot, computeStartSlotAtEpoch } from "@lodestar/state-transition";
|
|
3
|
-
import { ssz } from "@lodestar/types";
|
|
4
3
|
export function getAggregateAndProofSigningRoot(config, epoch, aggregateAndProof) {
|
|
5
4
|
// previously, we call `const aggregatorDomain = config.getDomain(state.slot, DOMAIN_AGGREGATE_AND_PROOF, slot);`
|
|
6
5
|
// at fork boundary, it's required to dial to target epoch https://github.com/ChainSafe/lodestar/blob/v1.11.3/packages/beacon-node/src/chain/validation/attestation.ts#L573
|
|
@@ -8,7 +7,7 @@ export function getAggregateAndProofSigningRoot(config, epoch, aggregateAndProof
|
|
|
8
7
|
const slot = computeStartSlotAtEpoch(epoch);
|
|
9
8
|
const fork = config.getForkName(slot);
|
|
10
9
|
const aggregatorDomain = config.getDomainAtFork(fork, DOMAIN_AGGREGATE_AND_PROOF);
|
|
11
|
-
const sszType =
|
|
10
|
+
const sszType = config.getForkTypes(slot).AggregateAndProof;
|
|
12
11
|
return computeSigningRoot(sszType, aggregateAndProof.message, aggregatorDomain);
|
|
13
12
|
}
|
|
14
13
|
export function getAggregateAndProofSignatureSet(config, epoch, aggregatorIndex, aggregateAndProof) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregateAndProof.js","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/aggregateAndProof.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,0BAA0B,
|
|
1
|
+
{"version":3,"file":"aggregateAndProof.js","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/aggregateAndProof.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,0BAA0B,EAAC,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAgB,gBAAgB,EAAE,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AAGxH,MAAM,UAAU,+BAA+B,CAC7C,MAAoB,EACpB,KAAY,EACZ,iBAA0C,EAC9B;IACZ,iHAAiH;IACjH,2KAA2K;IAC3K,qEAAqE;IACrE,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC;IAC5D,OAAO,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;AAAA,CACjF;AAED,MAAM,UAAU,gCAAgC,CAC9C,MAAoB,EACpB,KAAY,EACZ,eAA+B,EAC/B,iBAA0C,EAC3B;IACf,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,OAAO;QAC9B,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,+BAA+B,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC;QAC9E,SAAS,EAAE,iBAAiB,CAAC,SAAS;KACvC,CAAC;AAAA,CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightclientSyncCommitteeWitness.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/lightclientSyncCommitteeWitness.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"lightclientSyncCommitteeWitness.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/lightclientSyncCommitteeWitness.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAG5D,OAAO,EAAC,oBAAoB,EAAC,MAAM,kCAAkC,CAAC;AAUtE,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;GAIG;AACH,qBAAa,8BAA+B,SAAQ,UAAU,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC9F,YAAY,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,EAUlF;IAGD,WAAW,CAAC,KAAK,EAAE,oBAAoB,GAAG,UAAU,CAgDnD;IAED,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,oBAAoB,CAyBlD;CACF"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { ContainerType, VectorCompositeType } from "@chainsafe/ssz";
|
|
2
2
|
import { Repository } from "@lodestar/db";
|
|
3
|
+
import { CURRENT_SYNC_COMMITTEE_DEPTH_GLOAS, NEXT_SYNC_COMMITTEE_DEPTH_GLOAS } from "@lodestar/params";
|
|
3
4
|
import { ssz } from "@lodestar/types";
|
|
4
5
|
import { Bucket, getBucketNameByValue } from "../buckets.js";
|
|
5
|
-
// We add a 1-byte prefix where 0 means pre-
|
|
6
|
+
// We add a 1-byte prefix where 0 means pre-Electra, 1 means post-Electra, and 2 means post-Gloas.
|
|
6
7
|
var PrefixByte;
|
|
7
8
|
(function (PrefixByte) {
|
|
8
9
|
PrefixByte[PrefixByte["PRE_ELECTRA"] = 0] = "PRE_ELECTRA";
|
|
9
10
|
PrefixByte[PrefixByte["POST_ELECTRA"] = 1] = "POST_ELECTRA";
|
|
11
|
+
PrefixByte[PrefixByte["POST_GLOAS"] = 2] = "POST_GLOAS";
|
|
10
12
|
})(PrefixByte || (PrefixByte = {}));
|
|
11
13
|
export const NUM_WITNESS = 4;
|
|
12
14
|
export const NUM_WITNESS_ELECTRA = 5;
|
|
@@ -29,6 +31,26 @@ export class SyncCommitteeWitnessRepository extends Repository {
|
|
|
29
31
|
// Overrides for multi-fork
|
|
30
32
|
encodeValue(value) {
|
|
31
33
|
const numWitness = value.witness.length;
|
|
34
|
+
const hasGloasBranches = value.currentSyncCommitteeBranch !== undefined || value.nextSyncCommitteeBranch !== undefined;
|
|
35
|
+
if (hasGloasBranches) {
|
|
36
|
+
if (value.currentSyncCommitteeBranch?.length !== CURRENT_SYNC_COMMITTEE_DEPTH_GLOAS ||
|
|
37
|
+
value.nextSyncCommitteeBranch?.length !== NEXT_SYNC_COMMITTEE_DEPTH_GLOAS) {
|
|
38
|
+
throw Error(`Invalid post-Gloas sync committee branch lengths current=${value.currentSyncCommitteeBranch?.length} next=${value.nextSyncCommitteeBranch?.length}`);
|
|
39
|
+
}
|
|
40
|
+
const type = new ContainerType({
|
|
41
|
+
currentSyncCommitteeBranch: new VectorCompositeType(ssz.Root, CURRENT_SYNC_COMMITTEE_DEPTH_GLOAS),
|
|
42
|
+
nextSyncCommitteeBranch: new VectorCompositeType(ssz.Root, NEXT_SYNC_COMMITTEE_DEPTH_GLOAS),
|
|
43
|
+
currentSyncCommitteeRoot: ssz.Root,
|
|
44
|
+
nextSyncCommitteeRoot: ssz.Root,
|
|
45
|
+
});
|
|
46
|
+
const valueBytes = type.serialize({
|
|
47
|
+
currentSyncCommitteeBranch: value.currentSyncCommitteeBranch,
|
|
48
|
+
nextSyncCommitteeBranch: value.nextSyncCommitteeBranch,
|
|
49
|
+
currentSyncCommitteeRoot: value.currentSyncCommitteeRoot,
|
|
50
|
+
nextSyncCommitteeRoot: value.nextSyncCommitteeRoot,
|
|
51
|
+
});
|
|
52
|
+
return prefixData(PrefixByte.POST_GLOAS, valueBytes);
|
|
53
|
+
}
|
|
32
54
|
if (numWitness !== NUM_WITNESS && numWitness !== NUM_WITNESS_ELECTRA) {
|
|
33
55
|
throw Error(`Number of witness can only be 4 pre-electra or 5 post-electra numWitness=${numWitness}`);
|
|
34
56
|
}
|
|
@@ -41,16 +63,21 @@ export class SyncCommitteeWitnessRepository extends Repository {
|
|
|
41
63
|
// We need to differentiate between post-electra and pre-electra witness
|
|
42
64
|
// such that we can deserialize correctly
|
|
43
65
|
const isPostElectra = numWitness === NUM_WITNESS_ELECTRA;
|
|
44
|
-
|
|
45
|
-
prefixByte[0] = isPostElectra ? PrefixByte.POST_ELECTRA : PrefixByte.PRE_ELECTRA;
|
|
46
|
-
const prefixedData = new Uint8Array(1 + valueBytes.length);
|
|
47
|
-
prefixedData.set(prefixByte, 0);
|
|
48
|
-
prefixedData.set(valueBytes, 1);
|
|
49
|
-
return prefixedData;
|
|
66
|
+
return prefixData(isPostElectra ? PrefixByte.POST_ELECTRA : PrefixByte.PRE_ELECTRA, valueBytes);
|
|
50
67
|
}
|
|
51
68
|
decodeValue(data) {
|
|
52
69
|
// First byte is written
|
|
53
70
|
const prefix = data.subarray(0, 1);
|
|
71
|
+
const isPostGloas = prefix[0] === PrefixByte.POST_GLOAS;
|
|
72
|
+
if (isPostGloas) {
|
|
73
|
+
const type = new ContainerType({
|
|
74
|
+
currentSyncCommitteeBranch: new VectorCompositeType(ssz.Root, CURRENT_SYNC_COMMITTEE_DEPTH_GLOAS),
|
|
75
|
+
nextSyncCommitteeBranch: new VectorCompositeType(ssz.Root, NEXT_SYNC_COMMITTEE_DEPTH_GLOAS),
|
|
76
|
+
currentSyncCommitteeRoot: ssz.Root,
|
|
77
|
+
nextSyncCommitteeRoot: ssz.Root,
|
|
78
|
+
});
|
|
79
|
+
return { witness: [], ...type.deserialize(data.subarray(1)) };
|
|
80
|
+
}
|
|
54
81
|
const isPostElectra = prefix[0] === PrefixByte.POST_ELECTRA;
|
|
55
82
|
const type = new ContainerType({
|
|
56
83
|
witness: new VectorCompositeType(ssz.Root, isPostElectra ? NUM_WITNESS_ELECTRA : NUM_WITNESS),
|
|
@@ -60,4 +87,12 @@ export class SyncCommitteeWitnessRepository extends Repository {
|
|
|
60
87
|
return type.deserialize(data.subarray(1));
|
|
61
88
|
}
|
|
62
89
|
}
|
|
90
|
+
function prefixData(prefix, valueBytes) {
|
|
91
|
+
const prefixByte = new Uint8Array(1);
|
|
92
|
+
prefixByte[0] = prefix;
|
|
93
|
+
const prefixedData = new Uint8Array(1 + valueBytes.length);
|
|
94
|
+
prefixedData.set(prefixByte, 0);
|
|
95
|
+
prefixedData.set(valueBytes, 1);
|
|
96
|
+
return prefixedData;
|
|
97
|
+
}
|
|
63
98
|
//# sourceMappingURL=lightclientSyncCommitteeWitness.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightclientSyncCommitteeWitness.js","sourceRoot":"","sources":["../../../src/db/repositories/lightclientSyncCommitteeWitness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAqB,UAAU,EAAC,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEpC,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAE3D,
|
|
1
|
+
{"version":3,"file":"lightclientSyncCommitteeWitness.js","sourceRoot":"","sources":["../../../src/db/repositories/lightclientSyncCommitteeWitness.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,24 @@ export declare enum BuilderStatus {
|
|
|
40
40
|
export declare class NoBidReceived extends Error {
|
|
41
41
|
constructor();
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Beacon clients select randomized values from the following ranges when initializing
|
|
45
|
+
* the circuit breaker (so at boot time and once for each unique boot).
|
|
46
|
+
*
|
|
47
|
+
* ALLOWED_FAULTS: between 1 and SLOTS_PER_EPOCH // 4
|
|
48
|
+
* FAULT_INSPECTION_WINDOW: between SLOTS_PER_EPOCH and 2 * SLOTS_PER_EPOCH
|
|
49
|
+
*
|
|
50
|
+
* The values are randomized per node so builders cannot predict when a given proposer will
|
|
51
|
+
* fall back to local blocks. With fixed thresholds a builder could withhold payloads right up
|
|
52
|
+
* to the limit without ever tripping the breaker.
|
|
53
|
+
*/
|
|
54
|
+
export declare function getFaultInspectionParams(opts: {
|
|
55
|
+
faultInspectionWindow?: number;
|
|
56
|
+
allowedFaults?: number;
|
|
57
|
+
}): {
|
|
58
|
+
faultInspectionWindow: number;
|
|
59
|
+
allowedFaults: number;
|
|
60
|
+
};
|
|
43
61
|
export declare class ExecutionBuilderHttp implements IExecutionBuilder {
|
|
44
62
|
readonly api: BuilderApi;
|
|
45
63
|
readonly config: ChainForkConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/execution/builder/http.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,IAAI,UAAU,EAAY,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAC,iBAAiB,EAAkB,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EACL,SAAS,EACT,KAAK,EACL,sBAAsB,EACtB,IAAI,EACJ,wBAAwB,EACxB,mBAAmB,EACnB,IAAI,EACJ,GAAG,EACH,iBAAiB,EACjB,SAAS,EACT,KAAK,EACL,OAAO,EACR,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAC,qBAAqB,EAAE,0BAA0B,EAAC,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,6BAA6B,CAAC,EAAE,MAAM,CAAC;IAEvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,wBAI7C,CAAC;AAEF,oBAAY,aAAa;IACvB;;OAEG;IACH,OAAO,YAAY;IACnB;;OAEG;IACH,QAAQ,aAAa;IACrB;;;;OAIG;IACH,cAAc,oBAAoB;CACnC;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,cAEC;CACF;AAcD,qBAAa,oBAAqB,YAAW,iBAAiB;IAC5D,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;IACnD,QAAQ,CAAC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IAEhD,MAAM,gBAA0B;IAChC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAAS;IAE7B,YACE,IAAI,EAAE,wBAAwB,EAC9B,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,OAAO,GAAG,IAAW,EAC9B,MAAM,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/execution/builder/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,23 @@ export class NoBidReceived extends Error {
|
|
|
37
37
|
super("No bid received");
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Beacon clients select randomized values from the following ranges when initializing
|
|
42
|
+
* the circuit breaker (so at boot time and once for each unique boot).
|
|
43
|
+
*
|
|
44
|
+
* ALLOWED_FAULTS: between 1 and SLOTS_PER_EPOCH // 4
|
|
45
|
+
* FAULT_INSPECTION_WINDOW: between SLOTS_PER_EPOCH and 2 * SLOTS_PER_EPOCH
|
|
46
|
+
*
|
|
47
|
+
* The values are randomized per node so builders cannot predict when a given proposer will
|
|
48
|
+
* fall back to local blocks. With fixed thresholds a builder could withhold payloads right up
|
|
49
|
+
* to the limit without ever tripping the breaker.
|
|
50
|
+
*/
|
|
51
|
+
export function getFaultInspectionParams(opts) {
|
|
52
|
+
const faultInspectionWindow = Math.max(opts.faultInspectionWindow ?? SLOTS_PER_EPOCH + Math.floor(Math.random() * SLOTS_PER_EPOCH), SLOTS_PER_EPOCH);
|
|
53
|
+
// allowedFaults should be < faultInspectionWindow, limiting them to faultInspectionWindow/4
|
|
54
|
+
const allowedFaults = Math.min(opts.allowedFaults ?? Math.floor(faultInspectionWindow / 4), Math.floor(faultInspectionWindow / 4));
|
|
55
|
+
return { faultInspectionWindow, allowedFaults };
|
|
56
|
+
}
|
|
40
57
|
/**
|
|
41
58
|
* Additional duration to account for potential event loop lag which causes
|
|
42
59
|
* builder blocks to be rejected even though the response was sent in time.
|
|
@@ -77,17 +94,9 @@ export class ExecutionBuilderHttp {
|
|
|
77
94
|
this.config = config;
|
|
78
95
|
this.registrations = new ValidatorRegistrationCache();
|
|
79
96
|
this.issueLocalFcUWithFeeRecipient = opts.issueLocalFcUWithFeeRecipient;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
*
|
|
84
|
-
* ALLOWED_FAULTS: between 1 and SLOTS_PER_EPOCH // 4
|
|
85
|
-
* FAULT_INSPECTION_WINDOW: between SLOTS_PER_EPOCH and 2 * SLOTS_PER_EPOCH
|
|
86
|
-
*
|
|
87
|
-
*/
|
|
88
|
-
this.faultInspectionWindow = Math.max(opts.faultInspectionWindow ?? SLOTS_PER_EPOCH + Math.floor(Math.random() * SLOTS_PER_EPOCH), SLOTS_PER_EPOCH);
|
|
89
|
-
// allowedFaults should be < faultInspectionWindow, limiting them to faultInspectionWindow/4
|
|
90
|
-
this.allowedFaults = Math.min(opts.allowedFaults ?? Math.floor(this.faultInspectionWindow / 4), Math.floor(this.faultInspectionWindow / 4));
|
|
97
|
+
const { faultInspectionWindow, allowedFaults } = getFaultInspectionParams(opts);
|
|
98
|
+
this.faultInspectionWindow = faultInspectionWindow;
|
|
99
|
+
this.allowedFaults = allowedFaults;
|
|
91
100
|
}
|
|
92
101
|
updateStatus(status) {
|
|
93
102
|
this.status = status;
|
|
@@ -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;SAEU,aAAa;AAAzB,IAAY,aAeX;AAfD,WAAY,aAAa;IACvB;;OAEG;IACH,oCAAmB,CAAA;IACnB;;OAEG;IACH,sCAAqB,CAAA;IACrB;;;;OAIG;IACH,mDAAkC,CAAA;AAAC,CACrC,EAfY,aAAa,KAAb,aAAa,QAexB;AAED;;;;GAIG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,cAAc;QACZ,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAAA,CAC1B;CACF;AAED;;;GAGG;AACH,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC;;;GAGG;AACH,MAAM,gCAAgC,GAAG,IAAI,GAAG,qBAAqB,CAAC;AAEtE,MAAM,OAAO,oBAAoB;IACtB,GAAG,CAAa;IAChB,MAAM,CAAkB;IACxB,aAAa,CAA6B;IAC1C,6BAA6B,CAAU;IAChD,2DAA2D;IAC3D,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC;IAChC,qBAAqB,CAAS;IAC9B,aAAa,CAAS;IAEtB;;;;OAIG;IACK,YAAY,GAAG,KAAK,CAAC;IAE7B,YACE,IAA8B,EAC9B,MAAuB,EACvB,OAAO,GAAmB,IAAI,EAC9B,MAAe,EACf;QACA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,OAAO;YAAE,MAAM,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,GAAG,SAAS,CAClB;YACE,OAAO;YACP,UAAU,EAAE;gBACV,SAAS,EAAE,IAAI,CAAC,OAAO;gBACvB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC,CAAC,CAAC,SAAS;aACrE;SACF,EACD,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAC,CACtD,CAAC;QACF,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAC,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,0BAA0B,EAAE,CAAC;QACtD,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,6BAA6B,CAAC;QAExE
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/execution/builder/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,6 +50,12 @@ export declare function createBeaconMetrics(register: RegistryMetricCreator): {
|
|
|
50
50
|
source: ProducedBlockSource;
|
|
51
51
|
}>;
|
|
52
52
|
blockProductionCacheSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
53
|
+
builderCircuitBreaker: {
|
|
54
|
+
active: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
55
|
+
faults: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
56
|
+
blocksPresent: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
57
|
+
payloadsRevealed: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
58
|
+
};
|
|
53
59
|
blockPayload: {
|
|
54
60
|
payloadAdvancePrepTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
|
|
55
61
|
executionPayloadEnvelopeProcessingTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beacon.d.ts","sourceRoot":"","sources":["../../../src/metrics/metrics/beacon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAC,oBAAoB,EAAC,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAC,mBAAmB,EAAE,sBAAsB,EAAC,MAAM,mCAAmC,CAAC;AAC9F,OAAO,EAAC,qBAAqB,EAAC,MAAM,mCAAmC,CAAC;AAExE,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEnE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,qBAAqB
|
|
1
|
+
{"version":3,"file":"beacon.d.ts","sourceRoot":"","sources":["../../../src/metrics/metrics/beacon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAC,oBAAoB,EAAC,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAC,mBAAmB,EAAE,sBAAsB,EAAC,MAAM,mCAAmC,CAAC;AAC9F,OAAO,EAAC,qBAAqB,EAAC,MAAM,mCAAmC,CAAC;AAExE,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEnE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuZlE"}
|
|
@@ -121,6 +121,24 @@ export function createBeaconMetrics(register) {
|
|
|
121
121
|
name: "beacon_block_production_cache_size",
|
|
122
122
|
help: "Count of cached produced results",
|
|
123
123
|
}),
|
|
124
|
+
builderCircuitBreaker: {
|
|
125
|
+
active: register.gauge({
|
|
126
|
+
name: "beacon_builder_circuit_breaker_active",
|
|
127
|
+
help: "Whether the builder circuit breaker is active (1) causing builder bids to be ignored",
|
|
128
|
+
}),
|
|
129
|
+
faults: register.gauge({
|
|
130
|
+
name: "beacon_builder_circuit_breaker_faults",
|
|
131
|
+
help: "Count of blocks with unrevealed payloads in the fault inspection window",
|
|
132
|
+
}),
|
|
133
|
+
blocksPresent: register.gauge({
|
|
134
|
+
name: "beacon_builder_circuit_breaker_blocks_present",
|
|
135
|
+
help: "Count of blocks present in the fault inspection window",
|
|
136
|
+
}),
|
|
137
|
+
payloadsRevealed: register.gauge({
|
|
138
|
+
name: "beacon_builder_circuit_breaker_payloads_revealed",
|
|
139
|
+
help: "Count of blocks with revealed payloads in the fault inspection window",
|
|
140
|
+
}),
|
|
141
|
+
},
|
|
124
142
|
blockPayload: {
|
|
125
143
|
payloadAdvancePrepTime: register.histogram({
|
|
126
144
|
name: "beacon_block_payload_prepare_time",
|