@lodestar/validator 1.35.0-dev.fcf8d024ea → 1.35.0-dev.feed916580
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/metrics.js +14 -14
- package/lib/metrics.js.map +1 -1
- package/lib/services/attestation.js +27 -35
- package/lib/services/attestation.js.map +1 -1
- package/lib/services/attestationDuties.js +0 -1
- package/lib/services/attestationDuties.js.map +1 -1
- package/lib/services/blockDuties.d.ts +2 -2
- package/lib/services/blockDuties.js +3 -4
- package/lib/services/blockDuties.js.map +1 -1
- package/lib/services/syncCommittee.js +22 -30
- package/lib/services/syncCommittee.js.map +1 -1
- package/lib/util/clock.d.ts +0 -3
- package/lib/util/clock.js +0 -4
- package/lib/util/clock.js.map +1 -1
- package/lib/util/params.js +1 -17
- package/lib/util/params.js.map +1 -1
- package/package.json +16 -19
- package/lib/buckets.d.ts.map +0 -1
- package/lib/defaults.d.ts.map +0 -1
- package/lib/genesis.d.ts.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/metrics.d.ts.map +0 -1
- package/lib/repositories/index.d.ts.map +0 -1
- package/lib/repositories/metaDataRepository.d.ts.map +0 -1
- package/lib/services/attestation.d.ts.map +0 -1
- package/lib/services/attestationDuties.d.ts.map +0 -1
- package/lib/services/block.d.ts.map +0 -1
- package/lib/services/blockDuties.d.ts.map +0 -1
- package/lib/services/chainHeaderTracker.d.ts.map +0 -1
- package/lib/services/doppelgangerService.d.ts.map +0 -1
- package/lib/services/emitter.d.ts.map +0 -1
- package/lib/services/externalSignerSync.d.ts.map +0 -1
- package/lib/services/indices.d.ts.map +0 -1
- package/lib/services/prepareBeaconProposer.d.ts.map +0 -1
- package/lib/services/syncCommittee.d.ts.map +0 -1
- package/lib/services/syncCommitteeDuties.d.ts.map +0 -1
- package/lib/services/syncingStatusTracker.d.ts.map +0 -1
- package/lib/services/utils.d.ts.map +0 -1
- package/lib/services/validatorStore.d.ts.map +0 -1
- package/lib/slashingProtection/attestation/attestationByTargetRepository.d.ts.map +0 -1
- package/lib/slashingProtection/attestation/attestationLowerBoundRepository.d.ts.map +0 -1
- package/lib/slashingProtection/attestation/errors.d.ts.map +0 -1
- package/lib/slashingProtection/attestation/index.d.ts.map +0 -1
- package/lib/slashingProtection/block/blockBySlotRepository.d.ts.map +0 -1
- package/lib/slashingProtection/block/errors.d.ts.map +0 -1
- package/lib/slashingProtection/block/index.d.ts.map +0 -1
- package/lib/slashingProtection/index.d.ts.map +0 -1
- package/lib/slashingProtection/interchange/errors.d.ts.map +0 -1
- package/lib/slashingProtection/interchange/formats/completeV4.d.ts.map +0 -1
- package/lib/slashingProtection/interchange/formats/index.d.ts.map +0 -1
- package/lib/slashingProtection/interchange/formats/v5.d.ts.map +0 -1
- package/lib/slashingProtection/interchange/index.d.ts.map +0 -1
- package/lib/slashingProtection/interchange/parseInterchange.d.ts.map +0 -1
- package/lib/slashingProtection/interchange/serializeInterchange.d.ts.map +0 -1
- package/lib/slashingProtection/interchange/types.d.ts.map +0 -1
- package/lib/slashingProtection/interface.d.ts.map +0 -1
- package/lib/slashingProtection/minMaxSurround/distanceStoreRepository.d.ts.map +0 -1
- package/lib/slashingProtection/minMaxSurround/errors.d.ts.map +0 -1
- package/lib/slashingProtection/minMaxSurround/index.d.ts.map +0 -1
- package/lib/slashingProtection/minMaxSurround/interface.d.ts.map +0 -1
- package/lib/slashingProtection/minMaxSurround/minMaxSurround.d.ts.map +0 -1
- package/lib/slashingProtection/types.d.ts.map +0 -1
- package/lib/slashingProtection/utils.d.ts.map +0 -1
- package/lib/types.d.ts.map +0 -1
- package/lib/util/batch.d.ts.map +0 -1
- package/lib/util/clock.d.ts.map +0 -1
- package/lib/util/difference.d.ts.map +0 -1
- package/lib/util/externalSignerClient.d.ts.map +0 -1
- package/lib/util/format.d.ts.map +0 -1
- package/lib/util/index.d.ts.map +0 -1
- package/lib/util/logger.d.ts.map +0 -1
- package/lib/util/params.d.ts.map +0 -1
- package/lib/util/url.d.ts.map +0 -1
- package/lib/validator.d.ts.map +0 -1
- package/src/buckets.ts +0 -30
- package/src/defaults.ts +0 -8
- package/src/genesis.ts +0 -19
- package/src/index.ts +0 -22
- package/src/metrics.ts +0 -417
- package/src/repositories/index.ts +0 -1
- package/src/repositories/metaDataRepository.ts +0 -42
- package/src/services/attestation.ts +0 -362
- package/src/services/attestationDuties.ts +0 -406
- package/src/services/block.ts +0 -261
- package/src/services/blockDuties.ts +0 -217
- package/src/services/chainHeaderTracker.ts +0 -89
- package/src/services/doppelgangerService.ts +0 -286
- package/src/services/emitter.ts +0 -43
- package/src/services/externalSignerSync.ts +0 -81
- package/src/services/indices.ts +0 -165
- package/src/services/prepareBeaconProposer.ts +0 -119
- package/src/services/syncCommittee.ts +0 -338
- package/src/services/syncCommitteeDuties.ts +0 -337
- package/src/services/syncingStatusTracker.ts +0 -74
- package/src/services/utils.ts +0 -58
- package/src/services/validatorStore.ts +0 -830
- package/src/slashingProtection/attestation/attestationByTargetRepository.ts +0 -77
- package/src/slashingProtection/attestation/attestationLowerBoundRepository.ts +0 -44
- package/src/slashingProtection/attestation/errors.ts +0 -66
- package/src/slashingProtection/attestation/index.ts +0 -171
- package/src/slashingProtection/block/blockBySlotRepository.ts +0 -78
- package/src/slashingProtection/block/errors.ts +0 -28
- package/src/slashingProtection/block/index.ts +0 -94
- package/src/slashingProtection/index.ts +0 -95
- package/src/slashingProtection/interchange/errors.ts +0 -15
- package/src/slashingProtection/interchange/formats/completeV4.ts +0 -125
- package/src/slashingProtection/interchange/formats/index.ts +0 -7
- package/src/slashingProtection/interchange/formats/v5.ts +0 -120
- package/src/slashingProtection/interchange/index.ts +0 -5
- package/src/slashingProtection/interchange/parseInterchange.ts +0 -55
- package/src/slashingProtection/interchange/serializeInterchange.ts +0 -35
- package/src/slashingProtection/interchange/types.ts +0 -18
- package/src/slashingProtection/interface.ts +0 -28
- package/src/slashingProtection/minMaxSurround/distanceStoreRepository.ts +0 -57
- package/src/slashingProtection/minMaxSurround/errors.ts +0 -27
- package/src/slashingProtection/minMaxSurround/index.ts +0 -4
- package/src/slashingProtection/minMaxSurround/interface.ts +0 -23
- package/src/slashingProtection/minMaxSurround/minMaxSurround.ts +0 -104
- package/src/slashingProtection/types.ts +0 -12
- package/src/slashingProtection/utils.ts +0 -42
- package/src/types.ts +0 -31
- package/src/util/batch.ts +0 -15
- package/src/util/clock.ts +0 -170
- package/src/util/difference.ts +0 -10
- package/src/util/externalSignerClient.ts +0 -277
- package/src/util/format.ts +0 -3
- package/src/util/index.ts +0 -6
- package/src/util/logger.ts +0 -51
- package/src/util/params.ts +0 -320
- package/src/util/url.ts +0 -16
- package/src/validator.ts +0 -418
package/lib/metrics.js
CHANGED
|
@@ -29,54 +29,54 @@ export function getMetrics(register, gitData) {
|
|
|
29
29
|
labelNames: ["builderSelection", "broadcastValidation"],
|
|
30
30
|
}),
|
|
31
31
|
// Attestation journey:
|
|
32
|
-
// - Wait for block or
|
|
32
|
+
// - Wait for block or 1/3, call prepare attestation
|
|
33
33
|
// - Get attestation, sign, call publish
|
|
34
|
-
// - Wait
|
|
34
|
+
// - Wait 2/3, call prepare aggregate
|
|
35
35
|
// - Get aggregate, sign, call publish
|
|
36
36
|
attesterStepCallProduceAttestation: register.histogram({
|
|
37
37
|
name: "vc_attester_step_call_produce_attestation_seconds",
|
|
38
|
-
help: "Time between
|
|
39
|
-
// Attester flow can start early if block is imported before
|
|
38
|
+
help: "Time between 1/3 of slot and call produce attestation",
|
|
39
|
+
// Attester flow can start early if block is imported before 1/3 of the slot
|
|
40
40
|
// This measure is critical so we need very good resolution around the 0 second mark
|
|
41
41
|
buckets: [-3, -1, 0, 1, 2, 3, 6, 12],
|
|
42
42
|
}),
|
|
43
43
|
attesterStepCallPublishAttestation: register.histogram({
|
|
44
44
|
name: "vc_attester_step_call_publish_attestation_seconds",
|
|
45
|
-
help: "Time between
|
|
45
|
+
help: "Time between 1/3 of slot and call publish attestation",
|
|
46
46
|
buckets: [-3, -1, 0, 1, 2, 3, 6, 12],
|
|
47
47
|
}),
|
|
48
48
|
attesterStepCallProduceAggregate: register.histogram({
|
|
49
49
|
name: "vc_attester_step_call_produce_aggregate_seconds",
|
|
50
|
-
help: "Time between
|
|
51
|
-
// Aggregate production starts at
|
|
50
|
+
help: "Time between 2/3 of slot and call produce aggregate",
|
|
51
|
+
// Aggregate production starts at 2/3 the earliest.
|
|
52
52
|
// Track values close to 0 (expected) in greater resolution, values over 12 overflow into the next slot.
|
|
53
53
|
buckets: [0.5, 1, 2, 3, 6, 12],
|
|
54
54
|
}),
|
|
55
55
|
attesterStepCallPublishAggregate: register.histogram({
|
|
56
56
|
name: "vc_attester_step_call_publish_aggregate_seconds",
|
|
57
|
-
help: "Time between
|
|
57
|
+
help: "Time between 2/3 of slot and call publish aggregate",
|
|
58
58
|
buckets: [0.5, 1, 2, 3, 6, 12],
|
|
59
59
|
}),
|
|
60
60
|
syncCommitteeStepCallProduceMessage: register.histogram({
|
|
61
61
|
name: "vc_sync_committee_step_call_produce_message_seconds",
|
|
62
|
-
help: "Time between
|
|
63
|
-
// Max wait time is
|
|
62
|
+
help: "Time between 1/3 of slot and call produce message",
|
|
63
|
+
// Max wait time is 1 / 3 of slot
|
|
64
64
|
buckets: [0.5, 1, 2, 3, 6, 12],
|
|
65
65
|
}),
|
|
66
66
|
syncCommitteeStepCallPublishMessage: register.histogram({
|
|
67
67
|
name: "vc_sync_committee_step_call_publish_message_seconds",
|
|
68
|
-
help: "Time between
|
|
68
|
+
help: "Time between 1/3 of slot and call publish message",
|
|
69
69
|
buckets: [0.5, 1, 2, 3, 6, 12],
|
|
70
70
|
}),
|
|
71
71
|
syncCommitteeStepCallProduceAggregate: register.histogram({
|
|
72
72
|
name: "vc_sync_committee_step_call_produce_aggregate_seconds",
|
|
73
|
-
help: "Time between
|
|
74
|
-
// Min wait time is
|
|
73
|
+
help: "Time between 2/3 of slot and call produce aggregate",
|
|
74
|
+
// Min wait time is 2 / 3 of slot
|
|
75
75
|
buckets: [0.5, 1, 2, 3, 6, 12],
|
|
76
76
|
}),
|
|
77
77
|
syncCommitteeStepCallPublishAggregate: register.histogram({
|
|
78
78
|
name: "vc_sync_committee_step_call_publish_aggregate_seconds",
|
|
79
|
-
help: "Time between
|
|
79
|
+
help: "Time between 2/3 of slot and call publish aggregate",
|
|
80
80
|
buckets: [0.5, 1, 2, 3, 6, 12],
|
|
81
81
|
}),
|
|
82
82
|
// Min wait time it 0. CallProduceBlock step is a bit redundant since it must be 0, but let's check
|
package/lib/metrics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;AACrB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,iDAAS,CAAA;IACT,qDAAW,CAAA;IACX,iDAAS,CAAA;AACX,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AAaD;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAA8B,EAAE,OAAwB;IACjF,qGAAqG;IAErG,mKAAmK;IACnK,QAAQ;SACL,KAAK,CAAkB;QACtB,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,kBAAkB;QACxB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAA4B;KAC5D,CAAC;SACD,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEnB,OAAO;QACL,oBAAoB,EAAE,QAAQ,CAAC,KAAK,CAGjC;YACD,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,iCAAiC;YACvC,UAAU,EAAE,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;SACxD,CAAC;QAEF,uBAAuB;QACvB,
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ForkSeq } from "@lodestar/params";
|
|
2
2
|
import { computeEpochAtSlot, isAggregatorFromCommitteeLength } from "@lodestar/state-transition";
|
|
3
3
|
import { ssz } from "@lodestar/types";
|
|
4
4
|
import { prettyBytes, sleep, toRootHex } from "@lodestar/utils";
|
|
@@ -49,7 +49,6 @@ export class AttestationService {
|
|
|
49
49
|
if (duties.length === 0) {
|
|
50
50
|
return;
|
|
51
51
|
}
|
|
52
|
-
const fork = this.config.getForkName(slot);
|
|
53
52
|
if (this.opts?.distributedAggregationSelection) {
|
|
54
53
|
// Validator in distributed cluster only has a key share, not the full private key.
|
|
55
54
|
// The partial selection proofs must be exchanged for combined selection proofs by
|
|
@@ -57,38 +56,31 @@ export class AttestationService {
|
|
|
57
56
|
// This will run in parallel to other attestation tasks but must be finished before starting
|
|
58
57
|
// attestation aggregation as it is required to correctly determine if validator is aggregator
|
|
59
58
|
// and to produce a AggregateAndProof that can be threshold aggregated by the middleware client.
|
|
60
|
-
this.runDistributedAggregationSelectionTasks(
|
|
59
|
+
this.runDistributedAggregationSelectionTasks(duties, slot, signal).catch((e) => this.logger.error("Error on attestation aggregation selection", { slot }, e));
|
|
61
60
|
}
|
|
62
61
|
// A validator should create and broadcast the attestation to the associated attestation subnet when either
|
|
63
62
|
// (a) the validator has received a valid block from the expected block proposer for the assigned slot or
|
|
64
|
-
// (b)
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
sleep(attestationDueMs - this.clock.msFromSlot(slot), signal),
|
|
68
|
-
this.emitter.waitForBlockSlot(slot),
|
|
69
|
-
]);
|
|
70
|
-
this.metrics?.attesterStepCallProduceAttestation.observe(this.clock.secFromSlot(slot) - attestationDueMs / 1000);
|
|
63
|
+
// (b) one-third of the slot has transpired (SECONDS_PER_SLOT / 3 seconds after the start of slot) -- whichever comes first.
|
|
64
|
+
await Promise.race([sleep(this.clock.msToSlot(slot + 1 / 3), signal), this.emitter.waitForBlockSlot(slot)]);
|
|
65
|
+
this.metrics?.attesterStepCallProduceAttestation.observe(this.clock.secFromSlot(slot + 1 / 3));
|
|
71
66
|
// Beacon node's endpoint produceAttestationData return data is not dependent on committeeIndex.
|
|
72
67
|
// Produce a single attestation for all committees and submit unaggregated attestations in one go.
|
|
73
68
|
try {
|
|
74
69
|
// Produce a single attestation for all committees, and clone mutate before signing
|
|
75
70
|
const attestationNoCommittee = await this.produceAttestation(0, slot);
|
|
76
71
|
// Step 1. Mutate, and sign `Attestation` for each validator. Then publish all `Attestations` in one go
|
|
77
|
-
await this.signAndPublishAttestations(
|
|
72
|
+
await this.signAndPublishAttestations(slot, attestationNoCommittee, duties);
|
|
78
73
|
// Step 2. after all attestations are submitted, make an aggregate.
|
|
79
|
-
// First, wait until the `aggregation_production_instant` (
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
this.metrics?.attesterStepCallProduceAggregate.observe(this.clock.secFromSlot(slot) - aggregateDueMs / 1000);
|
|
74
|
+
// First, wait until the `aggregation_production_instant` (2/3rds of the way through the slot)
|
|
75
|
+
await sleep(this.clock.msToSlot(slot + 2 / 3), signal);
|
|
76
|
+
this.metrics?.attesterStepCallProduceAggregate.observe(this.clock.secFromSlot(slot + 2 / 3));
|
|
83
77
|
const dutiesByCommitteeIndex = groupAttDutiesByCommitteeIndex(duties);
|
|
78
|
+
const isPostElectra = this.config.getForkSeq(slot) >= ForkSeq.electra;
|
|
84
79
|
// Then download, sign and publish a `SignedAggregateAndProof` for each
|
|
85
80
|
// validator that is elected to aggregate for this `slot` and `committeeIndex`.
|
|
86
81
|
await Promise.all(Array.from(dutiesByCommitteeIndex.entries()).map(([index, dutiesSameCommittee]) => {
|
|
87
|
-
const attestationData = {
|
|
88
|
-
|
|
89
|
-
index: isForkPostElectra(fork) ? 0 : index,
|
|
90
|
-
};
|
|
91
|
-
return this.produceAndPublishAggregates(fork, attestationData, index, dutiesSameCommittee);
|
|
82
|
+
const attestationData = { ...attestationNoCommittee, index: isPostElectra ? 0 : index };
|
|
83
|
+
return this.produceAndPublishAggregates(attestationData, index, dutiesSameCommittee);
|
|
92
84
|
}));
|
|
93
85
|
}
|
|
94
86
|
catch (e) {
|
|
@@ -109,12 +101,13 @@ export class AttestationService {
|
|
|
109
101
|
* Only one `Attestation` is downloaded from the BN. It is then signed by each
|
|
110
102
|
* validator and the list of individually-signed `Attestation` objects is returned to the BN.
|
|
111
103
|
*/
|
|
112
|
-
async signAndPublishAttestations(
|
|
104
|
+
async signAndPublishAttestations(slot, attestationNoCommittee, duties) {
|
|
113
105
|
const signedAttestations = [];
|
|
114
106
|
const headRootHex = toRootHex(attestationNoCommittee.beaconBlockRoot);
|
|
115
107
|
const currentEpoch = computeEpochAtSlot(slot);
|
|
108
|
+
const isPostElectra = this.config.getForkSeq(slot) >= ForkSeq.electra;
|
|
116
109
|
await Promise.all(duties.map(async ({ duty }) => {
|
|
117
|
-
const index =
|
|
110
|
+
const index = isPostElectra ? 0 : duty.committeeIndex;
|
|
118
111
|
const attestationData = { ...attestationNoCommittee, index };
|
|
119
112
|
const logCtxValidator = { slot, index, head: headRootHex, validatorIndex: duty.validatorIndex };
|
|
120
113
|
try {
|
|
@@ -126,19 +119,18 @@ export class AttestationService {
|
|
|
126
119
|
this.logger.error("Error signing attestation", logCtxValidator, e);
|
|
127
120
|
}
|
|
128
121
|
}));
|
|
129
|
-
// signAndPublishAttestations() may be called before the
|
|
122
|
+
// signAndPublishAttestations() may be called before the 1/3 cutoff time if the block was received early.
|
|
130
123
|
// If we produced the block or we got the block sooner than our peers, our attestations can be dropped because
|
|
131
124
|
// they reach our peers before the block. To prevent that, we wait 2 extra seconds AFTER block arrival, but
|
|
132
|
-
// never beyond the
|
|
125
|
+
// never beyond the 1/3 cutoff time.
|
|
133
126
|
// https://github.com/status-im/nimbus-eth2/blob/7b64c1dce4392731a4a59ee3a36caef2e0a8357a/beacon_chain/validators/validator_duties.nim#L1123
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
// submitting attestations asap to avoid busy time at around ATTESTATION_DUE_BPS of slot
|
|
127
|
+
const msToOneThirdSlot = this.clock.msToSlot(slot + 1 / 3);
|
|
128
|
+
// submitting attestations asap to avoid busy time at around 1/3 of slot
|
|
137
129
|
const afterBlockDelayMs = 1000 *
|
|
138
130
|
this.clock.secondsPerSlot *
|
|
139
131
|
(this.opts?.afterBlockDelaySlotFraction ?? DEFAULT_AFTER_BLOCK_DELAY_SLOT_FRACTION);
|
|
140
|
-
await sleep(Math.min(
|
|
141
|
-
this.metrics?.attesterStepCallPublishAttestation.observe(this.clock.secFromSlot(slot
|
|
132
|
+
await sleep(Math.min(msToOneThirdSlot, afterBlockDelayMs));
|
|
133
|
+
this.metrics?.attesterStepCallPublishAttestation.observe(this.clock.secFromSlot(slot + 1 / 3));
|
|
142
134
|
// Step 2. Publish all `Attestations` in one go
|
|
143
135
|
try {
|
|
144
136
|
(await this.api.beacon.submitPoolAttestationsV2({ signedAttestations })).assertOk();
|
|
@@ -165,7 +157,7 @@ export class AttestationService {
|
|
|
165
157
|
* by each validator and the list of individually-signed `SignedAggregateAndProof` objects is
|
|
166
158
|
* returned to the BN.
|
|
167
159
|
*/
|
|
168
|
-
async produceAndPublishAggregates(
|
|
160
|
+
async produceAndPublishAggregates(attestation, committeeIndex, duties) {
|
|
169
161
|
const logCtx = { slot: attestation.slot, index: committeeIndex };
|
|
170
162
|
// No validator is aggregator, skip
|
|
171
163
|
if (duties.every(({ selectionProof }) => selectionProof === null)) {
|
|
@@ -193,7 +185,7 @@ export class AttestationService {
|
|
|
193
185
|
this.logger.error("Error signing aggregateAndProofs", logCtxValidator, e);
|
|
194
186
|
}
|
|
195
187
|
}));
|
|
196
|
-
this.metrics?.attesterStepCallPublishAggregate.observe(this.clock.secFromSlot(attestation.slot
|
|
188
|
+
this.metrics?.attesterStepCallPublishAggregate.observe(this.clock.secFromSlot(attestation.slot + 2 / 3));
|
|
197
189
|
if (signedAggregateAndProofs.length > 0) {
|
|
198
190
|
try {
|
|
199
191
|
(await this.api.validator.publishAggregateAndProofsV2({ signedAggregateAndProofs })).assertOk();
|
|
@@ -219,7 +211,7 @@ export class AttestationService {
|
|
|
219
211
|
*
|
|
220
212
|
* See https://docs.google.com/document/d/1q9jOTPcYQa-3L8luRvQJ-M0eegtba4Nmon3dpO79TMk/mobilebasic
|
|
221
213
|
*/
|
|
222
|
-
async runDistributedAggregationSelectionTasks(
|
|
214
|
+
async runDistributedAggregationSelectionTasks(duties, slot, signal) {
|
|
223
215
|
const partialSelections = duties.map(({ duty, partialSelectionProof }) => ({
|
|
224
216
|
validatorIndex: duty.validatorIndex,
|
|
225
217
|
slot,
|
|
@@ -228,15 +220,15 @@ export class AttestationService {
|
|
|
228
220
|
this.logger.debug("Submitting partial beacon committee selection proofs", { slot, count: partialSelections.length });
|
|
229
221
|
const res = await Promise.race([
|
|
230
222
|
this.api.validator.submitBeaconCommitteeSelections({ selections: partialSelections }),
|
|
231
|
-
// Exit attestation aggregation flow if there is no response after
|
|
223
|
+
// Exit attestation aggregation flow if there is no response after 1/3 of slot as
|
|
232
224
|
// beacon node would likely not have enough time to prepare an aggregate attestation.
|
|
233
225
|
// Note that the aggregations flow is not explicitly exited but rather will be skipped
|
|
234
226
|
// due to the fact that calculation of `is_aggregator` in AttestationDutiesService is not done
|
|
235
227
|
// and selectionProof is set to null, meaning no validator will be considered an aggregator.
|
|
236
|
-
sleep(this.
|
|
228
|
+
sleep(this.clock.msToSlot(slot + 1 / 3), signal),
|
|
237
229
|
]);
|
|
238
230
|
if (!res) {
|
|
239
|
-
throw new Error("Failed to receive combined selection proofs before
|
|
231
|
+
throw new Error("Failed to receive combined selection proofs before 1/3 of slot");
|
|
240
232
|
}
|
|
241
233
|
const combinedSelections = res.value();
|
|
242
234
|
this.logger.debug("Received combined beacon committee selection proofs", { slot, count: combinedSelections.length });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attestation.js","sourceRoot":"","sources":["../../src/services/attestation.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"attestation.js","sourceRoot":"","sources":["../../src/services/attestation.ts"],"names":[],"mappings":"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"}
|
|
@@ -103,7 +103,6 @@ export class AttestationDutiesService {
|
|
|
103
103
|
if ((slot + 1) % SLOTS_PER_EPOCH !== 0) {
|
|
104
104
|
return;
|
|
105
105
|
}
|
|
106
|
-
// TODO GLOAS: re-evaluate this timing
|
|
107
106
|
// during the 1 / 3 of epoch, last block of epoch may come
|
|
108
107
|
await sleep(this.clock.msToSlot(slot + 1 / 3), signal);
|
|
109
108
|
const nextEpoch = computeEpochAtSlot(slot) + 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attestationDuties.js","sourceRoot":"","sources":["../../src/services/attestationDuties.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attestationDuties.js","sourceRoot":"","sources":["../../src/services/attestationDuties.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAE,+BAA+B,EAAE,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAEnH,OAAO,EAAC,KAAK,EAAE,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAmB,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAK9D,gFAAgF;AAChF,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAEnC;;;;;IAKI;AACJ,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAkBvC,MAAM,OAAO,wBAAwB;IAUhB;IACA;IACT;IACS;IAGA;IACA;IAhBnB,iEAAiE;IAChD,oBAAoB,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC3E;;;OAGG;IACc,2BAA2B,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEzE,YACmB,MAAgB,EAChB,GAAc,EACvB,KAAa,EACJ,cAA8B,EAC/C,gBAAoC,EACpC,oBAA0C,EACzB,OAAuB,EACvB,IAAmC;QAPnC,WAAM,GAAN,MAAM,CAAU;QAChB,QAAG,GAAH,GAAG,CAAW;QACvB,UAAK,GAAL,KAAK,CAAQ;QACJ,mBAAc,GAAd,cAAc,CAAgB;QAG9B,YAAO,GAAP,OAAO,CAAgB;QACvB,SAAI,GAAJ,IAAI,CAA+B;QAEpD,sFAAsF;QACtF,iEAAiE;QACjE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC7C,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9C,oBAAoB,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAChD,gEAAgE;YAChE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,EAAE;gBAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;gBAChD,IAAI,MAAM,GAAG,CAAC,CAAC;gBACf,IAAI,YAAY,GAAG,IAAI,CAAC;gBACxB,KAAK,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAClE,MAAM,IAAI,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC;oBAE9C,mEAAmE;oBACnE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,YAAY,KAAK,IAAI;wBAAE,SAAS;oBAEvE,KAAK,MAAM,EAAC,IAAI,EAAC,IAAI,gBAAgB,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;wBAC7D,oEAAoE;wBACpE,IAAI,IAAI,CAAC,IAAI,GAAG,WAAW,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC;4BACnF,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;wBAC3B,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBACrE,IAAI,YAAY,KAAK,IAAI;oBAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,MAAiB;QAClC,KAAK,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAClE,KAAK,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,gBAAgB,CAAC,aAAa,EAAE,CAAC;gBACvE,IAAI,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;oBACxD,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC9C,IAAI,gBAAgB,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;wBAC9C,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC1C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,eAAe,CAAC,IAAU;QACxB,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,MAAM,aAAa,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/D,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,mBAAmB,GAAG,KAAK,EAAE,IAAU,EAAE,MAAmB,EAAiB,EAAE;QACrF,wCAAwC;QACxC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,0DAA0D;QAC1D,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAEvD,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;QAC9E,MAAM,oBAAoB,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7E,IAAI,aAAa,IAAI,oBAAoB,IAAI,aAAa,KAAK,oBAAoB,EAAE,CAAC;YACpF,2EAA2E;YAC3E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8DAA8D,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;YACpG,MAAM,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC,CAAC;IAEM,cAAc,GAAG,KAAK,EAAE,KAAY,EAAiB,EAAE;QAC7D,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,kEAAkE;YAClE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;gBAC3F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAC,KAAK,EAAC,EAAE,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC;YAEF,6GAA6G;YAC7G,IAAI,CAAC,cAAc;iBAChB,oBAAoB,EAAE;iBACtB,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;iBACjE,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,EAAC,KAAK,EAAC,EAAE,CAAC,CAAC,CAAC;YACvE,CAAC,CAAC;SACL,CAAC,CAAC;QAEH,oBAAoB;QACpB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF;;;;;;;;;OASG;IACK,KAAK,CAAC,mBAAmB,CAAC,YAAmB,EAAE,QAA0B;QAC/E,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC;QAEnC,4DAA4D;QAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;YAC9C,4EAA4E;YAC5E,MAAM,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;gBACzE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,EAAC,KAAK,EAAC,EAAE,CAAC,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,4BAA4B,GAAmD,EAAE,CAAC;QAExF,iFAAiF;QACjF,EAAE;QACF,sFAAsF;QACtF,+FAA+F;QAC/F,wDAAwD;QACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;YAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;YACxE,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,MAAM,EAAC,IAAI,EAAE,cAAc,EAAC,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC1D,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;wBACtC,4BAA4B,CAAC,IAAI,CAAC;4BAChC,cAAc,EAAE,IAAI,CAAC,cAAc;4BACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;4BACvC,cAAc,EAAE,IAAI,CAAC,cAAc;4BACnC,IAAI,EAAE,IAAI,CAAC,IAAI;4BACf,YAAY,EAAE,cAAc,KAAK,IAAI;yBACtC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,IAAI,4BAA4B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,oBAAoB,GAAG,UAAU,CAAC,4BAA4B,EAAE,EAAC,SAAS,EAAE,yBAAyB,EAAC,CAAC,CAAC;YAC9G,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,oBAAoB,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,4BAA4B,CAAC,EAAC,aAAa,EAAC,CAAC,CAAC,CAC9G,CAAC;YAEF,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC5B,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,2BAA2B,CAAC,KAAY,EAAE,QAA0B;QAChF,iGAAiG;QACjG,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAC,CAAC,CAAC;QACnF,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,EAAC,aAAa,EAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACpD,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC7G,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,EAAC,CAAC,CAAC;QAEtG,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,kBAAkB,GAAG,aAAa,EAAE,aAAa,CAAC;QACxD,MAAM,oBAAoB,GAAG,kBAAkB,KAAK,SAAS,IAAI,kBAAkB,KAAK,aAAa,CAAC;QAEtG,IAAI,CAAC,kBAAkB,IAAI,oBAAoB,EAAE,CAAC;YAChD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAmC,CAAC;YACjE,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;gBAClC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACtD,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAC,aAAa,EAAE,aAAa,EAAC,CAAC,CAAC;YAErE,IAAI,kBAAkB,IAAI,oBAAoB,EAAE,CAAC;gBAC/C,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,GAAG,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2DAA2D,EAAE;oBAC5E,kBAAkB,EAAE,kBAAkB;oBACtC,aAAa,EAAE,aAAa;oBAC5B,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC;YACnD,MAAM,mBAAmB,GAAG,cAAc,CAAC,IAAI,CAAC;YAChD,MAAM,mBAAmB,GAAG,cAAc,CAAC,MAAM,GAAG,mBAAmB,CAAC;YAExE,IAAI,mBAAmB,EAAE,CAAC;gBACxB,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;oBAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;wBAC7C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;wBACtD,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;oBACxD,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;oBAClD,KAAK;oBACL,aAAa;oBACb,KAAK,EAAE,cAAc,CAAC,MAAM,GAAG,mBAAmB;iBACnD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,SAAS,GAAG,KAAK,EAAE,EACzB,IAAI,EACJ,IAAI,EACJ,yBAAyB,EACzB,wBAAwB,GACV,EAAiB,EAAE;QACjC,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC;QACnC,MAAM,YAAY,GAAG,YAAY,GAAG,CAAC,CAAC;QACtC,MAAM,yBAAyB,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC;QAEjG,4CAA4C;QAC5C,qFAAqF;QACrF,sHAAsH;QACtH,wDAAwD;QACxD,IAAI,yBAAyB,IAAI,IAAI,KAAK,yBAAyB,EAAE,CAAC;YACpE,iEAAiE;YACjE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,KAAK,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAC,CAAC,CAAC;gBAC9F,MAAM,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,CAAC,CAAC;YAC5F,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAC,CAAC,CAAC;gBACzG,0DAA0D;gBAC1D,mEAAmE;gBACnE,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;QACvF,IAAI,sBAAsB,IAAI,wBAAwB,KAAK,sBAAsB,EAAE,CAAC;YAClF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;gBAC7D,IAAI;gBACJ,SAAS,EAAE,SAAS;gBACpB,kBAAkB,EAAE,sBAAsB;gBAC1C,gBAAgB,EAAE,wBAAwB;aAC3C,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,EAAE,sBAAsB,EAAE,wBAAwB,CAAC,CAAC;QAC1G,CAAC;QAED,2CAA2C;QAC3C,MAAM,yBAAyB,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC;QAC7F,IAAI,yBAAyB,IAAI,yBAAyB,KAAK,yBAAyB,EAAE,CAAC;YACzF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE;gBAChE,IAAI;gBACJ,SAAS,EAAE,YAAY;gBACvB,kBAAkB,EAAE,yBAAyB;gBAC7C,gBAAgB,EAAE,yBAAyB;aAC5C,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,IAAI,EAAE,yBAAyB,EAAE,yBAAyB,CAAC,CAAC;QACjH,CAAC;IACH,CAAC,CAAC;IAEM,KAAK,CAAC,yBAAyB,CACrC,SAAgB,EAChB,IAAU,EACV,gBAAyB,EACzB,gBAAyB;QAEzB,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,GAAG,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,EAAC,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,gBAAgB,EAAC,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;QAE5D,MAAM,IAAI,CAAC,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC;aACxF,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAmC;QAC/D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvG,IAAI,IAAI,CAAC,IAAI,EAAE,+BAA+B,EAAE,CAAC;YAC/C,mFAAmF;YACnF,uFAAuF;YACvF,wFAAwF;YACxF,gGAAgG;YAChG,OAAO,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE,cAAc,EAAC,CAAC;QAC7E,CAAC;QAED,MAAM,YAAY,GAAG,+BAA+B,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QAE3F,OAAO;YACL,IAAI;YACJ,4DAA4D;YAC5D,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;SACrD,CAAC;IACJ,CAAC;IAED,6CAA6C;IACrC,cAAc,CAAC,YAAmB;QACxC,KAAK,MAAM,UAAU,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC;YACvF,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;gBACtC,IAAI,KAAK,GAAG,wBAAwB,GAAG,YAAY,EAAE,CAAC;oBACpD,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ApiClient } from "@lodestar/api";
|
|
2
|
-
import {
|
|
2
|
+
import { ChainConfig } from "@lodestar/config";
|
|
3
3
|
import { BLSPubkey, Slot } from "@lodestar/types";
|
|
4
4
|
import { Metrics } from "../metrics.js";
|
|
5
5
|
import { PubkeyHex } from "../types.js";
|
|
@@ -19,7 +19,7 @@ export declare class BlockDutiesService {
|
|
|
19
19
|
/** Maps an epoch to all *local* proposers in this epoch. Notably, this does not contain
|
|
20
20
|
proposals for any validators which are not registered locally. */
|
|
21
21
|
private readonly proposers;
|
|
22
|
-
constructor(config:
|
|
22
|
+
constructor(config: ChainConfig, logger: LoggerVc, api: ApiClient, clock: IClock, validatorStore: ValidatorStore, metrics: Metrics | null, notifyBlockProductionFn: NotifyBlockProductionFn);
|
|
23
23
|
/**
|
|
24
24
|
* Returns the pubkeys of the validators which are assigned to propose in the given slot.
|
|
25
25
|
*
|
|
@@ -2,11 +2,10 @@ import { computeEpochAtSlot, computeStartSlotAtEpoch } from "@lodestar/state-tra
|
|
|
2
2
|
import { sleep, toPubkeyHex } from "@lodestar/utils";
|
|
3
3
|
import { differenceHex } from "../util/index.js";
|
|
4
4
|
/** This polls block duties 1s before the next epoch */
|
|
5
|
-
// TODO: change to
|
|
5
|
+
// TODO: change to 6 to do it 2s before the next epoch
|
|
6
6
|
// once we have some improvement on epoch transition time
|
|
7
7
|
// see https://github.com/ChainSafe/lodestar/issues/5792#issuecomment-1647457442
|
|
8
|
-
|
|
9
|
-
const BLOCK_DUTIES_LOOKAHEAD_BPS = 9167;
|
|
8
|
+
const BLOCK_DUTIES_LOOKAHEAD_FACTOR = 12;
|
|
10
9
|
/** Only retain `HISTORICAL_DUTIES_EPOCHS` duties prior to the current epoch */
|
|
11
10
|
const HISTORICAL_DUTIES_EPOCHS = 2;
|
|
12
11
|
// Re-declaring to not have to depend on `lodestar-params` just for this 0
|
|
@@ -152,7 +151,7 @@ export class BlockDutiesService {
|
|
|
152
151
|
*/
|
|
153
152
|
async pollBeaconProposersNextEpoch(currentSlot, nextEpoch, signal) {
|
|
154
153
|
const nextSlot = currentSlot + 1;
|
|
155
|
-
const lookAheadMs = this.config.
|
|
154
|
+
const lookAheadMs = (this.config.SECONDS_PER_SLOT * 1000) / BLOCK_DUTIES_LOOKAHEAD_FACTOR;
|
|
156
155
|
await sleep(this.clock.msToSlot(nextSlot) - lookAheadMs, signal);
|
|
157
156
|
this.logger.debug("Polling proposers for next epoch", { nextEpoch, nextSlot });
|
|
158
157
|
// Poll proposers for the next epoch
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockDuties.js","sourceRoot":"","sources":["../../src/services/blockDuties.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AAEvF,OAAO,EAAC,KAAK,EAAE,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAmB,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAGjE,uDAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"blockDuties.js","sourceRoot":"","sources":["../../src/services/blockDuties.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { isSyncCommitteeAggregator } from "@lodestar/state-transition";
|
|
1
|
+
import { computeEpochAtSlot, isSyncCommitteeAggregator } from "@lodestar/state-transition";
|
|
3
2
|
import { sleep } from "@lodestar/utils";
|
|
4
3
|
import { SyncCommitteeDutiesService } from "./syncCommitteeDuties.js";
|
|
5
4
|
import { groupSyncDutiesBySubcommitteeIndex } from "./utils.js";
|
|
@@ -39,10 +38,9 @@ export class SyncCommitteeService {
|
|
|
39
38
|
this.dutiesService.removeDutiesForKey(pubkey);
|
|
40
39
|
}
|
|
41
40
|
runSyncCommitteeTasks = async (slot, signal) => {
|
|
42
|
-
const fork = this.config.getForkName(slot);
|
|
43
41
|
try {
|
|
44
42
|
// Before altair fork no need to check duties
|
|
45
|
-
if (
|
|
43
|
+
if (computeEpochAtSlot(slot) < this.config.ALTAIR_FORK_EPOCH) {
|
|
46
44
|
return;
|
|
47
45
|
}
|
|
48
46
|
// Fetch info first so a potential delay is absorbed by the sleep() below
|
|
@@ -57,25 +55,20 @@ export class SyncCommitteeService {
|
|
|
57
55
|
// This will run in parallel to other sync committee tasks but must be finished before starting
|
|
58
56
|
// sync committee contributions as it is required to correctly determine if validator is aggregator
|
|
59
57
|
// and to produce a ContributionAndProof that can be threshold aggregated by the middleware client.
|
|
60
|
-
this.runDistributedAggregationSelectionTasks(
|
|
58
|
+
this.runDistributedAggregationSelectionTasks(dutiesAtSlot, slot, signal).catch((e) => this.logger.error("Error on sync committee aggregation selection", { slot }, e));
|
|
61
59
|
}
|
|
62
60
|
// unlike Attestation, SyncCommitteeSignature could be published asap
|
|
63
|
-
// especially with lodestar, it's very busy at
|
|
61
|
+
// especially with lodestar, it's very busy at 1/3 of slot
|
|
64
62
|
// see https://github.com/ChainSafe/lodestar/issues/4608
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
sleep(syncMessageDueMs - this.clock.msFromSlot(slot), signal),
|
|
68
|
-
this.emitter.waitForBlockSlot(slot),
|
|
69
|
-
]);
|
|
70
|
-
this.metrics?.syncCommitteeStepCallProduceMessage.observe(this.clock.secFromSlot(slot) - syncMessageDueMs / 1000);
|
|
63
|
+
await Promise.race([sleep(this.clock.msToSlot(slot + 1 / 3), signal), this.emitter.waitForBlockSlot(slot)]);
|
|
64
|
+
this.metrics?.syncCommitteeStepCallProduceMessage.observe(this.clock.secFromSlot(slot + 1 / 3));
|
|
71
65
|
// Step 1. Download, sign and publish an `SyncCommitteeMessage` for each validator.
|
|
72
66
|
// Differs from AttestationService, `SyncCommitteeMessage` are equal for all
|
|
73
|
-
const beaconBlockRoot = await this.produceAndPublishSyncCommittees(
|
|
67
|
+
const beaconBlockRoot = await this.produceAndPublishSyncCommittees(slot, dutiesAtSlot);
|
|
74
68
|
// Step 2. If an attestation was produced, make an aggregate.
|
|
75
|
-
// First, wait until the `
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
this.metrics?.syncCommitteeStepCallProduceAggregate.observe(this.clock.secFromSlot(slot) - syncContributionDueMs / 1000);
|
|
69
|
+
// First, wait until the `aggregation_production_instant` (2/3rds of the way though the slot)
|
|
70
|
+
await sleep(this.clock.msToSlot(slot + 2 / 3), signal);
|
|
71
|
+
this.metrics?.syncCommitteeStepCallProduceAggregate.observe(this.clock.secFromSlot(slot + 2 / 3));
|
|
79
72
|
// await for all so if the Beacon node is overloaded it auto-throttles
|
|
80
73
|
// TODO: This approach is conservative to reduce the node's load, review
|
|
81
74
|
const dutiesBySubcommitteeIndex = groupSyncDutiesBySubcommitteeIndex(dutiesAtSlot);
|
|
@@ -84,7 +77,7 @@ export class SyncCommitteeService {
|
|
|
84
77
|
return;
|
|
85
78
|
// Then download, sign and publish a `SignedAggregateAndProof` for each
|
|
86
79
|
// validator that is elected to aggregate for this `slot` and `subcommitteeIndex`.
|
|
87
|
-
await this.produceAndPublishAggregates(
|
|
80
|
+
await this.produceAndPublishAggregates(slot, subcommitteeIndex, beaconBlockRoot, duties).catch((e) => {
|
|
88
81
|
this.logger.error("Error on SyncCommitteeContribution", { slot, index: subcommitteeIndex }, e);
|
|
89
82
|
});
|
|
90
83
|
}));
|
|
@@ -102,7 +95,7 @@ export class SyncCommitteeService {
|
|
|
102
95
|
* Only one `SyncCommittee` is downloaded from the BN. It is then signed by each
|
|
103
96
|
* validator and the list of individually-signed `SyncCommittee` objects is returned to the BN.
|
|
104
97
|
*/
|
|
105
|
-
async produceAndPublishSyncCommittees(
|
|
98
|
+
async produceAndPublishSyncCommittees(slot, duties) {
|
|
106
99
|
const logCtx = { slot };
|
|
107
100
|
// /eth/v1/beacon/blocks/:blockId/root -> at slot -1
|
|
108
101
|
// Produce one attestation data per slot and subcommitteeIndex
|
|
@@ -124,14 +117,13 @@ export class SyncCommitteeService {
|
|
|
124
117
|
// by default we want to submit SyncCommitteeSignature asap after we receive block
|
|
125
118
|
// provide a delay option just in case any client implementation validate the existence of block in
|
|
126
119
|
// SyncCommitteeSignature gossip validation.
|
|
127
|
-
const
|
|
128
|
-
const msToCutoffTime = syncMessageDueMs - this.clock.msFromSlot(slot);
|
|
120
|
+
const msToOneThirdSlot = this.clock.msToSlot(slot + 1 / 3);
|
|
129
121
|
const afterBlockDelayMs = 1000 * this.clock.secondsPerSlot * (this.opts?.scAfterBlockDelaySlotFraction ?? 0);
|
|
130
|
-
const toDelayMs = Math.min(
|
|
122
|
+
const toDelayMs = Math.min(msToOneThirdSlot, afterBlockDelayMs);
|
|
131
123
|
if (toDelayMs > 0) {
|
|
132
124
|
await sleep(toDelayMs);
|
|
133
125
|
}
|
|
134
|
-
this.metrics?.syncCommitteeStepCallPublishMessage.observe(this.clock.secFromSlot(slot
|
|
126
|
+
this.metrics?.syncCommitteeStepCallPublishMessage.observe(this.clock.secFromSlot(slot + 1 / 3));
|
|
135
127
|
if (signatures.length > 0) {
|
|
136
128
|
try {
|
|
137
129
|
(await this.api.beacon.submitPoolSyncCommitteeSignatures({ signatures })).assertOk();
|
|
@@ -154,7 +146,7 @@ export class SyncCommitteeService {
|
|
|
154
146
|
* by each validator and the list of individually-signed `SignedAggregateAndProof` objects is
|
|
155
147
|
* returned to the BN.
|
|
156
148
|
*/
|
|
157
|
-
async produceAndPublishAggregates(
|
|
149
|
+
async produceAndPublishAggregates(slot, subcommitteeIndex, beaconBlockRoot, duties) {
|
|
158
150
|
const logCtx = { slot, index: subcommitteeIndex };
|
|
159
151
|
// No validator is aggregator, skip
|
|
160
152
|
if (duties.every(({ selectionProof }) => selectionProof === null)) {
|
|
@@ -176,7 +168,7 @@ export class SyncCommitteeService {
|
|
|
176
168
|
this.logger.error("Error signing SyncCommitteeContribution", logCtxValidator, e);
|
|
177
169
|
}
|
|
178
170
|
}));
|
|
179
|
-
this.metrics?.syncCommitteeStepCallPublishAggregate.observe(this.clock.secFromSlot(slot
|
|
171
|
+
this.metrics?.syncCommitteeStepCallPublishAggregate.observe(this.clock.secFromSlot(slot + 2 / 3));
|
|
180
172
|
if (signedContributions.length > 0) {
|
|
181
173
|
try {
|
|
182
174
|
(await this.api.validator.publishContributionAndProofs({ contributionAndProofs: signedContributions })).assertOk();
|
|
@@ -197,7 +189,7 @@ export class SyncCommitteeService {
|
|
|
197
189
|
*
|
|
198
190
|
* See https://docs.google.com/document/d/1q9jOTPcYQa-3L8luRvQJ-M0eegtba4Nmon3dpO79TMk/mobilebasic
|
|
199
191
|
*/
|
|
200
|
-
async runDistributedAggregationSelectionTasks(
|
|
192
|
+
async runDistributedAggregationSelectionTasks(duties, slot, signal) {
|
|
201
193
|
const partialSelections = [];
|
|
202
194
|
for (const { duty, selectionProofs } of duties) {
|
|
203
195
|
const validatorSelections = selectionProofs.map(({ subcommitteeIndex, partialSelectionProof }) => ({
|
|
@@ -211,17 +203,17 @@ export class SyncCommitteeService {
|
|
|
211
203
|
this.logger.debug("Submitting partial sync committee selection proofs", { slot, count: partialSelections.length });
|
|
212
204
|
const res = await Promise.race([
|
|
213
205
|
this.api.validator.submitSyncCommitteeSelections({ selections: partialSelections }),
|
|
214
|
-
// Exit sync committee contributions flow if there is no response after
|
|
215
|
-
// This is in contrast to attestations aggregations flow which is already exited at
|
|
206
|
+
// Exit sync committee contributions flow if there is no response after 2/3 of slot.
|
|
207
|
+
// This is in contrast to attestations aggregations flow which is already exited at 1/3 of the slot
|
|
216
208
|
// because for sync committee is not required to resubscribe to subnets as beacon node will assume
|
|
217
209
|
// validator always aggregates. This allows us to wait until we have to produce sync committee contributions.
|
|
218
210
|
// Note that the sync committee contributions flow is not explicitly exited but rather will be skipped
|
|
219
211
|
// due to the fact that calculation of `is_sync_committee_aggregator` in SyncCommitteeDutiesService is not done
|
|
220
212
|
// and selectionProof is set to null, meaning no validator will be considered an aggregator.
|
|
221
|
-
sleep(this.
|
|
213
|
+
sleep(this.clock.msToSlot(slot + 2 / 3), signal),
|
|
222
214
|
]);
|
|
223
215
|
if (!res) {
|
|
224
|
-
throw new Error("Failed to receive combined selection proofs before
|
|
216
|
+
throw new Error("Failed to receive combined selection proofs before 2/3 of slot");
|
|
225
217
|
}
|
|
226
218
|
const combinedSelections = res.value();
|
|
227
219
|
this.logger.debug("Received combined sync committee selection proofs", { slot, count: combinedSelections.length });
|