@lodestar/validator 1.35.0-dev.f80d2d52da → 1.35.0-dev.fcf8d024ea
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/buckets.d.ts.map +1 -0
- package/lib/defaults.d.ts.map +1 -0
- package/lib/genesis.d.ts.map +1 -0
- package/lib/index.d.ts +7 -7
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +5 -5
- package/lib/index.js.map +1 -1
- package/lib/metrics.d.ts.map +1 -0
- package/lib/metrics.js +14 -14
- package/lib/metrics.js.map +1 -1
- package/lib/repositories/index.d.ts.map +1 -0
- package/lib/repositories/metaDataRepository.d.ts.map +1 -0
- package/lib/repositories/metaDataRepository.js +4 -3
- package/lib/repositories/metaDataRepository.js.map +1 -1
- package/lib/services/attestation.d.ts.map +1 -0
- package/lib/services/attestation.js +77 -60
- package/lib/services/attestation.js.map +1 -1
- package/lib/services/attestationDuties.d.ts.map +1 -0
- package/lib/services/attestationDuties.js +105 -98
- package/lib/services/attestationDuties.js.map +1 -1
- package/lib/services/block.d.ts.map +1 -0
- package/lib/services/block.js +64 -56
- package/lib/services/block.js.map +1 -1
- package/lib/services/blockDuties.d.ts +2 -2
- package/lib/services/blockDuties.d.ts.map +1 -0
- package/lib/services/blockDuties.js +35 -26
- package/lib/services/blockDuties.js.map +1 -1
- package/lib/services/chainHeaderTracker.d.ts.map +1 -0
- package/lib/services/chainHeaderTracker.js +30 -27
- package/lib/services/chainHeaderTracker.js.map +1 -1
- package/lib/services/doppelgangerService.d.ts.map +1 -0
- package/lib/services/doppelgangerService.js +52 -45
- package/lib/services/doppelgangerService.js.map +1 -1
- package/lib/services/emitter.d.ts +1 -1
- package/lib/services/emitter.d.ts.map +1 -0
- package/lib/services/externalSignerSync.d.ts.map +1 -0
- package/lib/services/externalSignerSync.js.map +1 -1
- package/lib/services/indices.d.ts.map +1 -0
- package/lib/services/indices.js +8 -5
- package/lib/services/indices.js.map +1 -1
- package/lib/services/prepareBeaconProposer.d.ts.map +1 -0
- package/lib/services/prepareBeaconProposer.js.map +1 -1
- package/lib/services/syncCommittee.d.ts.map +1 -0
- package/lib/services/syncCommittee.js +80 -61
- package/lib/services/syncCommittee.js.map +1 -1
- package/lib/services/syncCommitteeDuties.d.ts.map +1 -0
- package/lib/services/syncCommitteeDuties.js +28 -23
- package/lib/services/syncCommitteeDuties.js.map +1 -1
- package/lib/services/syncingStatusTracker.d.ts.map +1 -0
- package/lib/services/syncingStatusTracker.js +32 -27
- package/lib/services/syncingStatusTracker.js.map +1 -1
- package/lib/services/utils.d.ts.map +1 -0
- package/lib/services/validatorStore.d.ts.map +1 -0
- package/lib/services/validatorStore.js +9 -3
- package/lib/services/validatorStore.js.map +1 -1
- package/lib/slashingProtection/attestation/attestationByTargetRepository.d.ts.map +1 -0
- package/lib/slashingProtection/attestation/attestationByTargetRepository.js +7 -3
- package/lib/slashingProtection/attestation/attestationByTargetRepository.js.map +1 -1
- package/lib/slashingProtection/attestation/attestationLowerBoundRepository.d.ts.map +1 -0
- package/lib/slashingProtection/attestation/attestationLowerBoundRepository.js +5 -3
- package/lib/slashingProtection/attestation/attestationLowerBoundRepository.js.map +1 -1
- package/lib/slashingProtection/attestation/errors.d.ts.map +1 -0
- package/lib/slashingProtection/attestation/index.d.ts.map +1 -0
- package/lib/slashingProtection/attestation/index.js +3 -0
- package/lib/slashingProtection/attestation/index.js.map +1 -1
- package/lib/slashingProtection/block/blockBySlotRepository.d.ts.map +1 -0
- package/lib/slashingProtection/block/blockBySlotRepository.js +7 -3
- package/lib/slashingProtection/block/blockBySlotRepository.js.map +1 -1
- package/lib/slashingProtection/block/errors.d.ts.map +1 -0
- package/lib/slashingProtection/block/index.d.ts.map +1 -0
- package/lib/slashingProtection/block/index.js +1 -0
- package/lib/slashingProtection/block/index.js.map +1 -1
- package/lib/slashingProtection/index.d.ts +1 -1
- package/lib/slashingProtection/index.d.ts.map +1 -0
- package/lib/slashingProtection/index.js +3 -0
- package/lib/slashingProtection/index.js.map +1 -1
- package/lib/slashingProtection/interchange/errors.d.ts.map +1 -0
- package/lib/slashingProtection/interchange/formats/completeV4.d.ts.map +1 -0
- package/lib/slashingProtection/interchange/formats/index.d.ts.map +1 -0
- package/lib/slashingProtection/interchange/formats/v5.d.ts.map +1 -0
- package/lib/slashingProtection/interchange/index.d.ts.map +1 -0
- package/lib/slashingProtection/interchange/parseInterchange.d.ts.map +1 -0
- package/lib/slashingProtection/interchange/serializeInterchange.d.ts.map +1 -0
- package/lib/slashingProtection/interchange/types.d.ts.map +1 -0
- package/lib/slashingProtection/interface.d.ts.map +1 -0
- package/lib/slashingProtection/minMaxSurround/distanceStoreRepository.d.ts.map +1 -0
- package/lib/slashingProtection/minMaxSurround/distanceStoreRepository.js +8 -0
- package/lib/slashingProtection/minMaxSurround/distanceStoreRepository.js.map +1 -1
- package/lib/slashingProtection/minMaxSurround/errors.d.ts.map +1 -0
- package/lib/slashingProtection/minMaxSurround/index.d.ts.map +1 -0
- package/lib/slashingProtection/minMaxSurround/interface.d.ts.map +1 -0
- package/lib/slashingProtection/minMaxSurround/minMaxSurround.d.ts.map +1 -0
- package/lib/slashingProtection/minMaxSurround/minMaxSurround.js +2 -0
- package/lib/slashingProtection/minMaxSurround/minMaxSurround.js.map +1 -1
- package/lib/slashingProtection/types.d.ts.map +1 -0
- package/lib/slashingProtection/utils.d.ts +1 -1
- package/lib/slashingProtection/utils.d.ts.map +1 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/util/batch.d.ts.map +1 -0
- package/lib/util/clock.d.ts +3 -0
- package/lib/util/clock.d.ts.map +1 -0
- package/lib/util/clock.js +9 -1
- package/lib/util/clock.js.map +1 -1
- package/lib/util/difference.d.ts.map +1 -0
- package/lib/util/externalSignerClient.d.ts.map +1 -0
- package/lib/util/format.d.ts.map +1 -0
- package/lib/util/index.d.ts.map +1 -0
- package/lib/util/logger.d.ts.map +1 -0
- package/lib/util/params.d.ts.map +1 -0
- package/lib/util/params.js +18 -2
- package/lib/util/params.js.map +1 -1
- package/lib/util/url.d.ts.map +1 -0
- package/lib/validator.d.ts.map +1 -0
- package/lib/validator.js +15 -0
- package/lib/validator.js.map +1 -1
- package/package.json +19 -16
- package/src/buckets.ts +30 -0
- package/src/defaults.ts +8 -0
- package/src/genesis.ts +19 -0
- package/src/index.ts +22 -0
- package/src/metrics.ts +417 -0
- package/src/repositories/index.ts +1 -0
- package/src/repositories/metaDataRepository.ts +42 -0
- package/src/services/attestation.ts +362 -0
- package/src/services/attestationDuties.ts +406 -0
- package/src/services/block.ts +261 -0
- package/src/services/blockDuties.ts +217 -0
- package/src/services/chainHeaderTracker.ts +89 -0
- package/src/services/doppelgangerService.ts +286 -0
- package/src/services/emitter.ts +43 -0
- package/src/services/externalSignerSync.ts +81 -0
- package/src/services/indices.ts +165 -0
- package/src/services/prepareBeaconProposer.ts +119 -0
- package/src/services/syncCommittee.ts +338 -0
- package/src/services/syncCommitteeDuties.ts +337 -0
- package/src/services/syncingStatusTracker.ts +74 -0
- package/src/services/utils.ts +58 -0
- package/src/services/validatorStore.ts +830 -0
- package/src/slashingProtection/attestation/attestationByTargetRepository.ts +77 -0
- package/src/slashingProtection/attestation/attestationLowerBoundRepository.ts +44 -0
- package/src/slashingProtection/attestation/errors.ts +66 -0
- package/src/slashingProtection/attestation/index.ts +171 -0
- package/src/slashingProtection/block/blockBySlotRepository.ts +78 -0
- package/src/slashingProtection/block/errors.ts +28 -0
- package/src/slashingProtection/block/index.ts +94 -0
- package/src/slashingProtection/index.ts +95 -0
- package/src/slashingProtection/interchange/errors.ts +15 -0
- package/src/slashingProtection/interchange/formats/completeV4.ts +125 -0
- package/src/slashingProtection/interchange/formats/index.ts +7 -0
- package/src/slashingProtection/interchange/formats/v5.ts +120 -0
- package/src/slashingProtection/interchange/index.ts +5 -0
- package/src/slashingProtection/interchange/parseInterchange.ts +55 -0
- package/src/slashingProtection/interchange/serializeInterchange.ts +35 -0
- package/src/slashingProtection/interchange/types.ts +18 -0
- package/src/slashingProtection/interface.ts +28 -0
- package/src/slashingProtection/minMaxSurround/distanceStoreRepository.ts +57 -0
- package/src/slashingProtection/minMaxSurround/errors.ts +27 -0
- package/src/slashingProtection/minMaxSurround/index.ts +4 -0
- package/src/slashingProtection/minMaxSurround/interface.ts +23 -0
- package/src/slashingProtection/minMaxSurround/minMaxSurround.ts +104 -0
- package/src/slashingProtection/types.ts +12 -0
- package/src/slashingProtection/utils.ts +42 -0
- package/src/types.ts +31 -0
- package/src/util/batch.ts +15 -0
- package/src/util/clock.ts +170 -0
- package/src/util/difference.ts +10 -0
- package/src/util/externalSignerClient.ts +277 -0
- package/src/util/format.ts +3 -0
- package/src/util/index.ts +6 -0
- package/src/util/logger.ts +51 -0
- package/src/util/params.ts +320 -0
- package/src/util/url.ts +16 -0
- package/src/validator.ts +418 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buckets.d.ts","sourceRoot":"","sources":["../src/buckets.ts"],"names":[],"mappings":"AACA,oBAAY,MAAM;IAMhB,6BAA6B,KAAK;IAClC,qCAAqC,KAAK;IAC1C,uCAAuC,KAAK;IAC5C,iCAAiC,KAAK;IACtC,iCAAiC,KAAK;IAGtC,kBAAkB,KAAK;CACxB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,OAAO,MAAM,CAYxF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":";;;;;;;;AAAA,wBAOE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis.d.ts","sourceRoot":"","sources":["../src/genesis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AACxC,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAC,MAAM,EAAQ,MAAM,iBAAiB,CAAC;AAK9C,wBAAsB,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAW3G"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { Validator, type ValidatorOptions } from "./validator.js";
|
|
2
|
-
export { ValidatorStore, SignerType, defaultOptions, MAX_BUILDER_BOOST_FACTOR } from "./services/validatorStore.js";
|
|
3
|
-
export type { Signer, SignerLocal, SignerRemote, ValidatorProposerConfig, ProposerConfig, } from "./services/validatorStore.js";
|
|
4
1
|
export { waitForGenesis } from "./genesis.js";
|
|
5
|
-
export {
|
|
6
|
-
export { externalSignerGetKeys, externalSignerPostSignature, externalSignerUpCheck, SignableMessageType, } from "./util/externalSignerClient.js";
|
|
7
|
-
export type { ProcessShutdownCallback } from "./types.js";
|
|
8
|
-
export * from "./slashingProtection/index.js";
|
|
2
|
+
export { type Metrics, getMetrics } from "./metrics.js";
|
|
9
3
|
export * from "./repositories/index.js";
|
|
4
|
+
export type { ProposerConfig, Signer, SignerLocal, SignerRemote, ValidatorProposerConfig, } from "./services/validatorStore.js";
|
|
5
|
+
export { MAX_BUILDER_BOOST_FACTOR, SignerType, ValidatorStore, defaultOptions } from "./services/validatorStore.js";
|
|
6
|
+
export * from "./slashingProtection/index.js";
|
|
7
|
+
export type { ProcessShutdownCallback } from "./types.js";
|
|
8
|
+
export { SignableMessageType, externalSignerGetKeys, externalSignerPostSignature, externalSignerUpCheck, } from "./util/externalSignerClient.js";
|
|
9
|
+
export { Validator, type ValidatorOptions } from "./validator.js";
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,KAAK,OAAO,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AACtD,cAAc,yBAAyB,CAAC;AACxC,YAAY,EACV,cAAc,EACd,MAAM,EACN,WAAW,EACX,YAAY,EACZ,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAC,wBAAwB,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAC,MAAM,8BAA8B,CAAC;AAClH,cAAc,+BAA+B,CAAC;AAE9C,YAAY,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAExD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,SAAS,EAAE,KAAK,gBAAgB,EAAC,MAAM,gBAAgB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { Validator } from "./validator.js";
|
|
2
|
-
export { ValidatorStore, SignerType, defaultOptions, MAX_BUILDER_BOOST_FACTOR } from "./services/validatorStore.js";
|
|
3
1
|
export { waitForGenesis } from "./genesis.js";
|
|
4
2
|
export { getMetrics } from "./metrics.js";
|
|
5
|
-
// Remote signer client
|
|
6
|
-
export { externalSignerGetKeys, externalSignerPostSignature, externalSignerUpCheck, SignableMessageType, } from "./util/externalSignerClient.js";
|
|
7
|
-
export * from "./slashingProtection/index.js";
|
|
8
3
|
export * from "./repositories/index.js";
|
|
4
|
+
export { MAX_BUILDER_BOOST_FACTOR, SignerType, ValidatorStore, defaultOptions } from "./services/validatorStore.js";
|
|
5
|
+
export * from "./slashingProtection/index.js";
|
|
6
|
+
// Remote signer client
|
|
7
|
+
export { SignableMessageType, externalSignerGetKeys, externalSignerPostSignature, externalSignerUpCheck, } from "./util/externalSignerClient.js";
|
|
8
|
+
export { Validator } from "./validator.js";
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAe,UAAU,EAAC,MAAM,cAAc,CAAC;AACtD,cAAc,yBAAyB,CAAC;AAQxC,OAAO,EAAC,wBAAwB,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAC,MAAM,8BAA8B,CAAC;AAClH,cAAc,+BAA+B,CAAC;AAG9C,uBAAuB;AACvB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,SAAS,EAAwB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,oBAAoB,EAAC,MAAM,iBAAiB,CAAC;AAErD,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,oBAAY,YAAY;IACtB,KAAK,IAAI;IACT,OAAO,IAAI;IACX,KAAK,IAAI;CACV;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG;IAC5B,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,eAAe;;0BAc3D,MAAM,CAAC,SAAS,CAAC,gBAAgB;6BAC9B,MAAM,CAAC,MAAM,CAAC,mBAAmB;;;;;;;;;;;;;;;;eA6FhB,SAAS,GAAG,MAAM,GAAG,SAAS;;;;;;;;;eA2CzB,SAAS,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;qBAiHtB,MAAM;;;qBAQP,MAAM;;;qBAQP,MAAM;qBAAW,MAAM;;;qBAMlB,MAAM;qBAAW,MAAM;;;sBAM/B,MAAM;qBAAW,MAAM;;;;;yBAQb,MAAM;;;yBAOd,MAAM;;;yBAKR,MAAM;;;;;;;;oBAqBR,MAAM;;;oBAKJ,MAAM;;;oBAKP,MAAM;;;oBAKJ,MAAM;;;;;;;oBAiBP,MAAM;;;;EAWhD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAUtE"}
|
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 ATTESTATION_DUE_BPS, call prepare attestation
|
|
33
33
|
// - Get attestation, sign, call publish
|
|
34
|
-
// - Wait
|
|
34
|
+
// - Wait AGGREGATE_DUE_BPS, 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 ATTESTATION_DUE_BPS of slot and call produce attestation",
|
|
39
|
+
// Attester flow can start early if block is imported before ATTESTATION_DUE_BPS 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 ATTESTATION_DUE_BPS 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 AGGREGATE_DUE_BPS of slot and call produce aggregate",
|
|
51
|
+
// Aggregate production starts at AGGREGATE_DUE_BPS 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 AGGREGATE_DUE_BPS 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 SYNC_MESSAGE_DUE_BPS of slot and call produce message",
|
|
63
|
+
// Max wait time is SYNC_MESSAGE_DUE_BPS 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 SYNC_MESSAGE_DUE_BPS 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 CONTRIBUTION_DUE_BPS of slot and call produce aggregate",
|
|
74
|
+
// Min wait time is CONTRIBUTION_DUE_BPS 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 CONTRIBUTION_DUE_BPS 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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metaDataRepository.d.ts","sourceRoot":"","sources":["../../src/repositories/metaDataRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAE,SAAS,EAAM,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAC,MAAM,EAAuB,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,mCAAmC,EAAC,MAAM,aAAa,CAAC;AAKhE;;GAEG;AACH,qBAAa,kBAAkB;IAMjB,SAAS,CAAC,EAAE,EAAE,mCAAmC;IAL7D,SAAS,CAAC,MAAM,SAA6B;IAE7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwC;gBAE5C,EAAE,EAAE,mCAAmC;IAIvD,wBAAwB,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAIhD,wBAAwB,CAAC,qBAAqB,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE,cAAc,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAK3C,cAAc,CAAC,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,OAAO,CAAC,SAAS;CAGlB"}
|
|
@@ -7,11 +7,12 @@ const GENESIS_TIME = Buffer.from("GENESIS_TIME");
|
|
|
7
7
|
* Store MetaData of validator.
|
|
8
8
|
*/
|
|
9
9
|
export class MetaDataRepository {
|
|
10
|
+
db;
|
|
11
|
+
bucket = Bucket.validator_metaData;
|
|
12
|
+
bucketId = getBucketNameByValue(this.bucket);
|
|
13
|
+
dbReqOpts = { bucketId: this.bucketId };
|
|
10
14
|
constructor(db) {
|
|
11
15
|
this.db = db;
|
|
12
|
-
this.bucket = Bucket.validator_metaData;
|
|
13
|
-
this.bucketId = getBucketNameByValue(this.bucket);
|
|
14
|
-
this.dbReqOpts = { bucketId: this.bucketId };
|
|
15
16
|
this.dbReqOpts = { bucketId: this.bucketId };
|
|
16
17
|
}
|
|
17
18
|
async getGenesisValidatorsRoot() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metaDataRepository.js","sourceRoot":"","sources":["../../src/repositories/metaDataRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"metaDataRepository.js","sourceRoot":"","sources":["../../src/repositories/metaDataRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAC,MAAM,cAAc,CAAC;AAClD,OAAO,EAAkB,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAG3D,MAAM,uBAAuB,GAAG,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACvE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAEjD;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAMP;IALZ,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAE5B,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,SAAS,GAAc,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAC,CAAC;IAElE,YAAsB,EAAuC;QAAvC,OAAE,GAAF,EAAE,CAAqC;QAC3D,IAAI,CAAC,SAAS,GAAG,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC5B,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,qBAA2B;QACxD,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAE,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACpG,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9E,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAsB;QACzC,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACxG,CAAC;IAEO,SAAS,CAAC,GAAe;QAC/B,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attestation.d.ts","sourceRoot":"","sources":["../../src/services/attestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAS,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAKjD,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,qBAAqB,EAAC,MAAM,cAAc,CAAC;AACnD,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnD,MAAM,MAAM,sBAAsB,GAAG;IACnC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,+BAA+B,CAAC,EAAE,OAAO,CAAC;CAC3C,CAAC;AAWF;;GAEG;AACH,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAGxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IAZxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2B;gBAGtC,MAAM,EAAE,QAAQ,EAChB,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,qBAAqB,EAC/C,gBAAgB,EAAE,kBAAkB,EACpC,oBAAoB,EAAE,oBAAoB,EACzB,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,MAAM,EAAE,eAAe,EACvB,IAAI,CAAC,EAAE,sBAAsB,YAAA;IAmBhD,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAI3C,OAAO,CAAC,mBAAmB,CA6DzB;IAEF;;;;;OAKG;YACW,kBAAkB;IAKhC;;;OAGG;YACW,0BAA0B;IA0DxC;;;;;;;;;OASG;YACW,2BAA2B;IA8DzC;;;;;;;;;OASG;YACW,uCAAuC;CA0EtD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isForkPostElectra } 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";
|
|
@@ -16,6 +16,15 @@ const DEFAULT_AFTER_BLOCK_DELAY_SLOT_FRACTION = 0;
|
|
|
16
16
|
* Service that sets up and handles validator attester duties.
|
|
17
17
|
*/
|
|
18
18
|
export class AttestationService {
|
|
19
|
+
logger;
|
|
20
|
+
api;
|
|
21
|
+
clock;
|
|
22
|
+
validatorStore;
|
|
23
|
+
emitter;
|
|
24
|
+
metrics;
|
|
25
|
+
config;
|
|
26
|
+
opts;
|
|
27
|
+
dutiesService;
|
|
19
28
|
constructor(logger, api, clock, validatorStore, emitter, chainHeadTracker, syncingStatusTracker, metrics, config, opts) {
|
|
20
29
|
this.logger = logger;
|
|
21
30
|
this.api = api;
|
|
@@ -25,50 +34,6 @@ export class AttestationService {
|
|
|
25
34
|
this.metrics = metrics;
|
|
26
35
|
this.config = config;
|
|
27
36
|
this.opts = opts;
|
|
28
|
-
this.runAttestationTasks = async (slot, signal) => {
|
|
29
|
-
// Fetch info first so a potential delay is absorbed by the sleep() below
|
|
30
|
-
const duties = this.dutiesService.getDutiesAtSlot(slot);
|
|
31
|
-
if (duties.length === 0) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
if (this.opts?.distributedAggregationSelection) {
|
|
35
|
-
// Validator in distributed cluster only has a key share, not the full private key.
|
|
36
|
-
// The partial selection proofs must be exchanged for combined selection proofs by
|
|
37
|
-
// calling submitBeaconCommitteeSelections on the distributed validator middleware client.
|
|
38
|
-
// This will run in parallel to other attestation tasks but must be finished before starting
|
|
39
|
-
// attestation aggregation as it is required to correctly determine if validator is aggregator
|
|
40
|
-
// and to produce a AggregateAndProof that can be threshold aggregated by the middleware client.
|
|
41
|
-
this.runDistributedAggregationSelectionTasks(duties, slot, signal).catch((e) => this.logger.error("Error on attestation aggregation selection", { slot }, e));
|
|
42
|
-
}
|
|
43
|
-
// A validator should create and broadcast the attestation to the associated attestation subnet when either
|
|
44
|
-
// (a) the validator has received a valid block from the expected block proposer for the assigned slot or
|
|
45
|
-
// (b) one-third of the slot has transpired (SECONDS_PER_SLOT / 3 seconds after the start of slot) -- whichever comes first.
|
|
46
|
-
await Promise.race([sleep(this.clock.msToSlot(slot + 1 / 3), signal), this.emitter.waitForBlockSlot(slot)]);
|
|
47
|
-
this.metrics?.attesterStepCallProduceAttestation.observe(this.clock.secFromSlot(slot + 1 / 3));
|
|
48
|
-
// Beacon node's endpoint produceAttestationData return data is not dependent on committeeIndex.
|
|
49
|
-
// Produce a single attestation for all committees and submit unaggregated attestations in one go.
|
|
50
|
-
try {
|
|
51
|
-
// Produce a single attestation for all committees, and clone mutate before signing
|
|
52
|
-
const attestationNoCommittee = await this.produceAttestation(0, slot);
|
|
53
|
-
// Step 1. Mutate, and sign `Attestation` for each validator. Then publish all `Attestations` in one go
|
|
54
|
-
await this.signAndPublishAttestations(slot, attestationNoCommittee, duties);
|
|
55
|
-
// Step 2. after all attestations are submitted, make an aggregate.
|
|
56
|
-
// First, wait until the `aggregation_production_instant` (2/3rds of the way through the slot)
|
|
57
|
-
await sleep(this.clock.msToSlot(slot + 2 / 3), signal);
|
|
58
|
-
this.metrics?.attesterStepCallProduceAggregate.observe(this.clock.secFromSlot(slot + 2 / 3));
|
|
59
|
-
const dutiesByCommitteeIndex = groupAttDutiesByCommitteeIndex(duties);
|
|
60
|
-
const isPostElectra = this.config.getForkSeq(slot) >= ForkSeq.electra;
|
|
61
|
-
// Then download, sign and publish a `SignedAggregateAndProof` for each
|
|
62
|
-
// validator that is elected to aggregate for this `slot` and `committeeIndex`.
|
|
63
|
-
await Promise.all(Array.from(dutiesByCommitteeIndex.entries()).map(([index, dutiesSameCommittee]) => {
|
|
64
|
-
const attestationData = { ...attestationNoCommittee, index: isPostElectra ? 0 : index };
|
|
65
|
-
return this.produceAndPublishAggregates(attestationData, index, dutiesSameCommittee);
|
|
66
|
-
}));
|
|
67
|
-
}
|
|
68
|
-
catch (e) {
|
|
69
|
-
this.logger.error("Error on attestation routine", { slot }, e);
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
37
|
this.dutiesService = new AttestationDutiesService(logger, api, clock, validatorStore, chainHeadTracker, syncingStatusTracker, metrics, {
|
|
73
38
|
distributedAggregationSelection: opts?.distributedAggregationSelection,
|
|
74
39
|
});
|
|
@@ -78,6 +43,58 @@ export class AttestationService {
|
|
|
78
43
|
removeDutiesForKey(pubkey) {
|
|
79
44
|
this.dutiesService.removeDutiesForKey(pubkey);
|
|
80
45
|
}
|
|
46
|
+
runAttestationTasks = async (slot, signal) => {
|
|
47
|
+
// Fetch info first so a potential delay is absorbed by the sleep() below
|
|
48
|
+
const duties = this.dutiesService.getDutiesAtSlot(slot);
|
|
49
|
+
if (duties.length === 0) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const fork = this.config.getForkName(slot);
|
|
53
|
+
if (this.opts?.distributedAggregationSelection) {
|
|
54
|
+
// Validator in distributed cluster only has a key share, not the full private key.
|
|
55
|
+
// The partial selection proofs must be exchanged for combined selection proofs by
|
|
56
|
+
// calling submitBeaconCommitteeSelections on the distributed validator middleware client.
|
|
57
|
+
// This will run in parallel to other attestation tasks but must be finished before starting
|
|
58
|
+
// attestation aggregation as it is required to correctly determine if validator is aggregator
|
|
59
|
+
// and to produce a AggregateAndProof that can be threshold aggregated by the middleware client.
|
|
60
|
+
this.runDistributedAggregationSelectionTasks(fork, duties, slot, signal).catch((e) => this.logger.error("Error on attestation aggregation selection", { slot }, e));
|
|
61
|
+
}
|
|
62
|
+
// A validator should create and broadcast the attestation to the associated attestation subnet when either
|
|
63
|
+
// (a) the validator has received a valid block from the expected block proposer for the assigned slot or
|
|
64
|
+
// (b) ATTESTATION_DUE_BPS of the slot has transpired -- whichever comes first.
|
|
65
|
+
const attestationDueMs = this.config.getAttestationDueMs(fork);
|
|
66
|
+
await Promise.race([
|
|
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);
|
|
71
|
+
// Beacon node's endpoint produceAttestationData return data is not dependent on committeeIndex.
|
|
72
|
+
// Produce a single attestation for all committees and submit unaggregated attestations in one go.
|
|
73
|
+
try {
|
|
74
|
+
// Produce a single attestation for all committees, and clone mutate before signing
|
|
75
|
+
const attestationNoCommittee = await this.produceAttestation(0, slot);
|
|
76
|
+
// Step 1. Mutate, and sign `Attestation` for each validator. Then publish all `Attestations` in one go
|
|
77
|
+
await this.signAndPublishAttestations(fork, slot, attestationNoCommittee, duties);
|
|
78
|
+
// Step 2. after all attestations are submitted, make an aggregate.
|
|
79
|
+
// First, wait until the `aggregation_production_instant` (AGGREGATE_DUE_BPS of the way through the slot)
|
|
80
|
+
const aggregateDueMs = this.config.getAggregateDueMs(fork);
|
|
81
|
+
await sleep(aggregateDueMs - this.clock.msFromSlot(slot), signal);
|
|
82
|
+
this.metrics?.attesterStepCallProduceAggregate.observe(this.clock.secFromSlot(slot) - aggregateDueMs / 1000);
|
|
83
|
+
const dutiesByCommitteeIndex = groupAttDutiesByCommitteeIndex(duties);
|
|
84
|
+
// Then download, sign and publish a `SignedAggregateAndProof` for each
|
|
85
|
+
// validator that is elected to aggregate for this `slot` and `committeeIndex`.
|
|
86
|
+
await Promise.all(Array.from(dutiesByCommitteeIndex.entries()).map(([index, dutiesSameCommittee]) => {
|
|
87
|
+
const attestationData = {
|
|
88
|
+
...attestationNoCommittee,
|
|
89
|
+
index: isForkPostElectra(fork) ? 0 : index,
|
|
90
|
+
};
|
|
91
|
+
return this.produceAndPublishAggregates(fork, attestationData, index, dutiesSameCommittee);
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
this.logger.error("Error on attestation routine", { slot }, e);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
81
98
|
/**
|
|
82
99
|
* Performs the first step of the attesting process: downloading one `Attestation` object.
|
|
83
100
|
* Beacon node's endpoint produceAttestationData return data is not dependent on committeeIndex.
|
|
@@ -92,13 +109,12 @@ export class AttestationService {
|
|
|
92
109
|
* Only one `Attestation` is downloaded from the BN. It is then signed by each
|
|
93
110
|
* validator and the list of individually-signed `Attestation` objects is returned to the BN.
|
|
94
111
|
*/
|
|
95
|
-
async signAndPublishAttestations(slot, attestationNoCommittee, duties) {
|
|
112
|
+
async signAndPublishAttestations(fork, slot, attestationNoCommittee, duties) {
|
|
96
113
|
const signedAttestations = [];
|
|
97
114
|
const headRootHex = toRootHex(attestationNoCommittee.beaconBlockRoot);
|
|
98
115
|
const currentEpoch = computeEpochAtSlot(slot);
|
|
99
|
-
const isPostElectra = this.config.getForkSeq(slot) >= ForkSeq.electra;
|
|
100
116
|
await Promise.all(duties.map(async ({ duty }) => {
|
|
101
|
-
const index =
|
|
117
|
+
const index = isForkPostElectra(fork) ? 0 : duty.committeeIndex;
|
|
102
118
|
const attestationData = { ...attestationNoCommittee, index };
|
|
103
119
|
const logCtxValidator = { slot, index, head: headRootHex, validatorIndex: duty.validatorIndex };
|
|
104
120
|
try {
|
|
@@ -110,18 +126,19 @@ export class AttestationService {
|
|
|
110
126
|
this.logger.error("Error signing attestation", logCtxValidator, e);
|
|
111
127
|
}
|
|
112
128
|
}));
|
|
113
|
-
// signAndPublishAttestations() may be called before the
|
|
129
|
+
// signAndPublishAttestations() may be called before the ATTESTATION_DUE_BPS cutoff time if the block was received early.
|
|
114
130
|
// If we produced the block or we got the block sooner than our peers, our attestations can be dropped because
|
|
115
131
|
// they reach our peers before the block. To prevent that, we wait 2 extra seconds AFTER block arrival, but
|
|
116
|
-
// never beyond the
|
|
132
|
+
// never beyond the ATTESTATION_DUE_BPS cutoff time.
|
|
117
133
|
// https://github.com/status-im/nimbus-eth2/blob/7b64c1dce4392731a4a59ee3a36caef2e0a8357a/beacon_chain/validators/validator_duties.nim#L1123
|
|
118
|
-
const
|
|
119
|
-
|
|
134
|
+
const attestationDueMs = this.config.getAttestationDueMs(fork);
|
|
135
|
+
const msToCutoffTime = attestationDueMs - this.clock.msFromSlot(slot);
|
|
136
|
+
// submitting attestations asap to avoid busy time at around ATTESTATION_DUE_BPS of slot
|
|
120
137
|
const afterBlockDelayMs = 1000 *
|
|
121
138
|
this.clock.secondsPerSlot *
|
|
122
139
|
(this.opts?.afterBlockDelaySlotFraction ?? DEFAULT_AFTER_BLOCK_DELAY_SLOT_FRACTION);
|
|
123
|
-
await sleep(Math.min(
|
|
124
|
-
this.metrics?.attesterStepCallPublishAttestation.observe(this.clock.secFromSlot(slot
|
|
140
|
+
await sleep(Math.min(msToCutoffTime, afterBlockDelayMs));
|
|
141
|
+
this.metrics?.attesterStepCallPublishAttestation.observe(this.clock.secFromSlot(slot) - attestationDueMs / 1000);
|
|
125
142
|
// Step 2. Publish all `Attestations` in one go
|
|
126
143
|
try {
|
|
127
144
|
(await this.api.beacon.submitPoolAttestationsV2({ signedAttestations })).assertOk();
|
|
@@ -148,7 +165,7 @@ export class AttestationService {
|
|
|
148
165
|
* by each validator and the list of individually-signed `SignedAggregateAndProof` objects is
|
|
149
166
|
* returned to the BN.
|
|
150
167
|
*/
|
|
151
|
-
async produceAndPublishAggregates(attestation, committeeIndex, duties) {
|
|
168
|
+
async produceAndPublishAggregates(fork, attestation, committeeIndex, duties) {
|
|
152
169
|
const logCtx = { slot: attestation.slot, index: committeeIndex };
|
|
153
170
|
// No validator is aggregator, skip
|
|
154
171
|
if (duties.every(({ selectionProof }) => selectionProof === null)) {
|
|
@@ -176,7 +193,7 @@ export class AttestationService {
|
|
|
176
193
|
this.logger.error("Error signing aggregateAndProofs", logCtxValidator, e);
|
|
177
194
|
}
|
|
178
195
|
}));
|
|
179
|
-
this.metrics?.attesterStepCallPublishAggregate.observe(this.clock.secFromSlot(attestation.slot
|
|
196
|
+
this.metrics?.attesterStepCallPublishAggregate.observe(this.clock.secFromSlot(attestation.slot) - this.config.getAggregateDueMs(fork) / 1000);
|
|
180
197
|
if (signedAggregateAndProofs.length > 0) {
|
|
181
198
|
try {
|
|
182
199
|
(await this.api.validator.publishAggregateAndProofsV2({ signedAggregateAndProofs })).assertOk();
|
|
@@ -202,7 +219,7 @@ export class AttestationService {
|
|
|
202
219
|
*
|
|
203
220
|
* See https://docs.google.com/document/d/1q9jOTPcYQa-3L8luRvQJ-M0eegtba4Nmon3dpO79TMk/mobilebasic
|
|
204
221
|
*/
|
|
205
|
-
async runDistributedAggregationSelectionTasks(duties, slot, signal) {
|
|
222
|
+
async runDistributedAggregationSelectionTasks(fork, duties, slot, signal) {
|
|
206
223
|
const partialSelections = duties.map(({ duty, partialSelectionProof }) => ({
|
|
207
224
|
validatorIndex: duty.validatorIndex,
|
|
208
225
|
slot,
|
|
@@ -211,15 +228,15 @@ export class AttestationService {
|
|
|
211
228
|
this.logger.debug("Submitting partial beacon committee selection proofs", { slot, count: partialSelections.length });
|
|
212
229
|
const res = await Promise.race([
|
|
213
230
|
this.api.validator.submitBeaconCommitteeSelections({ selections: partialSelections }),
|
|
214
|
-
// Exit attestation aggregation flow if there is no response after
|
|
231
|
+
// Exit attestation aggregation flow if there is no response after ATTESTATION_DUE_BPS of the slot as
|
|
215
232
|
// beacon node would likely not have enough time to prepare an aggregate attestation.
|
|
216
233
|
// Note that the aggregations flow is not explicitly exited but rather will be skipped
|
|
217
234
|
// due to the fact that calculation of `is_aggregator` in AttestationDutiesService is not done
|
|
218
235
|
// and selectionProof is set to null, meaning no validator will be considered an aggregator.
|
|
219
|
-
sleep(this.clock.
|
|
236
|
+
sleep(this.config.getAttestationDueMs(fork) - this.clock.msFromSlot(slot), signal),
|
|
220
237
|
]);
|
|
221
238
|
if (!res) {
|
|
222
|
-
throw new Error("Failed to receive combined selection proofs before
|
|
239
|
+
throw new Error("Failed to receive combined selection proofs before ATTESTATION_DUE_BPS of the slot");
|
|
223
240
|
}
|
|
224
241
|
const combinedSelections = res.value();
|
|
225
242
|
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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attestationDuties.d.ts","sourceRoot":"","sources":["../../src/services/attestationDuties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AAGhD,OAAO,EAAC,YAAY,EAAkB,IAAI,EAAiB,MAAM,iBAAiB,CAAC;AAEnF,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAa,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAC,kBAAkB,EAAgB,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAanD,oGAAoG;AACpG,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;IACpC,qGAAqG;IACrG,cAAc,EAAE,YAAY,GAAG,IAAI,CAAC;IACpC,uGAAuG;IACvG,qBAAqB,CAAC,EAAE,YAAY,CAAC;CACtC,CAAC;AAKF,KAAK,4BAA4B,GAAG;IAClC,+BAA+B,CAAC,EAAE,OAAO,CAAC;CAC3C,CAAC;AAEF,qBAAa,wBAAwB;IAUjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,QAAQ,CAAC,cAAc;IAG/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IAhBxB,iEAAiE;IACjE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAsC;IAC3E;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAA6B;gBAGtD,MAAM,EAAE,QAAQ,EAChB,GAAG,EAAE,SAAS,EACvB,KAAK,EAAE,MAAM,EACJ,cAAc,EAAE,cAAc,EAC/C,gBAAgB,EAAE,kBAAkB,EACpC,oBAAoB,EAAE,oBAAoB,EACzB,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,IAAI,CAAC,EAAE,4BAA4B,YAAA;IAuCtD,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAa3C,uDAAuD;IACvD,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,eAAe,EAAE;IAiB9C;;;OAGG;IACH,OAAO,CAAC,mBAAmB,CAkBzB;IAEF,OAAO,CAAC,cAAc,CAkBpB;IAEF;;;;;;;;;OASG;YACW,mBAAmB;IAqDjC;;OAEG;YACW,2BAA2B;IA0DzC;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS,CAmDf;YAEY,yBAAyB;YAmBzB,eAAe;IAoB7B,6CAA6C;IAC7C,OAAO,CAAC,cAAc;CASvB"}
|